在CVS中,我可以执行以下操作
cvs -n update
如果我运行更新但没有改变任何内容,那么我应该怎么办?我主要用它来检查我是否会遇到很多冲突。
在svn我想用切换命令
做同样的事情即:
svn -n switch url1 url2
我的理解是,有一个--Dry-run开关经过动作但实际上并没有给出任何输出。所以它只有一半的方式:)
如何让它进行干运行和显示结果将是什么(哪些文件将被修改,更新,删除,添加和冲突)。
由于
更新: 对于那些建议我使用--dry-run的人,我尝试了以下
svn switch url --dry-run
我得到了
Subcommand 'switch' doesn't accept option '--dry-run'
从理论上说这听起来不错,但似乎没有用,我做错了什么?
答案 0 :(得分:15)
将merge
和--dry-run
与您将用于switch
的相同网址一起使用。它应该会为您提供您正在寻找的信息,即使您最终会使用switch
而不是merge
。
答案 1 :(得分:7)
在svn更新中,您可以使用svn status --show-updates
来显示您要更新的所有项目。
对于合并,您可以使用--dry-run
任何问题。
答案 2 :(得分:3)
使用 - dry-run
- 干运行
完成运行命令的所有动作,但不会在磁盘上或存储库中进行实际更改。
来自:Subversion Complete Reference
你的问题是(现在仍然是)
如何使SVN执行命令而不进行更改
答案是:使用 - 干运行
- dry-run 无法与开关命令一起使用这一事实很难,但@Don为您提供了一个很好的解决方法
将merge和--dry-run与您将用于交换机的URL相同。它应该为您提供您正在寻找的信息,即使您最终将使用开关而不是合并。
当然,您也可以提交bug/enhancement report with subversion。
答案 3 :(得分:0)
据我所知,dry-run
会告诉你它会做什么,包括会发生什么冲突等等。
http://svnbook.red-bean.com/en/1.4/svn.branchmerge.copychanges.html(在该页面上搜索“干跑”)
答案 4 :(得分:0)
除了svn status -u之外,该状态还将显示将更新哪些文件。 此oneliner将为您提供有关将更改哪些内容的输出:
svn diff -r BASE:HEAD
如果更改很多,您可能希望将其传递给更多对象。
svn diff -r BASE:HEAD | more