在我的项目中,我有很多文件夹。我当然知道我想要只更改少量文件(大约15个),每个文件都在7个不同的文件夹中。此外,我不想检查整个源来完成它。是否可以仅签出所需的文件夹?
对于不同的来源,我经常会遇到这种情况。是否可以一次只签出选定的文件夹?
修改
比如说我有一个源文件夹包含。 5个子文件夹。像,
源
- 核心
- 助手
- 扩展程序
- 主题
- 资源
而且,我想单独检出Extensions和Themes文件夹。但是,我不想单独检出每个文件夹。我想要它,我会给出结帐位置svn.svnhost.com/trunk/project1/source。 [然后,我会选择Extensions
和Themes
提供单一结帐]
预期结帐:
源
- 扩展程序
- 主题
有些事情:
svn co svn.svnhost.com/trunk/project1/source --foldernames Extensions, Themes
答案 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)
答案 3 :(得分:1)
在Tortoise导航器中(右键单击)导航到特定文件夹并对该位置执行结帐