什么svn命令将列出在分支上修改的所有文件?

在svn中,我创build了一个分支,在修订22334处说。然后在分支上进行了提交。

如何获得分支上所有已更改的文件的列表,并与中继上的内容进行比较? 我不想看到分支被创build和“现在”之间在主干上被更改的文件。

这将做到这一点我认为:

svn diff -r 22334:HEAD --summarize <url of the branch> 

你也可以得到一个更改文件的快速列表,如果这正是所有你正在寻找使用状态命令与-u选项

 svn status -u 

这将向您显示当前代码库中的文件与存储库中的最新版本的修订版本。 我只使用差异,当我真的想看到文件本身的差异。

这里有一个关于svn命令的好教程,解释了很多常见的场景: SVN命令参考

这将只列出修改的文件:

 svn status -u | grep M 

-u选项将显示包括目标文件,如果它们在编译期间被添加。

所以,为了克服这个问题,你可以这样使用。

 svn status -u | grep -v '\?' 
 echo You must invoke st from within branch directory SvnUrl=`svn info | grep URL | sed 's/URL: //'` SvnVer=`svn info | grep Revision | sed 's/Revision: //'` svn diff -r $SvnVer --summarize $SvnUrl 

您可以使用以下命令:

 svn status -q 

根据svnbook :

With --quiet (-q), it prints only summary information about locally modified items.

警告:此命令的输出仅显示您的修改。 所以我build议先做一个svn up来获取最新版本的文件,然后使用svn status -q来获取你修改过的文件。