SVN:如何将工作副本与存储库修订进行比较?

Aza*_*zat 27 svn version-control repository

我想只查看已修改,添加等文件的列表,而不是内容(svn diff输出),只有文件列表svn status.

svn diff -r HEAD 抛弃了大量的信息,很难快速理解.

svn status 仅显示将工作副本与其本地原始版本(而不是存储库版本)进行比较的更改.

svn update 不支持 --dry-run

简而言之,我需要类似的东西svn status,但是将当前工作副本与存储库修订版进行比较(我将与HEAD修订版进行比较).

我查看了SVN手册,但遗憾的是没有任何帮助: - /

nos*_*nos 44

尝试

svn status --show-updates
Run Code Online (Sandbox Code Playgroud)

使-u(或--show-updates)选项svn status导致svn联系存储库并显示存储库中已更改的内容 - 这对您来说足够了吗?根据您的需要,您可能也想要-q--verbose标记

  • @Azat如果您需要查看在仲裁修订版之间更改了哪些文件,请参阅http://stackoverflow.com/questions/167371/how-do-i-see-what-files-were-changed-between-2-revisions (2认同)

kdo*_*pen 25

svn diff -r head
Run Code Online (Sandbox Code Playgroud)

这将生成diff工作副本和存储库之间不同的所有文件的列表,给出文件列表和实际更改.正如你所说,这很难理解.

试试这个:

svn diff -r head --diff-cmd meld
Run Code Online (Sandbox Code Playgroud)

这是同样的事情,但使用meld(你可以在你的武器库中提供任何其他视觉差异工具)显示更改,这是更容易管理.

但严重的是,习惯于阅读那些差异输出,因为它们构成了许多其他事物(例如补丁)的基础,并且在Linux世界中很难避免.减少输出:

svn status -u 
Run Code Online (Sandbox Code Playgroud)

会给你一个修改过的文件列表,然后:

svn diff <file> -r head --diff-cmd <tool>
Run Code Online (Sandbox Code Playgroud)

将为您提供您感兴趣的特定文件的视觉差异.