如何在发出"svn update"命令之前查看将从存储库更新的内容?

Edw*_*uay 114 svn

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

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

我想说"svn update project100",它将使用我添加和更改的所有文件等更新"project100"下的目录.

但是,我不想更新我没有做的更改.所以我想我可以说"svn status project100",但是当我这样做时,我会得到一个完全不同的更改列表,我的列表中没有一个是奇怪的.

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

任何人都可以对这里的标准工作程序有所了解,即如何在执行"svn update"命令之前获得将要进行的所有更改的准确列表?我以为是"状态"命令.

Dav*_*ebb 165

尝试:

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

或(相同但更短):

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

  • 或更短:svn st -u (9认同)

小智 55

根据您在工作副本和最新的svn服务器存储库之间想要了解的内容,而不更新本地工作副本,您可以执行以下操作:

如果您想知道svn服务器存储库中已更改的内容,请运行命令:

$ svn st -u
Run Code Online (Sandbox Code Playgroud)

如果您想知道本地工作副本和svn服务器存储库中是否同时修改了同一文件,请运行命令:

$ svn st -u | grep -E '^M {7}\*'
Run Code Online (Sandbox Code Playgroud)

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

$ svn diff -r revisionNumber:HEAD --summarize
Run Code Online (Sandbox Code Playgroud)

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

$ svn diff -r revisionNumber:anotherRevisionNumber --summarize
Run Code Online (Sandbox Code Playgroud)

如果你想看看会更新什么(没有实际更新),运行命令:

$ svn merge --dry-run -r BASE:HEAD .
Run Code Online (Sandbox Code Playgroud)

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

$ svn diff -r BASE:HEAD ./pathToYour/file
Run Code Online (Sandbox Code Playgroud)

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

$ svn diff -r BASE:HEAD .
Run Code Online (Sandbox Code Playgroud)


Ben*_*ein 43

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

svn merge --dry-run -r BASE:HEAD .
Run Code Online (Sandbox Code Playgroud)

更多细节在这里.

  • 获取"svn:E195020:无法合并到混合修订工作副本[16032:16061];尝试先更新" (3认同)
  • @HubertGrzeskowiak - 我喜欢讽刺的问题:`我怎么......没有做更新?`a:`首先,做一个更新,然后......`:) :) :) (2认同)

Jef*_*eff 17

这就是我想要的.先检查了Google,但svn help最后还是为我而来:)

svn diff -r BASE:HEAD .
Run Code Online (Sandbox Code Playgroud)


Ken*_*nzo 13

相同但短的更短:):

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