Svn 如何在不签出整个源代码的情况下单独签出几个文件和文件夹

Svn 如何在不签出整个源代码的情况下单独签出几个文件和文件夹,svn,tortoisesvn,svn-checkout,Svn,Tortoisesvn,Svn Checkout,在我的项目中,我有许多文件夹。我当然知道我只想在几个文件中进行更改,大约15个文件都在7个不同的文件夹中。另外,我不想签出整个源代码来完成它。是否可以仅签出所需的文件夹 对于不同的来源,我会经常遇到这种情况。是否可以一次仅签出选定的文件夹 编辑 例如,假设我有一个包含的源文件夹。5个子文件夹。像 来源 -核心 -助手 -扩展 -主题 -资源 而且,我想单独签出扩展和主题文件夹。但是,我不想单独签出每个文件夹。我想这样,我会给出签出位置为svn.svnhost.com/trunk/project1

在我的项目中,我有许多文件夹。我当然知道我只想在几个文件中进行更改,大约15个文件都在7个不同的文件夹中。另外,我不想签出整个源代码来完成它。是否可以仅签出所需的文件夹

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

编辑

例如,假设我有一个包含的源文件夹。5个子文件夹。像

来源

-核心

-助手

-扩展

-主题

-资源

而且,我想单独签出扩展和主题文件夹。但是,我不想单独签出每个文件夹。我想这样,我会给出签出位置为svn.svnhost.com/trunk/project1/source。[然后,我将选择扩展和主题进行一次签出]

预期结帐:

来源

-扩展

-主题

比如:

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

在Tortoise navigator中,右键单击导航到特定文件夹,并对该位置执行签出操作

是,查看您是否有存储库地址,如:

https://elastik.svn.sourceforge.net/svnroot/elastik/
只需将所需文件夹添加到末尾。因此,如果我只想要trunk/includes文件夹:

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

Subversion 1.7除了签出您想要的文件夹(只有在您想要整个子文件夹树的情况下才有效)之外,还支持称为。基本上,您可以将文件夹签出到某个深度,然后深入到您感兴趣的文件夹中

使用命令行客户端,您可以使用-depth和-set depth选项来更新svn。如果您使用的是OrtoiseSVN,则在“签出”对话框中有一个签出深度选项

编辑:为了针对您的特定问题进行澄清,您应该首先使用深度即时检查源树。这将为您提供所有文件夹,但它们最初是空的。然后,您可以通过将扩展和主题目录更新为完全递归的depth svn update-set depth infinity或在TortoiseSVN update to revision中来深入了解它们→ 更新深度→ 完全递归


编辑:更新深度可以看作是一种可见性级别,Subversion会记住它,也就是说,如果您对工作副本进行svn更新,它只会更新到当前的可见性级别。

我知道这个问题已经存在5年多了,但我的回答可能会帮助现在正在研究这个问题的人


我使用的是tortoise SVN verion 1.9,它有一个在结账前选择商品的选项。我们可以从存储库浏览器中选择所需的文件夹/文件进行签出。

@JasperE但是,我不能用一个svn命令来完成这项操作,对吗?不管怎样,上述方法本身就可以节省大量时间:不,您需要多个命令。OTOH,如果你只想签出部分扩展或这些目录,你可以递归地应用这种技术。这实际上是一个非常酷的功能,尽管它并不真正适合我的情况。此外,您不能降低可见性级别;因此,如果您已将深度设置为无穷大,则无法在不再次检查所有内容的情况下减少修剪。@JasperE谢谢:。我将至少编写一个签出实用程序来简化这个过程。再次感谢您。JesperE:手册上说您不能降低可见性级别,但是使用svn 1.6,这不再是事实:类似svn up-set depth exclude foobar的东西现在确实可以工作了。