0

svn update DIR运行:和svn update以 DIR 作为 cwd运行有什么区别?(DIR是我结帐的根)。

直觉上,我希望两者做同样的事情,但我注意到在运行前者时(当 cwd 在本地结帐之外时),有时并非所有更新都被获取。但是然后运行后者会获取它需要的东西。

(在 Linux 上运行)

编辑:对于所有怀疑论者,这是我刚刚参加的一个会议:

$ svn up DIR/
Password for 'xxx': ...
Skipped 'DIR'
$ cd DIR/
$ svn up 
Password for 'xxx': ...
U    aaa
U    bbb
...
 U   .
Updated to revision 8965.
$ 
4

2 回答 2

0

以下纯属胡乱猜测。我对 svn 几乎一无所知,对它的内部也一无所知。

话虽这么说,我猜想从结帐 svn 外部查看当前目录中的配置信息,没有找到任何配置信息,然后执行最小必要更新给定目录(通过读取其特定配置信息)以及从内部checkout svn 以更递归/项目感知模式运行,因为本地目录包含它需要的配置。

用类似的东西检查两次运行之间的操作差异strace可能会提供一些线索。

假设毕竟存在差异,并且您所看到的不仅仅是后来的更改被第二次更新(例如活动项目)引入。

于 2013-11-04T18:53:29.567 回答
-1

没有区别。 svn update如果没有指定目标,则仅用.作目标。

根据您更新的问题。您可以通过两种方式获得“已跳过的 'DIR/'”消息:

  1. 您有一条冲突的路径(目标或它的父母之一),您必须在两个命令之间解决它。鉴于您的示例,这似乎不太可能

  2. 您在 svn up 命令中输入了路径,并在您的 shell 中打开了 cdspell 选项。

以此为例:

$ ls -d trunk
trunk/

$ svn up truunk/
Skipped 'truunk'

$ cd truunk/
trunk/

$ svn up
At revision 1540579.

如果你有一个简单的复制方法,我会对它感兴趣。

于 2013-11-04T21:42:05.123 回答