svn是一个比较老的代码管理工具,最近我们通常使用基本都是git,所以svn的使用比较生疏,最近项目上用svn时出现了代码管理混乱的问题,我在这里记录下svn的trunk、tags、branches的使用。
需要的软件
TortoiseSVN官网
创建代码仓库
新建一个文件夹CodeSpace,在CodeSpace文件夹下,右键->TortoiseSVN->Create repository here,这样代码仓库就创建完成了。
继续,右键->TortoiseSVN->Repo-browser,就可以看见你刚刚新建的库。
然后,我们在库中添加trunk、tags、branches三个文件夹,如下图:
检出
我们新建一个文件夹workspace,这里就是我们要检出工程的位置。右键->SVN Checkout…,URL of repository填上刚刚创建的仓库地址
当然真正开发的时候我们一般只会检出工程所在目录,这样只是为方便下面的操作。
创建工程项目并提交代码
刚刚检出后,workspace文件夹下会出现trunk、tags、branches三个文件夹,我们在trunk文件夹模拟下写工程代码,创建testProject文件夹,然后在文件夹下添加test1.txt
在testProject文件夹上,右键->add…,将工程目录加入版本控制,然后右键->SVN Commit…,提交更新
tags
这时,我们发布版本1.0但是我们要记录源码,我们就可以当前trunk上的代码记录到tags分支。
我们在tags文件夹下update代码后就可以看到version1.0的代码了。
branches
建立branches与建立tags类似
然后我们就可以在function1分支写代码,我们模拟一个新功能开发。update branches,在function1下的testProject中创建一个branch commit.txt,修改test1.txt的内容
提交分支更新的代码
然后我们修改主分支上的代码,模拟修复生产问题,修改完后提交代码
合并trunk代码到branch
这时,我们在branches的function1分支正在开发功能1,我们在主分支发现了一个bug并修复了,现在我们想把主分支修复bug的代码合并到功能1的分支然后我们再继续开发。
进入function1源码所在目录在testProject文件夹上,右键->TortoiseSVN->Merge,选择Merge a range of revisions
URL to merge from填入主分支目录,如:file:///C:/work/CodeSpace/trunk/testProject
Revision range to merge填入需要合并的版本,不清楚版本的时候可以点击后边的Show log按钮,
图上可以看出最近版本是9-1,所以Revision range to merge 我们填上9-1,点击Next
然后点击Merge
合并branch到trunk
我们开发完了功能1,需要把功能1的代码合并到主分支然后发布新版本2.0
在trunk中testProject文件夹上右键->TortoiseSVN->Merge,选择Reintegrate a branch
From URL填写需要合并的分支的地址,Test Merge 测试合并结果,合并冲突后