如何在不检查整个源的情况下单独检出几个文件和文件夹

时间:2010-10-27 10:13:01

标签: svn tortoisesvn svn-checkout

在我的项目中,我有很多文件夹。我当然知道我想要只更改少量文件(大约15个),每个文件都在7个不同的文件夹中。此外,我不想检查整个源来完成它。是否可以仅签出所需的文件夹?

对于不同的来源,我经常会遇到这种情况。是否可以一次只签出选定的文件夹?

修改

比如说我有一个源文件夹包含。 5个子文件夹。像,

  

     

- 核心

     

- 助手

     

- 扩展程序

     

- 主题

     

- 资源

而且,我想单独检出Extensions和Themes文件夹。但是,我不想单独检出每个文件夹。我想要它,我会给出结帐位置svn.svnhost.com/trunk/project1/source。 [然后,我会选择ExtensionsThemes提供单一结帐]

预期结帐:

  

     

- 扩展程序

     

- 主题

有些事情:

svn co svn.svnhost.com/trunk/project1/source --foldernames Extensions, Themes

4 个答案:

答案 0 :(得分:23)

除了检查你想要的文件夹(只有在你想要整个子文件夹树时才有效),Subversion 1.7支持一些称为“sparse directories”的东西。基本上你可以将文件夹签出到一定深度,然后“深入”到你感兴趣的文件夹中。

使用命令行客户端,您可以使用--depth--set-depth选项svn update。如果您使用的是TortoiseSVN,则结帐对话框中会显示“Checkout Depth”选项。

编辑:为了澄清您的具体问题,您首先要检查源树的深度为“即时”。这将为您提供所有文件夹,但它们最初将为空。然后,您可以深入查看扩展程序主题目录,方法是将它们更新为“完全递归”深度(svn update --set-depth infinity或TortoiseSVN“更新到版本→更新深度→“完全递归”)。

编辑:更新深度可以看作是一种“可见性级别”,并且会被Subversion记住,即如果您在工作副本上执行svn update,它将会仅更新到当前的可见性级别。

答案 1 :(得分:5)

是的,看看您是否有一个存储库地址,如:

https://elastik.svn.sourceforge.net/svnroot/elastik/

只需将所需的文件夹添加到最后。所以,如果我只想要“trunk / includes”文件夹:

https://elastik.svn.sourceforge.net/svnroot/elastik/trunk/includes

答案 2 :(得分:4)

我知道这个问题已超过5年了,但我的回答可能会帮助那些现在看这个问题的人。

我正在使用陆龟SVN版本1.9,它在结帐前有一个选项“选择项目”。我们可以从存储库浏览器中选择要签出的所需文件夹/文件。enter image description here

答案 3 :(得分:1)

在Tortoise导航器中(右键单击)导航到特定文件夹并对该位置执行结帐