天天看点

TortoiseSVN 使用简介(3)

接着在Log message输入您此次branch的目的为何。按下OK就可以了。 如果成功,将可以看到下面的画面: 按下OK就可以关闭这个窗口了。如果您此时立刻去working copy的branch子目录下面,您将会失望的发现在该目录下面

-

接着在Log message输入您此次branch的目的为何。按下OK就可以了。

如果成功,将可以看到下面的画面:

按下OK就可以关闭这个窗口了。如果您此时立刻去working copy的branch子目录下面,您将会失望的发现在该目录下面并没有刚刚指定的目录存在。这是因为您working copy的部份还是旧的,您只需要在branch子目录下面进行SVN update就可以看到这个新增的目录了。新增的目录就与原来的目录无关了。您可以任意对他进行编辑,一直到您确认好所有在branch下面该做的工作都完成后,您可以选择将这个branch merge回原来的trunk目录,或者是保留它在branch中。

要merge回trunk目录中,方法很简单。以上面的例子来说,我们在D:\working\my_prj\trunk目录空白处,按下鼠标右键,选择Merge:

接着可以看到如下的画面:

这个画面主要分为三个部份,前面的From: 与 To: 是要问您打算从Branch中的哪个版本到哪个版本,merge回原来的trunk目录中。因此,From跟To的URL字段应当都是指定原来branch的目录下。剩下的就是指定要merge的revision范围。以上面的例子而言,我们从Branch的Revision 7开始merge到Branch下面的最新版本。您可以透过,Dry run按钮,试作一次Merge。这个merge只会显示一些讯息,不会真正的更新到trunk的目录去。只有按下Merge按钮后,才会真正的将branch的档案与trunk的档案合并起来。

上面的讯息告诉我们在trunk目录下面的yyyy.cpp及xxx1.cpp已经被更改过了。如果您在现在到trunk目录下,会看到这两个档案处于被修改的状态。

如果您确认这次的merge没有问题,您可以直接使用commit来将这两个被修改的档案commit回SVN repository上。如果有问题,您可以直接修改这两个档案,直到确认ok了,再行commit。

一切顺利的话,您就成功的将branch的档案merge回trunk了。

制作Tag或是Release

所谓的Tag或是Release就是一个特别的版本,因为这个版本可能有特别的意义。例如:这个版本是特别的Milestone或是release给客户的版本。其实,Tag与Release的作法与Branch完全相同。只是Branch可能会需要merge回原来的trunk中,而tag及release大部分都不需要merge回trunk中。举例来说,今天我们的trunk做了一版,这个版本被认定是软件的1.0版。1.0版对于开发来说是一个非常重要的里程碑。所以我们要特别为他做一个标记,亦即Tag。假设,这个 1.0版是要正式release给客户或是相关vendor,我们要可以为他做一个Release的标记。基本上,SVN只有目录的概念,并没有什么Tag的用法。所以您会看到再SVN的选单上面,Branch与Tag是同一个项目。以这个1.0的例子来说,我们就是在Trunk上面,按下鼠标右键,选择Branch/Tag的项目:

成功的话,您就在Tag目录下面建立了一个1.0的目录。当然,如果您这时到Tag的目录下面去,会看不到这个目录,您需要在Tag目录下面update一下,才能看到它。 制作Release的作法与Tag完全相同。只是把Tag的目录换成Rel

-

成功的话,您就在Tag目录下面建立了一个1.0的目录。当然,如果您这时到Tag的目录下面去,会看不到这个目录,您需要在Tag目录下面update一下,才能看到它。

制作Release的作法与Tag完全相同。只是把Tag的目录换成Release而已。

看到这里,相信大家都已经领悟到无论是Branch,Tag或是Release都只是将指定的Trunk版本复制一份到另外一个目录去。至于这个目录要叫Branch还是叫Release,SVN根本就不管。所以,您也可取其它的目录名称。不过,Branch,Tag及Release已经是SVN上面约定成俗的名称。所以,除非您知道自己为何这样做,否则,最好还是follow这个命名原则,以免后面新加入的人看不懂。

NOTE:同样的道理Trunk也只是一个约定成俗的名称。不一定要叫Trunk。只是大家看到Trunk目录就会知道这里面放的是主要的开发主干。

快速参考

前面写了不少废话,主要是给完全没有版本控制观念的人看的。如果你想直接知道某个功能如何使用,请看下面的章节。

在后面的说明,皆以d:\working当作工作目录。您可以将他换成其它任何您想要的目录。

取得(Checkout)Repository

开启档案管理员,进入d:

在档案管理员空白处按下鼠标右键,选择SVN Checkout

在Checkout对话框中,

URL of repository:repository的位置。

Checkout directory:要存放working copy的地方。

若d:\working目录不存在,SVN会问您要不要建立这个目录,请选择Yes。

接着按下OK,即可checkout该目录。

更新(Update)档案或目录

在您要由repository更新至working copy的档案或是目录的icon上面按下鼠标右键。选择SVN Update即可。

如果是要更新至特定的版本,则选择TortoiseSVN->Update to revision。并且在Update对话框中的Revision字段输入您要的版本。也可以透过Show Log按钮来查看版本的信息。

新增(Add)档案或目录

在尚不属于repository的档案或目录的icon上按下鼠标右键。选择TortoiseSVN->Add。

选取要新增的档案。

按下OK。

NOTE:新增的档案要经过提交(Commit)的动作才回真正的放入Repository中。

提交(Commit)修改过的档案或目录

在修改过的档案,或是在整个目录的空白处按下鼠标右键。

勾选真正要提交至Repository的档案或目录。

输入本次提交的纪录讯息(Message)。这个讯息应该要清楚明了,但不应过份简单。以利日后版本追踪。

按下OK。

Copy/Tag/Branch/Release档案或目录

确认您要处理的档案或是目录已经是Repository中最新的版本。

在要处理的目录或是档案上面按下鼠标右键,选择TortoiseSVN->Branch/Tag。

在To URL处输入您要的目的地。

branch:要产生一个分支。以区别与trunk不同的开发。

tag:要形成一个标记,表示重要的milestone。

release:表示一个已经正式的release的纪录。

其它:进行一个复制(copy)。

本文来自联城技术网(http://tech.16c.cn/)

继续阅读