svn使用 2011-10-27 1:32
1、checkout: (svn checkout ***)
$ svn checkout https://url/trunk localDir
说明:将server “https://url/trunk”下的content checkout到本地当前目录\localDir目录下(如果目录不存在则新建)。
2、创建一个branch: (svn copy ***)
$ svn copy https://url/trunk https://url/private/yours/policy_1
说明:在server端“https://url/private/yours/”下新建branch(不能已存在),并将”https://url/trunk” copy 到新的branch下(未实行实际的copy,只是将trunk映射到policy_1下而已),不耗费空间和带宽,该operation应该在“瞬间”完成。
3、switch到自己的branch: (svn switch ***)
$ svn switch https://url/private/yours/policy_1
说明:做完1、2步操作后,可在当前版本控制根目录下(此处为url/)用svn info查看其URL,应为https://url/trunk 上述命令(switch)将当前目录switch到自己的branch-policy_1下,完成该命令后再用svn info查看的URL为https://url/private/yours/policy_1。
4、本地修改 (自己的事情) … 5、commit 本地修改的工作: (svn ci ***) $svn ci ./*** 说明:将自己的改动commit,***为改动内容,可为具体文件,或者某目录,甚至根目录
6、merge trunk上的改动: (svn merge ***)
$ svn merge -r 444:461 https://url/trunk .
说明:其中444为目标branch-policy_1建立时的版本(svn copy操作所在版本号的”前一个”版本号),版本号可由svn log https://url/private/yours/policy_1来完成,显示的是该branch的版本控制记录;461为trunk的最终版本,即要将trunk的最新改动merge到自己的branch。 注意:该命令最后的”.”代表当前目录,不要忘记!
7、再次commit本地merge结果: (svn ci ***)
$ svn ci ./
说明:将merge trunk上的改动提交到branch的server端,使server端的trunk与policy两个分支的差别只是本人的工作。
8、diff本人工作与brunch的最终差异: (svn diff ***)
$ svn diff https://url/trunk https://url/private/policy_1
说明:前述一系列操作已经使server端的两个URL的内容差异仅限于本人的工作,上述URL的顺序代表了自己的工作差异,如果反了,则显示trunk的工作,逻辑反。
9、发code review (svn 以外的工作)
mail…
waiting ack!
10、需要修改则转步骤4,否则继续
…
11、switch到trunk (svn switch ***)
$ svn switch https://url/trunk
说明:该命令是在本地***/project/上执行的,可将该目录switch到server端的trunk下,但该操作会保留本地的工作(如某文件与trunk有差异时),svn info可查看其URL已经改变。
12、在trunk下merge branch上的改动: (svn merge ***)
$ svn merge -r 444:467 https://url/private/yours/policy_1
说明:将branch上的改动merge到trunk,版本号解释见步骤5,原则即是将“所有改动”均merge过来!
13、commit trunk (svn ci ***)
$ svn ci ./
说明:当前工作目录(okinawa),其URL为https://url/trunk。
14、转步骤2,建立一个新的branch,go on working…( maybe a dead cycle :< haha!!! )
补充:在merge、switch、update或者commit的时候,可能产生冲突,选择正确的版本进行冲突解决即可,命令如下:
$ svn resolve –accept=*** ./*.cpp
其中***为参数,可参看svn help resolve,后面的是需要resolve的文件或者目录名。 |