检查服务器上的文件差异

Man*_*tis 73 svn diff

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

有没有办法让我这样做?

Joh*_*ica 113

工作副本是修订BASE.存储库中的最新副本是修订版HEAD.这将比较您的工作副本与HEAD修订:

svn diff -r HEAD <file>
Run Code Online (Sandbox Code Playgroud)

实际上,它会反过来吐出更改,即它告诉你如何从HEAD转到BASE.所以技术上你想要:

svn diff -r BASE:HEAD <file>
Run Code Online (Sandbox Code Playgroud)

键盘敲击可以省去吗?只有你和你的神知道答案.

  • 工作副本文件可以与base不同(当您对文件进行本地修改时).您应该意识到它在没有服务器本地修改的情况下区分文件. (9认同)
  • BASE是_not_工作副本,请参阅http://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html (3认同)

Cha*_*ick 17

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

svn diff -r HEAD --old=<file>
Run Code Online (Sandbox Code Playgroud)

可能感兴趣的是BASE和之间的区别HEAD; 自上次更新工作副本以来已检入存储库的更改:

svn diff -r BASE:HEAD <file>
Run Code Online (Sandbox Code Playgroud)

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

svn diff <file>
Run Code Online (Sandbox Code Playgroud)


有三个版本正在讨论:BASE,工作副本,和HEAD.

  • BASE:<file>上次签出/更新.什么工作副本使用后会恢复到svn revert
  • 工作副本:<file>最近已检出/更新的本地修改BASE
  • HEAD:存储库中的最新修改.相当于BASE iff没有提交任何更改,因为<file>已签出/更新为工作副本.