当前位置: 首页 > 编程日记 > 正文

Visual studio 2005如何实现源码管理

转自CSDN

Visual studio 2005如何实现源码管理(Visual Studio .Net团队开发)
目录:
〇、 摘要
一、 开发前的准备
二、 创建空的SourceSafe数据库
三、 新建项目并加入版本控制
四、 获取SourceSafe中的项目
五、 版本控制的几个概念
六、 版本控制项目的管理
七、 总结

〇、摘要
在企业开发环境中,源代码管理占据着重要的一环。本文将通过一个实例,创建一个源代码管理的项目SourceManager,来讲述如何使用Visual Studio.Net开发环境,配合Visual Source Safe 6c和IIS,创建企业团队开发环境。
------------------------------------------------------------------------------
一、 开发前的准备
1、 在装有Windows 2000或者Windows XP Professional的机器上安装.Net Framework SDK、Visual Studio.Net、Visual Source Safe 6C。(如果用户操作系统是Windows .Net Server,则无须安装.Net Framework SDK,.Net Server自带的IIS 6已经完全包含了对.Net的支持)这些工具在Visual Studio.Net的安装盘上都可以找到。
2、 一台专门用于存放版本控制中心数据库的服务器。该服务器不需要安装.NET Framework SDK和VS.Net,但是必须安装VSS 6C。我们称这台服务器为开发服务器DataCenter。
3、 一个主域控制器,将DataCenter服务器加入这个域,为每一个开发用户分配域帐号。这样所有小组成员可以通过登录到Window NT域来访问版本控制信息。
注意:Visual Studio 6所带的Visual Source Safe 6不支持.Net的一些文件格式。如果你安装了VSS 6,也需要再安装一次VSS 6C,否则在VS.Net环境中将源代码加入到VSS数据库中将会出现错误。
--------------------------------------------------------------------------------
二、 创建空的SourceSafe数据库
在开始工作之前,需要建立一个空的SourceSafe数据库,来存放源代码控制数据,并为小组开发人员分配访问帐号。在DataCenter服务器上新建Source Safe数据库。步骤如下:
1、 启动"开始"——"程序"——"Microsoft Visual SourceSafe"菜单下的SourceSafe 6.0 Admin。如果你是第一次安装VSS 6C,Common数据库的Admin帐号为空。如图一所示:
图一 VSS登录窗口
2、 在Visual SourceSafe Administrator窗口中,你可以看到Source Safe默认的两个用户Admin和Guest。如果你不打算使用默认的Common数据库,而要建立一个属于自己的项目数据库。选择菜单"Tools"——"Create Database",如图二所示:

图二 VSS管理窗口
3、 在弹出的对话框中选择新数据库存放的位置。这里我们选择:C:SourceManager。点击OK后,提示你已经创建了数据库。
4、 选择"Users"——"Open SourceSafe Database…",使用Browser按钮,选择刚才所创建的SourceManager数据库C:SourceManagersrcsafe.ini。
5、 使用"Users"——"Change Password"命令更改Admin帐号的密码。使用"Users"——"Add User"命令为项目小组成员创建SourceSafe帐号。
6、 将C:SourceManager目录设置为共享。共享权限默认是Everyone完全控制。如果希望只对项目小组成员开放,不希望其他人操作数据库文件(注意:没有SourceManager帐号的人不能访问SourceSafe中的内容,但如果他有权限的话,可以删除或修改数据库中的数据),请将Everyone组从权限组中删除,并从域目录中选择可以访问该目录的域帐号或计算机。
7、 到此,一个空的项目数据库建立完毕。
--------------------------------------------------------------------------------
三、 新建项目并加入版本控制
下面将演示在一个装有VS.Net的计算机上创建一个Windows应用程序和一个Web项目,并把它加入到上面所建的SouceManager数据库中。
1、 启动VS.NET。
2、 使用"文件"——"新建"——"空白解决方案"命令,在D:下新建解决方案SourceManager。VS.Net会在D:下自动创建一个SourceManager目录,该目录中有一个解决方案文件SourceManager.sln文件。
3、 使用"文件"——"新建"——"项目"命令,在项目类型中选择"Visual C#项目",在"模板"中选择"Window应用程序"。项目名称MyWindowApp。并选择"添入解决方案"选项。确定。


图三 新建Windows应用程序项目窗口
4、 使用"文件"——"新建"——"项目"命令,在项目类型中选择"Visual C#项目",在"模板"中选择"ASP.NET Web应用程序"。在"位置"栏中填写http://localhost/MyWebApp。并选择"添入解决方案"选项。确定。


图四 新建Web应用程序窗口
这样就在解决方案中建立了一个Window应用程序和一个Web应用程序。下面讲述如何将整个解决方案加入到源代码版本控制。
5、 在WebFrom1和Form1的设计器中各自加入一个Label控件,保持它的属性不变。我们将看到从另一个主机上获取的程序用户界面中也会有这一个控件。
6、 使用"文件"——"源代码管理"——"将解决方案加到源代码管理"命令。


图五 源代码管理菜单
7、 在弹出的Visual SourceSafe Login登录窗口点击"Browser"按钮,弹出打开数据库对话框,点击该对话框的"Browser"按钮,弹出如下对话框,在"文件名"中输入DataCenterSourceManagersrcsafe.ini。确定后输入上面所分配的SourceSafe帐号和密码。


图六 打开VSS数据库对话框
8、 首先会弹出一个保存解决方案的提示窗口,让你选择将要保存到SourceSafe中的项目名称,默认与解决方案的名称相同。点击OK,会得到项目在数据库中不存在的提示,点击"Yes"创建该项目。

图七 在VSS中创建项目对话框
9、 接下来会让你选择Web应用程序的保存位置。如下图所示。由于Web应用程序通常保存在本地的IIS根目录下。与解决方案中的其它项目不在同一个目录中,所以需要为Web应用程序在SourceSafe中单独建立一个项目。在该窗口点击"OK"按钮接受SourceSafe的默认项目名称MyWebApp。

图八 在VSS中创建Web项目对话框
10、 到此,我们已经在SourceSafe中添加了整个解决方案,包括一个Windows应用程序和一个Web应用程序。在"解决方案资源管理器"视图中,加入源代码控制的程序旁边有一把锁(如图九所示),表示文档已签入,不可编辑。

图九 解决方案资源管理器
11、 通过菜单"文件"——"源代码管理"——"Microsoft Visual SourceSafe",打开SourceSafe,可以看到,在SourceSafe中已经加入了两个项目。如图十所示:

图十 VSS浏览?

四、 获取SourceSafe中的项目
下面的步骤中将讲述如何在另一台主机上从SourceSafe获取源代码。
1、 在另一台主机上打开Visual Studio.Net开发环境。使用菜单命令"文件"——"源代码管理"——"从源代码管理打开"。重复第三步中的第7个操作,选择SourceSafe数据库的位置。
2、 弹出"Create local poject from SourceSafe"窗口,在"Create a new project in the"输入框中填写你要保存项目的本地路径,这里我们选择"C:MyProject"。在"SourceSafe project to"中选择SourceManager项目,单击OK按钮。如果目录C:MyProject不存在,会询问是否创建,选择"Yes All"。

图十一 从SourceSafe获取项目对话框
3、 接下来会弹出保存Web应用程序工作副本的对话框,在工作副本位置输入框中输入你想要保存Web应用的Web文件夹,也可以接受默认设置。点击"确定"按钮接受默认设置。


图十二 从SourceSafe获取Web项目对话框
4、 通过上述步骤,我们已经成功地在另一个开发主机上获得保存在SourceSafe的工程。将来如果有新的开发人员加入,只需重复这四个步骤即可。


五、 版本控制的几个概念
在Visual Studio.Net开发环境"解决方案资源管理器"的上下文菜单或者"文件"——中有如下与文件操作有关的命令,如图十三所示:


1、 文件的"签出"(Check Out):当需要编辑一个文件时,必须将该文件"签出",SourceSafe会标志该文件已经被某个用户迁出,并确保其他用户不可编辑同一个文件。对于文件,仅当文件被签入后才有这个选项。
2、 文件的"签入"(Check In):当完成文件的编辑后,最好将文件"签入",以让其他用户可以签出或者获取最新版本。对于文件,仅当文件被签出后才有这个选项。
3、 "获取最新版本":从SourceSafe数据库中获取指定文件或项目的最新版本,而又不必签出文件。
4、 "取消签出":不在SourceSafe数据库中保存签出后所做的修改,使本地文件恢复到修改之前的状态,并且将文件签入。只有文件或项目中有文件被签出后才有这个选项。
5、 "历史记录":查看文件修改的历史记录。SourceSafe数据库会自动保存每次"签入"前后的文件内容。如果需要查看历史记录。
6、 "版本比较":可以比较当前版本与历史版本之间的差异,SourceSafe将以对照的形式将两个版本的不同之处显示出来。如图十四所示:


图十四 版本比较
7、 "Roll Back":在历史版本显示对话框中有一个Roll Back命令,即将文件恢复到历史版本。当文件编辑错误时,想让文件回到历史的某个点时,使用该命令。历史版本显示对话框中还有其它命令,这里不一一详述,请读者慢慢研究。
8、 Visual Studio.Net中关于版本控制的选项:在"工具"——"选项"命令对话框中,选择左边的"源代码管理",显示如下对话框。读者可以根据项目的情况对SourceSafe选项进行设置。


图十五 Visual Studio.Net中与版本控制相关的选项
9、 其它SourceSafe操作:读者可以从"文件"——"源代码管理"——"Microsoft Visual SourceSafe"菜单,进入"Visual SourceSafe Explorer",其中大多数主要命令基本与Visual Studio.Net相同,这里就不再累赘。

转载于:https://www.cnblogs.com/conquer/archive/2009/04/16/1437181.html

相关文章:

error while loading shared libraries: libstdc++.so.5: wrong ELF class: ELFCLASS64

今天部署一个探针在运行的时候报了这样一个错:error while loading shared libraries: libstdc.so.5: wrong ELF class: ELFCLASS64 [rootdb152 rma_p_unix]# ldd xxxxlinux-gate.so.1 > (0x00dd7000)libstdc.so.5 > not found # 发现这边动态库找不着 这…

package.json 依赖包版本号

依赖包版本号格式:major.minor.patch major 为主版本号(大版本号),变化了表示有了一个不兼容上个版本的大更改。 minor 为次版本号(小版本号),变化了表示增加了新功能,并且可以向后兼容。 patch 为修订版本号,变化了…

.net下绘制统计图工具-请推荐

需要利用到行情、数据频道需要多种样式的表现形式,包括 饼图、柱图、折线图等等 重点是:展示效果好,开发效率高 以前用过dundas chart,不知道有没能生产flash的。 小弟初来乍到,还请给位不吝赐教 放两天置顶&#xff…

wireless(二维数组前缀和)

1 . 无线网络发射器选址(wireless.cpp/c/pas)【问题描述】随着智能手机的日益普及,人们对无线网的需求日益增大。某城市决定对城市内的公共场所覆盖无线网。假设该城市的布局为由严格平行的129条东西向街道和129条南北向街道所形成的网格状,并…

SQL Server 2000 从哪里看是哪个版本

有两种方法: 第一步:使用SQL语句查询 select version 查询结果如下: Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Personal Edition on Windows NT 5.1 (Build 2…

【洛谷p1313】计算系数

(%%%hmr) 计算系数【传送门】 算法呀那个标签: (越来越懒得写辽)(所以今天打算好好写一写) 首先(axby)k的计算需要用到二项式定理: 对于(xy&#…

CMD——ping及用其检测网络故障

Ping命令全称Packet Internet Grope,即因特网包探测器。通过调用ICMP(因特网控制报文协议),发送一份ICMP回显请求给目的主机,并等待返回ICMP回显应答。一般用来测试源主机到目的主机网络的连通性(只有在安装…

TSLint 规则

除了在全局配置中使用TSLint规则,还可以在文件中使用TSLint规则。 当不想修改全局配置中的TSLint规则时,可以在文件中使用以下注释规则标志对TSLint规则进行修改。 // tslint:disable —— 忽略该行以下所有代码出现的错误提示,可以在文件首…

Weblogic禁用SSLv3和RC4算法教程

weblogic在启用https时一样会报同WebSphere那样的一SSL类漏洞,中间件修复这些漏洞原理上来说是一样的,只是在具体操作上有着较大的区别。 1. weblogic禁用SSLv3算法 编缉$DOMAIN_HOME/bin目录下的setDomainEnv.sh,找到"JAVA_OPTIONS&quo…

转《两个个很形象的依赖注入的比喻》

何谓控制反转(IoC Inversion of Control),何谓依赖注入(DI Dependency Injection)?一直都半懂不懂,今天看到两个比喻,觉得比较形象。 IoC,用白话来讲,就是…

线程上下文设计模式

import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.util.stream.IntStream;public class Test {public static void main(String[] args){ThreadLocalExample.test();} }/*21.2 线程上下文设计*/class ApplicationConfigurat…

自定义控件--基础2

Control类程序按控件的步骤: 呈现控件的步骤 1.RenderControl方法 代码如下: protected void RenderControl(HtmlTextWriter writer) { if(Visible) { Render(writer);}} 先判断Visible,然后进行Render.2.Render方法 public virtual void Render(HtmlTextWriter writer) { Rend…

input输入框为number类型时,去掉上下小箭头

input输入框type为number时&#xff0c;去掉上下小箭头&#xff0c;方式如下&#xff1a; <input type"number" ...><style>/* 在Chrome浏览器下 */input::-webkit-outer-spin-button,input::-webkit-inner-spin-button {-webkit-appearance: none;}/* 在…

数据库和数据仓库的区别

简而言之&#xff0c;数据库是面向事务的设计&#xff0c;数据仓库是面向主题设计的。 数据库一般存储在线交易数据&#xff0c;数据仓库存储的一般是历史数据。 数据库设计是尽量避免冗余&#xff0c;一般采用符合范式的规则来设计&#xff0c;数据仓库在设计是有意引入冗余&a…

我是主考官:两次弃用的变态笔试题

故事&#xff08;3&#xff09;&#xff1a;两次弃用的变态笔试题电话的沟通虽然不可能对一个程序员作全面的了解&#xff0c;但基本上能有一个比较概括的判断&#xff0c;这也许就是所谓的第一印象吧&#xff01;通过电话的初步沟通我对来面试的程序员已经有了初步的印象&…

[Swift]LeetCode901. 股票价格跨度 | Online Stock Span

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号&#xff1a;山青咏芝&#xff08;shanqingyongzhi&#xff09;➤博客园地址&#xff1a;山青咏芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;➤GitHub地址&a…

java基础===点餐系统

public class OrderMsg {public static void main(String[] args) throws Exception { /** * 订餐人姓名、选择菜品、送餐时间、送餐地址、订单状态、总金额 * 01.创建对应的数组 * 02.数组的初始化 * 03.显示菜单 * 04.根据用户的选择进去指定的模块 */ String[] names new S…

HTML页面中使两个div并排显示

在HTML中实现两个div并排显示&#xff0c;方法如下&#xff1a; 方法1&#xff1a;设置float浮动对需要并排显示的div设置样式&#xff1a;style"float:left;" <div style"float:left;">div1</div>方法2&#xff1a;设置div为行内样式对需要并…

备案网站管理系统是JSP做的

备案网站管理系统 http://www.miibeian.gov.cn/ 浪费了我一上午的时间没成功.靠!转载于:https://www.cnblogs.com/splyn/archive/2009/12/24/1631281.html

explorer.exe应用程序错误说明 0X000000该内存不能为read的解决方法

0X000000该内存不能为read的解决方法 出现这个现象有方面的&#xff0c;一是硬件&#xff0c;即内存方面有问题&#xff0c;二是软件&#xff0c;这就有多方面的问题了。 一&#xff1a;先说说硬件&#xff1a; 一般来说&#xff0c;电脑硬件是很不容易坏的。内存出现问题的可能…

CSS 选择符

选择符 selector 样式的基本规则——样式声明与关键字 声明块中有一个或多个声明。声明的格式是固定的&#xff0c;先是属性名&#xff0c;然后是冒号&#xff0c;后面再跟属性值和分号。冒号和分号后面可以有零个或多个空白。属性值几乎都是一个关键字或以空格分隔的多个关键…

CSS3快学笔记

在编写CSS3样式时&#xff0c;不同的浏览器可能需要不同的前缀。它表示该CSS属性或规则尚未成为W3C标准的一部分&#xff0c;是浏览器的私有属性&#xff0c;虽然目前较新版本的浏览器都是不需要前缀的&#xff0c;但为了更好的向前兼容前缀还是少不了的。 前缀 浏览器 -webk…

DOS批处理的字符串功能

DOS批处理的字符串功能 批处理有着具有非常强大的字符串处理能力&#xff0c;其功能绝不低于C语言里面的字符串函数集。批处理中可实现的字符串处理功能有&#xff1a;截取字符串内容、替换字符串特定字段、合并字符串、扩充字符串等功能。下面对这些功能一一进行讲解。  【 …

走进Java 7模块系统

笔者在观看过Devoxx关于Jigsaw的一段演示后&#xff0c;我很兴奋&#xff0c;觉得它应该会是针对复杂类路径版本问题和JAR陷阱等问题的解决方案。开发者最终能够使用他们所期望的任何Xalan版本&#xff0c;而无需被迫使用授权机制。不幸的是&#xff0c;通往更加有效的模块系统…

Chrome浏览器控制台报错NET::ERR_SSL_OBSOLETE_VERSION

问题描述&#xff1a;Chrome浏览器控制台报错NET::ERR_SSL_OBSOLETE_VERSION 原因&#xff1a; 服务器使用了TLS1.0 或 TLS1.1 版本&#xff0c;没有使用 TLS1.2 解决方法&#xff1a; 地址栏访问&#xff1a;chrome://flags/#legacy-tls-enforced&#xff1b;将Enforce depr…

关于矩形连线 (rectangle connect)

矩形连线问题&#xff0c;就是在两个矩形之间建立带可曲折的无覆盖的连线&#xff08;连线不覆盖图形&#xff09;&#xff0c;我的方法是这样的&#xff1a;CPoint pts[5];//输出连线的点列表int nPts;//输出点列表中点的数量void GetRectConnectLines&#xff08;CPoint * pt…

前端去掉空格的方法

/*** 去掉前端左右两边的字符空格* param str* 字符串* */function trim(str){//删除左右两端的空格return str.replace(/(^\s*)|(\s*$)/g, "");} /*** 去掉左边的空格* param str* returns*/function ltrim(str){ //删除左边的空格return str.replace(/(^\s*)/g,&q…

ARM 环境下使用azure powershell 从远程blob中拉去vhd 并创建虚拟机

最近需要从指定公共访问的blob中复制vhd到自己的订阅存储账户&#xff0c;并使用vhd创建AZURE ARM虚拟机(非经典版)&#xff0c;而且在portal.azure.cn中无法实现虚拟机映像创建等功能&#xff0c;于是自己使用azure powershell写了一个简单的脚本&#xff0c; 前期准备&#x…

读懂电脑系统(一)

addins文件夹这是系统附加文件夹&#xff0c;用来存放系统附加功能的文件。AppPatch文件夹这是应用程序修补备份文件夹&#xff0c;用来存放应用程序的修补文件。Config文件夹这是系统配置文件夹&#xff0c;用来存放系统的一些临时配置的文件。Connection Wizard文件夹看名字就…

java压缩解压缩类实例[转]

package com.yangxiaozuo.util; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.Deflater; import java.util.zip.Inflater; /** * ZLib压缩工具 * * author 梁栋 * version 1.0 * since 1.0 */ public abstract class ZL…