Subversion命令记录

1.Merge 分支到主干
  进入主干working copy目录执行
 
svn merge<branch url>

  合并后svn commit到服务器

2.Merge 分支到主干测试
同1,只是需要参数--dry-run
 
svn merge --dry-run <branch url>


3.分支合并后又做了改变,继续合并
  如果上次working copy的merge已经提交,同1方法。如果还没有提交,则需要知道上次合并时候的版本号,参数如下
 
svn merge -r<上次合并时的版本号>:HEAD <branch url>

上面命令的含义是:将分支里上次合并以后的所有改变合并到working copy.

4. 比较两个branch或者trunk和branch上的某个文件在各自路径上最新版本的差异

方法I.
svn diff http://svnhost/trunk/xx.java  http://svnhost/branch1/xx.java 


方法II.
先进入trunk的working copy目录,察看另一个分支的log,获得最新版本号
svn log http://svnhost/branch1/xx.java

假设得到的版本号列表中最新一个时12505
然后运行diff
svn diff -r12505 http://svnhost/trunk/xx.java  

如果当前位于trunk working copy的xx.java所在目录,并且保证xx.java和仓库最新版一直,执行:
svn diff -r12505 xx.java  

也是可以的.
方法I直接了当,方法II需要借助svn log命令

5. 比较两个branch或者trunk和branch上的某个文件在各自路径上指定两个版本(如:12505到12508)的差异
svn diff http://svnhost/trunk/xx.java@12508  http://svnhost/branch1/xx.java@12505


6.由于错误修改了一个文件,想回退到以前的某个版本
进入该文件(以a.java为例)所在working copy的目录,可能要通过svn log,svn diff确定是哪个版本更新导致的错误,如果确定是27版本导致错误,想回退到26把版本,执行
svn merge -r 27:26 a.java

然后执行svn commite提交

7.如何让SVN下的HTML文件在浏览器中正常显示(不显示源码).
如果正常显示需要在SVN提交文件时设置
html文件的svn属性为: svn:mime-type 为 text/html.
css文件的svn属性为: svn:mime-type 为 text/css.
(参考http://blog.pluskid.org/?p=70)

svn switch分支切换命令
1. switch URL[@PEGREV] [PATH]
2. switch --relocate FROM TO [PATH...]
switch命令的作用是将工作副本镜像到同一版本库中一个新的路径或者改变根目录以适应服务器hostname及其它元数据信息的改变。
1、    Switch命令的行为类似于svn update,只是方式是切换到版本库中的某个标签或者某个分支上。PEGREV决定了搜索的目标路径的第一个版本号。[PATH]表示需要切换的本地拷贝路径。
如果在命令中使用了—force,则本地拷贝中的未版本化的障碍路径不会造成命令的失败,它会成为新本地副本中的新增路径或者另外一种情况,那就是如果此路径名称与版本库上的路径名称一样,则此工作副本路径会被版本化并且维持原状,任何差异会被理解为本地副本的修改。
2、    重写工作拷贝的元数据,例如服务器名称改变或者ip改变等。

例如:
1、test库名改为test1,则工作拷贝切换
svn switch –relocate https://10.67.65.3/testhttps://10.67.65.3/test1 “H:\新建文件夹”
2、将https://10.67.65.3/test/dev/lib切换为https://10.67.65.3/test/branch/lib

svn switch https://10.67.65.3/test/branch/lib

猜你喜欢

转载自koda.iteye.com/blog/564825