如何在发出“SVN UPDATE”命令之前从存储库中查看更新内容?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (137)

我已经将大量文件中的更改从Eclipse中提交到SVN存储库。

然后我去Linux网站的目录,在那里我想将这些更改从存储库更新到那里的目录。

我想说的是“svn update project100”,它将更新“project100”下的所有目录以及所有添加和更改的文件等。

但是,我不想一定更新我没有做出的更改。所以我想我可以说“svn status project100”,但是当我这样做时,我会得到一个完全不同的变化列表,我的列表中没有任何变化,这很奇怪。

因此,为了确保只有我的更改更新到Web目录,我不得不导航到每个我知道存在更改的目录,并明确更新这些文件,例如“svn update newfile1.php”等。这是乏味的。

任何人都可以在这里了解标准工作流程,即如何在执行“svn update”命令之前获得所有将要做出的更改的准确清单?我认为这是“状态”命令。

提问于
用户回答回答于

尝试:

svn status --show-updates

或(相同但较短):

svn status -u
用户回答回答于

根据你想要知道的工作副本和最新的svn服务器存储库之间的内容,无需更新您的本地工作副本,以下是您可以执行的操作:

如果您想知道svn服务器存储库中发生了什么变化,请运行命令:

$ svn st -u

如果你想知道在你的本地工作副本和svn服务器库中是否修改了同一个文件,运行命令:

$ svn st -u | grep -E '^M {7}\*'

如果你想获取特定版本和HEAD之间更改的文件列表,请运行命令:

$ svn diff -r revisionNumber:HEAD --summarize

如果你想获得在特定版本之间更改的文件列表,请运行命令:

$ svn diff -r revisionNumber:anotherRevisionNumber --summarize

如果你想查看哪些内容会更新(而不实际更新),请运行命令:

$ svn merge --dry-run -r BASE:HEAD .

如果你想知道svn服务器存储库中某个特定文件的内容与您的工作副本相比发生了什么变化,请运行命令:

$ svn diff -r BASE:HEAD ./pathToYour/file

如果你想知道svn服务器存储库中所有文件的内容与您的工作副本相比有什么变化,请运行命令:

$ svn diff -r BASE:HEAD .

扫码关注云+社区