如何查看在发出“ svnupdate”命令之前将从存储库更新什么?

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

然后转到 linux 框中的网站目录,在那里我想更新这些更改,从存储库到那里的目录。

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

但是,我不想必须更新我没有做的更改。 所以我想我可以说“ svn status project 100”,但是当我这样做的时候,我得到了一个完全不同的将要进行的更改的列表,我的任何一个都不在列表中,这很奇怪。

因此,为了确保只有我的更改被更新到 web 目录,我被迫导航到每一个我知道我做了更改的目录,并且只显式地更新那些文件,例如“ svn update newfile1.php”等,这是乏味的。

有人能解释一下这里的标准工作流程吗? 也就是说,在执行“ svn update”命令之前,如何获得将要进行的所有更改的准确列表?我以为是“状态”指令。

80423 次浏览

您可以通过发出以下命令来查看将要更新的内容(不需要实际更新) :

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

更多细节 给你

You can use 'svn diff' to see the difference between your working copy and the repository.

试试:

svn status --show-updates

or (the same but shorter):

svn status -u

理论上,您可以在为自己使用而创建的分支中进行所有更改。 然后你就可以合理地确定,你是唯一一个承诺这么做的人。

恕我直言,功能开发应该这样做。

然后您可以从这个分支更新目标机器,而不是从主干更新。

这就是我一直在寻找的东西。我先去谷歌查了一下,但是 svn help最终还是找到了我:)

svn diff -r BASE:HEAD .

相同但更短:) :

svn st -u

Depending on what you want to know between your working copy and the latest svn 服务器存储库,而不需要更新本地工作副本,下面是您可以做到的 do:

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

$ svn st -u

如果您想知道同一个文件是否在您的本地 working copy and in svn server repository, run command:

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

如果要获取在特定修订和 头,执行命令:

$ svn diff -r revisionNumber:HEAD --summarize

如果希望获取在特定修订之间更改的文件列表,请运行 命令:

$ svn diff -r revisionNumber:anotherRevisionNumber --summarize

如果希望看到将要更新的内容(而不是实际更新) ,请运行 command:

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

如果您想知道特定文件的内容在 svn 中被更改 服务器存储库与工作副本相比,run 命令:

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

如果您想知道所有文件的内容在 svn 中都被更改了 server repository compared with your working copy, run command:

$ svn diff -r BASE:HEAD .