如何使SVN执行命令而不进行更改

时间:2009-06-02 22:47:12

标签: svn

在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'

从理论上说这听起来不错,但似乎没有用,我做错了什么?

5 个答案:

答案 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