SVN检出单个目录

11

这是我的困境:

我想从SVN中检出单个目录(我们称其为A),但要能够在计算机上的父目录中执行svn up A。

例如:我在~/coolstuff中,我想检出A并将其放入~/coolstuff中。当我在~/coolstuff中时,我想发出svn up命令并更新A。

以下是在基本情况下执行此操作的技巧: 在SVN A的父目录中是Z。我在~/coolstuff中执行SVN checkout Z。然后我将~/coolstuff/Z/.svn移动到~/coolstuff。瞧!我可以执行svn up并且它可以在~/coolstuff中下载A。

我的情形: 我执行了与上述相同的步骤,但问题是Z不仅有子目录A,还有子目录B。因此,在~/coolstuff中进行svn up将下载A和B。但我不想下载B。

以下是解决方案: 我编辑了~/coolstuff/.svn/entries并删除了对B的参考。现在svn看不到B,只能看到A。

上面的解决方案仍会在第一次检出时下载A,我不想这样做。它似乎也很hack-ish。有更好/更干净的方法来完成此操作吗?而且希望根本不必下载“B”。


11
请改进你的问题描述,使用更准确的名称来代替所有虚构名称,这样人们就不必浪费时间去猜想它们的含义,而是可以更专注地帮助你解决问题。例如,“当我在Z上执行A,在Y周围进行X操作时,如果不执行C,则会使B下降”等描述方式会让人难以阅读和理解。谢谢 :) - Ken White
1个回答

13

我认为这就是你想要做的:

svn co --depth empty file://path/to/A-B/parent coolstuff
cd coolstuff
svn up A

现在你可以从coolstuff内部执行svn up以更新A,而不会自动拉取B


这正是我想要的。我尝试使用深度立即数,但当你进入coolstuff时,它不会拉下"A"。完美,非常感谢! - MrD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接