使用DIR作为cwd运行svn update DIR
和运行svn update
之间有什么区别? (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.
$
答案 0 :(得分:0)
以下是纯粹的疯狂猜测。我对svn几乎一无所知,也不知道它的内部结构。
话虽如此,我猜想从结账外部svn在当前目录中查找配置信息,找不到任何内容,然后执行更新给定目录所需的最小值(通过读取其特定的配置信息)和从checkout svn里面运行的是一个更加递归/项目感知的模式,因为本地目录包含它需要的配置。
使用strace
之类的内容检查两次运行之间的操作差异可能会提供一些线索。
假设毕竟存在差异,您所看到的不仅仅是后来的更改被第二次更新拉入(例如,使用活动项目)。
答案 1 :(得分:-1)
没有区别。未指定目标的svn update
仅使用.
作为目标。
根据您更新的问题。您可以通过两种方式获得“Skipped'DIR /'”消息:
你有一个冲突的路径(目标或其中一个父亲),你必须在两个命令之间解决它。根据你的例子,这似乎不太可能
您已在svn up命令中输入了路径并在shell中打开了cdspell选项。
以此为例:
$ ls -d trunk
trunk/
$ svn up truunk/
Skipped 'truunk'
$ cd truunk/
trunk/
$ svn up
At revision 1540579.
如果您有简单的复制方法,我会对它感兴趣。