根据服务器上的文件检查差异


76

我的机器上有一个存储库的工作副本,并且我知道它已在服务器上更新。我想知道如何通过使用svn命令行参数来获得新版本与工作副本中的版本之间的区别。

我有办法吗?


Answers:


118

工作副本是BASE版本。存储库中的最新副本是版本HEAD。这会将您的工作副本与HEAD版本进行比较:

svn diff -r HEAD <file>

实际上,这将反向吐出更改,即告诉您如何从HEAD到BASE。所以从技术上讲,您想要:

svn diff -r BASE:HEAD <file>

您可以保留键盘笔触吗?只有你和你的神知道答案。


9
工作副本文件可以与基本文件不同(当您对该文件进行本地修改时)。您应该意识到,它无需使用服务器就可以对文件进行本地修改。
桑德·里肯

稍后的答案解决了对HEAD进行局部修改的原始问题
Chadwick 2012年


17

之间的区别工作副本HEAD; HEAD为了生成工作副本,需要对存储库()中的内容进行更改:

svn diff -r HEAD --old=<file>

BASE和之间的区别可能引起人们的兴趣HEAD。自您上次更新工作副本以来已签入存储库的更改:

svn diff -r BASE:HEAD <file>

当然还有BASE工作副本的区别; 自上次更新工作副本以来所做的更改:

svn diff <file>


讨论了三个版本:BASE工作副本HEAD

  • BASE<file>最后一次签出/更新。使用后将恢复为什么工作副本svn revert
  • 工作副本<file>最近已检出/更新的本地修改BASE
  • HEAD:存储库中的最新修改。相当于BASE 当且仅当没有修改已经提交,因为<file>被检查出/更新工作副本
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.