千家信息网

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

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,接续"基于SVN构建版本机及所遇到的问题-1"。2、发布项目右键菜单"发布"后,并修改文件夹:点击"发布"按钮,输出窗口提示如下:进入资源管理器查看本地项目目录:Publish目录还是问号,先后执行A
千家信息网最后更新 2024年11月24日基于SVN构建版本机及所遇到的问题-2

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


2、发布

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


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


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


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


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


5.5 Update

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

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


执行Update后显示:

表示更新完成。

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


5.6 Update to Revision

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


执行后:


点击"Show log":


点击版本1确认:


执行OK



成功更新到版本1.


5.7 Branch

建立分支的目的可能有:

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

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

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

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

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

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


然后,右键菜单:



执行"Branch/tag...":


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


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

下图看到branches目录是空的:


执行update后看到:


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


5.7 Merge

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

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

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


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

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


执行"Merge...":


选择第一个,"next >":


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

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

点击"Next...":


点击"Test merge"先测试一下:


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


进入主干目录:


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

5.7 conflictrevert

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

提交后提示错误:

再如:

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


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

<<<<<<< .mine

6666666666666600000

=======

66666666666aaaaaaaaaa666

>>>>>>> .r16

所以,最好是选择revert


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

还有两种选择:

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

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

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

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

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


0