[SCM]源码管理 - TortoiseSVN

 TortoiseSVN的安装非常简单,安装后以windows shell的形式来使用。

 

一 图标

TortoiseSVN 重载了文件和文件夹的图标来更好的显示版本控制的状态。如下:

 

:一个新检出的工作副本使用绿色的对勾做重载。表示 Subversion 状态正常

:在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作副本后被修改过,需要被提交。

 :如果在更新的过程中出现了冲突,图标会变成黄色感叹号。

:如果你给一个文件设置了svn:needs-lock属性,Subversion 会让此文件只读,直到你获得文件锁。具有这个重载图标的文件来表示你必须在编辑之前先得到锁。

:如果你拥有了一个文件的锁,并且 Subversion 状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。

:这个图标表示当前文件夹下的某些文件或文件夹已经从版本控制中删除,或是该文件夹下某个受版本控制的文件丢失了。

:加号告诉你有一个文件或目录已经加入版本控制。

:此图标表示改文件或文件夹将不被svn进行版本控制,将被忽略,不会出现在commit的对话框中,不会被commit到server。

:此图标表示文件或文件夹还没有与svn版本控制建立关系,也不在被忽略的list中。

 

二 右键菜单(已经在SVN控制下文件或文件夹的右键菜单)


 

SVN Update: 用SVN Server Repository的最新的版本来跟新本地的工作副本。

SVN Commit:将对本地副本的修改提交到SVN Server Repository。

TortoiseSVN->Show Log:显示文件或文件夹的修改历史。

TortoiseSVN->Repo-Browser:浏览SVN Server Repository或某些文件夹。

TortoiseSVN->Check For Modifications:检查本地副本相对于SVN Server的修改。

TortoiseSVN->Reversion Graph: 查看文件或文件夹的版本图。

TortoiseSVN->Edit Confilit:当你对本地的副本进行修改后,在提交(commit)前需要调用跟新(update)获得SVN Server Repository上最新的版本,否则不能提交(commit)。此时如果你修改的文件在Server上已经被别人跟新过,在update后,你修改的 本地的副本的文件将为冲突(conflit)状态,这个时候你需要调用edit confilt来进行merge操作,来得到合并后的文件。

TortoiseSVN->Resolved:在调用了Edit conflict后,你完成了merge工作,但是要提交(commit)merge的结果,还需要调用resolved来让SVN知道此文件的冲突已经被解决了,可以提交了。

TortoiseSVN->Update To Version:跟新本地的副本到指定的SVN Server Repository版本。

TortoiseSVN->Rename:修改文件或文件夹名字,其实就是删除原来的,新建一个。必须commit才能反映到SVN Server。

TortoiseSVN->Delete:标记文件或文件夹为删除,必须commit才反映到SVN Server。

TortoiseSVN->Revert:在commit前,取消对本地的副本的修改。

TortoiseSVN->Clean Up:也许由于服务器问题,一个Subversion指令不能成功地完成,你的工作副本因此被滞留在一个不一致的状态。 那样的话,你需要在该目录上使用cleanup。

TortoiseSVN->Get Lock:使用get lock来锁定文件使别人不能跟改。

TortoiseSVN->Release Lock:释放对文件的锁定。

TortoiseSVN->Branth/Tag:branch和tag过程相同,都是在SVN Server上对folder进行新的拷贝,brach一般在braches目录下,用来进行feature开发。tag在tags目录下,用来标记特定版本。

TortoiseSVN->Swith: 用来设定你本地副本所针对的SVN Server上的URL位置。对你所针对的branch或truck或tag进行切换。比如一开始在truck,快要release的时候,你需要转移到 新创建的brach上,这个时候需要使用swith来切换到brach上。

TortoiseSVN->Merge:用来brach间的merge。

TortoiseSVN->Export:从SVN Server将Reporitory或文件到处到本地,不包含版本信息。

TortoiseSVN->Relocate: 如果Repository的URL改变,使用relocate。例如SVN Server的IP,协议,或Repository的root改变等。如果只是在同一Repository的不同braches或tags的切换,使用 swith。

TortoiseSVN->Add:标记文件或文件夹为add,当commit后此文件或文件夹被加入到SVN Server Repository。

TortoiseSVN->Create Patch:create patch用来打包你对本地副本的修改,然后可以将patch给其他的developer用来review。通过此方式你的修改在提交到SVN Server前与别人共享。

TortoiseSVN->Applay patch:将别人创建的patch与本地的副本进行merge,来查看别人的修改。

 

三 右键菜单(还没有加入SVN控制的右键菜单)

 

SVN Checkout:从SVN Server Repository中获得工作副本到本地。

TortoiseSVN->Create Repository Here: 创建本地的SVN Repository。此时需要在本地一个空文件夹上右键。创建的Repository可以通过file:///d:/mytestproject2来被 TortoiseSVN来访问,或共享后被别的机器上的TortoiseSVN来访问file://ServerName/mytestproject2。此种方式不需要再安装其他的svn server了,同时也不支持http访问。一般用来对本机的文件进行版本管理,或小组内共享文件的版本管理。

TortoiseSVN->Import:将本地的项目,文件或文件夹导入到SVN Server Repository。在导入前一般要删除所有构建工程不需要的文件(临时文件,编译器产生的文件,例如 *.obj,生成的二进制文件,...)。

TortoiseSVN->Add To Ignore List: 将文件或文件夹加入到ignore list中,ignore list中包含的文件或文件夹将被commit所忽略。

 

四 右键拖拽菜单

 

 

五 TortoiseSVN->Merge

其 中包含三种情况:[所有的merge的结果都反映在本地的工作副本,要想将结果反映到SVN Server Repository,必须对merge后的本地副本提交Commit,同时在merge前要确保你的副本所针对的server的url设置为你将要提交 到的url,可以使用swith来查看和切换]

1)(Merging a Range of Revisionsmerge某个brach或tag上的某个版本或某些版本到本地的工作副本。

2)(Reintegrate a branch)merge某个brach或tag上最新的版本到本地的工作副本。

3)(Merging Two Different Trees)merge某两个brach或tag上的某些版本或最新版本到本地工作副本。

 

一般地要完成brach间的integrate需要先进行merge,将结果merge到本地副本,然后再提交本地的副本。

实例:

1) 从brach到trunk集成

1. 确保当前你的任何的修改都提交;

2. 确保当前工作在trunk上,可以使用swith来查看和切换到trunk;

3. 跟新当前本地的trunk副本到最新;

4. 在根目录上TortoiseSVN->merge,选择 reintegrate a brach;

5. 在merge wizard的对话框2的From url写入要integrate的brach的全路径;

6. 在merge wizard的对话框3中,对merge depeth中选中fully recursive。

7. 在merge wizard的对话框4中,对冲突的文件edit conflict和mark resolved。

8. 对本地的integrate的结果提交; 

 

2) 从trunk到brach集成,与从brach到truck集成过程相同,唯一需要注意的是用switch来确保你当前工作在brach上,然后在from url写入trunk的全路径。


六 使用TortoiseSVN->create repository here创建本地的SVN Repository

利 用此种方式,可以对本地的文件夹进行版本管理,如果此文件夹被共享的话,只要能访问此共享的人员都可以checkout和commit。此种方式建立简 单,只需要安装TortoiseSVN,调用create repository here,不需要安装svn server,也正是因为没有svn server安装,所以不支持http,https的访问,只能通过file:///来访问。

1)新建文件夹,例如c:\MySVNRepository;

2)  在新建的空文件夹上右键,调用TortoiseSVN->create repository here即完成了local repository的创建;

3)可以使用TortoiseSVN->import向此repository导入需要版本管理的文件;

4)可以使用TortoiseSVN->checkout,commit等修改文件;

5)可以使用TortoiseSVN->ropo browser来在本地查看repository,如下:

 

6)如果被共享的话,其他的机器可以使用TortoiseSVN->ropo browser来查看repository,如下: 

 

 

七 下载

http://www.collab.net/downloads/subversion/

 

八 参考

http://svndoc.iusesvn.com/ 

http://thinkinging.com/2007/04/12/creating-a-local-subversion-repository-with-tortoisesvn/ 

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-repository.html#tsvn-repository-create 

 

完!
posted @ 2011-08-04 17:50  iTech  阅读(4530)  评论(6编辑  收藏  举报