分享

SVN版本控制的使用说明

 我不认识你 2008-06-17

 之前公司用的版本控制软件是CVS,最近换了SVN,昨天又换成了VSTS来进行项目开发。刚接触SVN的时候还不会用,所以自己就边参考中文官方站点的文档,加自己的实践,写了一份简明的使用指南。希望对使用SVN的朋友有用。 本来是有图片的,但是从WORD里粘贴过来就没有了,而且我想上传电子文档的,不知道为什么今天CSDN上传总是出错。看看明天可以不。

1关于TortoiseSVN
    TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央的repository,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将Subversion和版本控制系统看作一种“时间机器”。某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性 - 比如,对编程语言的支持,或者提供程序构建工具。不过Subversion并不是这样的系统;它是一个通用系统,可以管理任何类型的文件集,包括源代码。
2基本操作
2.1建立项目文件
       在本地PC硬盘上新建一个文件夹,并重新命名。下载假设该文件夹名为WORK,对该文件夹点击鼠标右键,鼠标移动到TortoiseSVN选项上,然后选取CHECK OUT选项,如图:
在URL中输入上节讲的服务器地址,刚新建的文件夹就会添加到directory中。Revision中默认选项是HEAD,下载最新项目版本,如果你要下载其他版本,可以选取第二个选项,输入想要下载版本号。点击OK就可以进行下载了。这个时候如果要求输入用户名和密码,就填写自己的域账号和密码。格式如上一节所示。完成以上步骤后,版本库中的项目代码稍等一会就可以下载到本地PC上了。下载好的项目代码如下图:
2.2TortoiseSVN下进行开发
       用VS.NET2005打开刚才从SVN版本库中下载的项目文件,如果是在安装AnkhSVN插件以后第一次运行VS.NET2005,会有一个提示,大意就是检测到项目是用SVN来进行控制的,是否愿意AnkhSVN集成到VS.NET中进行开发。点击YES以后等待项目的加载。
完成后如图所示:
同时在VS.NET的TOOL选项中会多出个AnkhSVN选项。对着解决方案浏览器(solution enplorer)中的项目文件点击右键,会多出一个Ankh选项。在对项目文件进行加锁,解锁,提交等动作都需要在这个选项里进行。
2.2.1项目文件的加锁,解锁,提交
       在VS.NET中,项目文件处于正常的控制状态如下图所示:
文件旁边会有绿色的勾。这时如果要对文件ADVISOR.aspx.vb进行编辑,对该文件点击右键,点击Ankh选项,选择里面的Lock选项,会弹出下图:
你可以在LOCK Message中输入一些文字,或者关于加锁的信息。单击OK,你就取得了对这个文件的编辑权。这时该文件的图标也会变为:
这表示你对文件取得了控制权。如果你对文件进行了修改,图标会变为:
       当你完成对该项目文件的修改以后,首先需要对该文件进行解锁,操作和解锁类似,点击Unlock以后,会出现如下图的对话框:
单击OK,你就对该文件解锁了,但是还有一点要注意,如果你对文件进行了修改,解锁完成以后右键点击该文件,点击提交。你修改的文件就被提交到版本库中了。这里还有一点,就是如果你忘记解锁了,直接点击提交,解锁的操作会被默认也进行了。
       如果该项目文件有多个人对他进行了修改,那在每次要对该文件进行加锁的时候要先Update,获取最新的版本,如下图:
       如果你提交前不想将你所修改的提交或者想恢复到加锁时候的文件状态,可以右键单击该文件,点击Ankh,选择Revert选项,就可以撤销你的修改了。
2.2.2添加项目文件到版本库
       在项目开发的过程中会添加新的项目文件,这个时候要将文件提交到版本库中去,这样别的开发人员也可以看到新添加的文件。首先在VS.NET中添加一个新的文件夹,里面新建一个页面,这个时候文件只在本地PC存在,图标显示为一个加号,显示如图:
然后右键单击该页面,点击commit,如图:
点击commit提交。这个时候文件就被提交到版本库中去了,但是该文件还不是只读属性,因此要到文件夹下去设置只读属性。
       在对应的文件夹下,右键单击新添加的文件,点击TortoiseSVN,然后选择Properties,弹出对话框,如图:
接着点击ADD,出现的对话框如下图,在Property name中填入svn:needs-lock,Property value中填入*,然后点击OK。
当这一步操作完成以后,再次提交该文件,将修改提交到版本库中去。这个时候图标由原来的绿色或者是蓝色变为下图的灰色。
 
 
2.2.3日志查看
       如果要查看Advisor.aspx.vb文件的日志,有哪几个人进行了修改,右键单击该文件,选择Ankh选项的里LOG选项,会出现下图:
图中Revision start表示查看日志开始的版本, Revision end表示最新的版本,你也可以选择其他的。点击OK后就可以查看日志了。日志记载的比较详细,文件修改人,修改时间,修改的文件路径都可以查看到。
       刚才是在VS.NTE环境中查看日志,如果你想直接在受版本控制的文件夹中查看日志也是可以的,在文件夹中右键点击要查看的文件,单击TortoiseSVN,点击Show Log选项。
就可以查看日志,如图:
2.2.4比较文件
   SVN提供了比较文件不同的功能,可以方便的查看文件进行了那些修改。接着上一小节,点击日志里的任一版本,点击右键,选择compare with working copy或者compare with选项,经过片刻,就会出现你选择的版本的文件的,如图:
    你也可以在VS.NET开发环境中对该文件点击Diff选项,比较不同,如图:
红色的是最新的版本号,蓝色的加号表示新添加的内容。具体的含义大家可以查看官方文档。
3 附录
3.1 SVN各种图标的含义
一个新检出的工作复本使用绿色的对勾做重载。表示Subversion状态正常.
在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作复本后被修改过,需要被提交。
如果在提交的过程中出现了冲突图标变成黄色感叹号。
如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个锁。
如果你拥有了一个文件的锁,并且Subversion状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。
这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。
加号告诉你有一个文件或是目录已经被计划加入版本控制。
与TortoiseCVS (一个集成的CVS shell)不同,对于未受控的文件没有图标重载。这么做是因为图标重载的数量受到系统的限制,应该要节约使用。
事实上,你会发现并不是所有的图标被使用在你的系统上。这是由于Windows限制图标重载不能超过15个。Windows自己用了4个,剩下11个可被别的应用程序使用。如果你同时使用了TortoiseCVS,就不有足够的空位了,所以TortoiseSVN希望成为一个“良好市民(TM)”,限制自身的使用,为别的应用留下机会。
l         正常, 已修改冲突总是被载入,并可见。
l         已删除只要有可能的就载入,但如果没有足够的空位,就使用已修改来代替。
l         只读只要有可能就载入,但如果没有足够的空位就使用正常来代替。
l         已锁定只在少于13个重载已经载入的情况下才加载,如果不满足这个条件就使用正常来代替。
l         已增加只在少于14个重载已经载入的情况下才加载,如果不满足这个条件就使用已修改来代替
3.2 CVS项目转换到SVN
       由于我们之前的项目是在CVS上进行开发的,所以要将目前的受CVS控制的项目全部转换到SVN当中。转换如下:
1 例如我要转换eservice_com这个项目,首先新建一个文件夹,然后在该文件夹下面新建一个eservice_com文件,并且在VS.NT中新建一个名为eservice_com的解决方案。
2 然后复制一份受CVS控制的eservice_com项目文件,拷贝到新建的eservice_com解决方案中去。然后搜索该文件下面的所有目录,将关于CVS的文件全部删除。搜索设置如图:
 
3用VS.NET打开新建的eservice_com解决方案,点击Project,选择Show ALL选项,如图:
这是在Solution Explorer中会出现刚才拷贝到这里的eservice_com项目的文件,不过是灰色,这是在Solution Explorer中点击右键,选择Include in Project,项目就会被添加到新建的解决方案中来。如果你前面没有将CVS的信息全部删除的话会出现错误提示,提示你已经有版本控制软件控制该文件,然后就会出错。如图:
4 等项目全部include到新建的项目以后,这个时候项目还没有受到SVN控制,因此要将该项目上传到版本库中去。单击VS.NET的File菜单,选择add solution to subversion选项,然后按照提示输入版本库的URL地址,确定后提交。如图:
如果在提交的过程中要求输入账号和密码,这时候输入域账号和密码就可以了。一切顺利的话项目就会被上传到版本库中。如图:
 
5上传以后项目还不是只读属性,右键单击该项目的文件夹,给项目文件添加只读属性,如图:
 
5添加完只读属性以后在将项目文件向版本库提交一次,如图:
 
6 提交成功以后,文件夹的图标会由原来的绿色的勾变为灰色,表示文件是只读的。
33参考文档
1.         http://www./tsvndoc/ 该站点是SVN的官方中文站点

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多