2011-12-11 87 views
14

假设远程SVN仓库具有这样的结构:跳过SVN结帐目录? (部分结算)

/project 
     /src 
     /bulk 

现在,由于某种原因,我已经有bulk副本(假定不变或很少变化),其他地方我的机器上。我可以以某种方式签出资料库的新副本,但是预先提供bulk目录,以便它不会再次下载?

为了澄清,这个假设过程当然应该检查bulk目录中的文件的校验和,并更新那些不正确的文件,以便最终得到完整,一致的结帐。我只是想快速下载我已经逐字记录的那些文件。

+0

我不这么认为,但更重要的是,这会导致您的svn repo不再具有权威性。此外,其他人(包括你未来的自己 - 在另一台机器上)谁没有现在的魔法散装。什么是批量?数据,第三方库可能会帮助我们指导您采取最佳做法。 –

+0

@SteveRobillard:魔法批量是回购的一部分(说它是sountrack文件的集合)。我恰好已经下载了这些,我想利用它。我很高兴校验和被验证,所有这一切! –

+0

类似https://stackoverflow.com/questions/192824/svn-checkout-ignore-folder –

回答

26
  1. 结帐/项目,指定深度为 '空'。
  2. 更新/项目/ src目录指定无限的深度。
  3. 当前的批量工作副本复制到项目目录的工作副本。

例如

svn checkout --depth empty http://svnserver/project/ project 
svn update --set-depth infinity project/src 
// copy your current /bulk into /project 

注 - 这利用了Subversion 1.5引入的sparse directories功能。

+2

你能拼了这一点,远一点一个完整的SVN新手? :-) –

+0

如果'/ bulk'没有改变,并且你不打算从回购中检查出来,那么就没有必要把它存入回购中。只需将您的'/ src'文件夹保存在回购站中即可。 – bdares

+0

@bdares:这不是我的回购,但! :-) –

0

上次我不得不这样做,我的演示文件的数量庞大的目录,我刚搬到这来一个新的目录出来trunk

如果您需要bulk位于同一个目录中,您可能会考虑采取类似的操作,并将bulk添加到svn:ignore。使用TortoiseSVN的 1.7当

+0

所以你的意思是我应该从修订控制中解耦'bulk',并使用我的本地副本作为本地机器?我想这是一种解决方法,虽然我真的希望能够用本地文件“结账”结帐。 –

+0

否,'bulk'将保留在版本控制中,但不保留在'trunk'中。这样你就可以避免大量的退房。 –

1

说明更新:

  1. “SVN结帐” 到/项目,指定 “结帐深度” 为 “仅此项目”
  2. “SVN结帐” 到/项目/将“Checkout Depth”指定为“完全递归”