Subversion 学习 四 分支功能
$ svncopy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/branches/my-calc-branch\
-m"Creating a private branch of /calc/trunk."
使用这个命令,需要知道SVN 的一个概念,就是所有版本中的所有文件都可以使用一个方式来唯一表达,这个方式就是PEG, 分为2个部分,1是path? , 2是revision ID
比如:? ^/trunk/real.c@809 指的是在trunk目录下的real.c文件,在809的版本
这时候可以通过 svn copy ^/trunk/real.c@809?./real.c 命令来恢复real.c文件到当前目录
如:
?$ svn merge http://svn.example.com/repos/branch1@150 \
http://svn.example.com/repos/branch2@212\
filename.working,
$ svnlog -v -r 390
------------------------------------
r390 |user | 2002-11-22 11:01:57 -0600 (Fri, 22 Nov 2002) | 1 line
Changedpaths:
M/branches/my-calc-branch/button.c
M/branches/my-calc-branch/README
Finalmerge of trunk changes to my-calc-branch.
$ svnlog -v -r 390 -g
------------------------------------
r390 |user | 2002-11-22 11:01:57 -0600 (Fri, 22 Nov 2002) | 1 line
Changedpaths:
M/branches/my-calc-branch/button.c
M/branches/my-calc-branch/README
r383 |sally | 2002-11-21 03:19:00 -0600 (Thu, 21 Nov 2002) | 2 lines
Changedpaths:
M /branches/my-calc-branch/button.c
Mergedvia: r390
Fixinverse graphic error on button.
------------------------------------
r382 |sally | 2002-11-20 16:57:06 -0600 (Wed, 20 Nov 2002) | 2 lines
Changedpaths:
M/branches/my-calc-branch/README
Mergedvia: r390
$ svnblame button.c
…
390user retval = inverse_func(button, path);
390user return retval;
390user }
$ svnblame button.c -g
…G
383sally retval = inverse_func(button, path);
G 383sally return retval;
390user }
Action
Command
创建一个分支或标签
svn copy URL1 URL2
切换工作副本到分支或标签
svn switch URL1
将分支与主干同步
svn merge trunkURL ; svn commit
参见合并历史或适当修改集
svn mergeinfo SOUCE TARGET
合并分支到主干
svn merge - -reintegrate branchURL; svn commit
复制特定的修改
svn merge –c REV URL; svn commit;
合并一个范围的修改
svn merge –r REV1:REV2 URL ; svn commit;
让自动合并跳过一个修改
svn merge –c REV - -record-only URL; svn commit;
预览合并
svn merge URL - -dry-run
丢弃合并结果
svn revert –R .
从历史复活某些事物
svn copy PATH@REV localPATH
撤销已提交的修改
svn merge –c REV URL; svn commit;
感知合并的检查历史
svn log –g; svn blame –g;
从工作副本创建一个标签
svn copy . targetURL
重新整理分支或标签
svn mv URL1 URL2
删除分支或标签
svn rm URL
?
?
?
?
?
?
?
?
?
?
?
?