基于SVN构建版本机及所遇到的问题-2

接续“基于SVN构建版本机及所遇到的问题-1”。

创新互联建站长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为芷江企业提供专业的网站设计制作、做网站芷江网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

2、发布

项目右键菜单“发布”后,并修改文件夹:

基于SVN构建版本机及所遇到的问题-2

点击“发布”按钮,输出窗口提示如下:

基于SVN构建版本机及所遇到的问题-2

进入资源管理器查看本地项目目录:

基于SVN构建版本机及所遇到的问题-2

Publish目录还是问号,先后执行Add(右键弹出菜单-->ToitorseSVN-->Add)和Commit(右键弹出菜单-->Commit),变为绿勾:

基于SVN构建版本机及所遇到的问题-2

交付人员可以在其他PC上使用TortoiseSVN来checkout这个发布目录,并部署之。

5.5 Update

SVN多半都是由许多人共同使用。同样的档案可能还有人会去进行编辑。为了确保工作目录中的代码文件与Repository是同步的。在编辑前都先进行更新的动作。前提是:已经将代码文件check out过一次。

 

假设另外一个同事通知你修改了Program.cs,则点击Program.cs右键弹出菜单的“Update”:

基于SVN构建版本机及所遇到的问题-2

执行Update后显示:

基于SVN构建版本机及所遇到的问题-2

表示更新完成。

 

尽管推荐按文件更新,但是万一不知道更新了哪个文件,可以执行解决方案的右键弹出菜单的“Update”,来更新整个解决方案。

5.6 Update to Revision

如果想要回退到某个老版本,可以使用该功能:

基于SVN构建版本机及所遇到的问题-2

执行后:

基于SVN构建版本机及所遇到的问题-2

点击“Show log”:

基于SVN构建版本机及所遇到的问题-2

点击版本1确认:

基于SVN构建版本机及所遇到的问题-2

执行OK:

基于SVN构建版本机及所遇到的问题-2

成功更新到版本1.

5.7 Branch

建立分支的目的可能有:

(1)开发分支:从主干复制一份来修改,修改完了后合并到主干。

(2)老版本分支:老版本已经封闭,新版本准备开发,但是老版本还需要修改需要修改,于是从主干分出一份来继续老版本的修改。

(3)测试版本/正式版本分支:发布软件测试版本或者正式版本,用来测试部署或者正式部署。

(4)补丁版本分支:因为bug还需要建个补丁,不包括全部文件,保留需要更新的文件即可。

 

后两种实际上都是Release,这些版本有特别的意义,特别的Milestone或是release给客户的版本。后两种都不需要merge回trunk中。举例来说,今天我们的trunk做了一版,这个版本被认定是软件的1.0版。1.0版对于开发来说是一个非常重要的里程碑。所以我们要特别为他做一个标记,亦即Tag。假设,这个1.0版是要正式release给客户或是相关vendor,我们要可以为他做一个Release的标记。基本上,SVN只有目录的概念,并没有什么Tag的用法。所以SVN的菜单上面,Branch与Tag是同一个菜单。以这个1.0的例子来说,就是在Trunk上面,按下鼠标右键,选择Branch/Tag的菜单。

 

首先,建个branches目录,并Add,Commit,结果如下:

基于SVN构建版本机及所遇到的问题-2

然后,右键菜单:

基于SVN构建版本机及所遇到的问题-2

执行“Branch/tag...”:

基于SVN构建版本机及所遇到的问题-2

上图的“Log Message”应该输入一些说明文字。点击OK后:

基于SVN构建版本机及所遇到的问题-2

分支V1.1建立成功,但是要先更新branches目录才能看到:

下图看到branches目录是空的:

基于SVN构建版本机及所遇到的问题-2

执行update后看到:

基于SVN构建版本机及所遇到的问题-2

还可以指定版本建立分支:

基于SVN构建版本机及所遇到的问题-2

5.7 Merge

在开发分支上开发的代码文件往往需要合并到主干(trunk)中,有时候老版本分支和补丁分支也需要合并到主干中。

 

5.2节建立的项目的主干在哪里?实际上就是D:\测试项目\TestProject。

 

先修改V1.1这个branch的文件:

基于SVN构建版本机及所遇到的问题-2

上图的Program.cs正在修改中或者是代码文件在本地已经被修改,图标上的感叹号就是这个意思。Commit后表示V1.1和主干不同了。

 

在资源管理器该目录下空白处右键:

基于SVN构建版本机及所遇到的问题-2

执行“Merge...”:

基于SVN构建版本机及所遇到的问题-2

选择第一个,“next >”:

基于SVN构建版本机及所遇到的问题-2

在“URL to merge from”下面,点击“...”选择需要合并分支。

在“Revision range to merge”中指定需要合并的revision,这里选择版本5。

点击“Next...”:

基于SVN构建版本机及所遇到的问题-2

点击“Test merge”先测试一下:

基于SVN构建版本机及所遇到的问题-2

这表示合并很可能不会错误,确认后返回,点击“Merge”:

基于SVN构建版本机及所遇到的问题-2

进入主干目录:

基于SVN构建版本机及所遇到的问题-2

感叹号表示Program.cs已经被修改了。检查一下内部代码,即可提交。

 

5.7 conflict和revert

当有两个人同时编辑一个文件,第一个人提交时是正常的,第二个人提交时会提示更新工作副本,点确定更新时会出现版本冲突。当一个文件出现冲突时,文件的图标为×××的感叹号。

提交后提示错误:

基于SVN构建版本机及所遇到的问题-2

再如:

基于SVN构建版本机及所遇到的问题-2

对于每个冲突的文件,SVN在你的目录下放置了三个文件:

基于SVN构建版本机及所遇到的问题-2

这个时候,一种选择:先Update再提交。但是,可能会在代码文件中出现:

<<<<<<< .mine

       6666666666666600000

=======

      66666666666aaaaaaaaaa666

>>>>>>> .r16

 

所以,最好是选择revert:

基于SVN构建版本机及所遇到的问题-2

这时候,放弃了自己的修改。然后再使用备份文件重新修改回来。

 

还有两种选择:

1、在冲突提示上右键菜单有三个选项:

(1)直接标记已解决,相当于忽略;

(2)以theirs为准,就是放弃自己,承认其他人修改的

基于SVN构建版本机及所遇到的问题-2

(3)以mine为准,就是坚持自己,抛弃其他人的

2、删除工作目录,重新拉取代码


名称栏目:基于SVN构建版本机及所遇到的问题-2
路径分享:http://azwzsj.com/article/jossji.html