“无法签出单个文件。您可以执行的最精细签出级别是目录级别。”
在使用Subversion时如何解决这个问题?
我们在Subversion中有一个文件夹,其中保存了我们所有的图像。我只想从中检出一个文件(图像)。这个文件夹真的很大,里面有很多我现在不需要的东西。
发布于 2008-09-23 16:58:28
简单的答案是签出文件,而不是签出它。
但这可能不是您想要的。您可能希望处理该文件并将其重新签入,而不必下载大量不需要的垃圾文件。
如果您有Subversion 1.5+,则执行稀疏签出:
svn checkout <url_of_big_dir> <target> --depth empty
cd <target>
svn up <file_you_want>
对于较旧版本的SVN,您可能会从以下方面受益:
版本中不存在该文件,也可以执行此操作
另一种选择(例如,如果目录中有太多来自创建它的修订版的垃圾)是将您想要的文件的URL->URL复制到存储库中的新位置(实际上这是文件的一个工作分支)。查看该目录并进行修改。
我不确定您是否可以在没有目标的工作副本的情况下将修改后的副本完全合并回存储库中-我从来不需要这样做。如果是这样,那么就这么做吧。
如果不是,那么不幸的是,您可能必须找到其他人签出整个目录,并让他们这样做。或者在你做了修改的时候,剩下的部分已经下载完毕了……
发布于 2008-09-23 16:29:13
尝试使用svn export
而不是svn checkout
。这适用于单个文件。
限制的原因是checkout
创建了一个工作副本,其中包含有关存储库、版本、属性等的元信息。该元数据存储在名为“.svn”的子目录中。而且单个文件没有子目录。
发布于 2008-09-23 16:28:34
使用svn cat
或svn export
。
因此,您不需要获取工作目录,但您将无法提交所做的任何更改。如果您需要进行更改并提交它们,您需要一个工作目录,但您不必完全获取它。检查目录仍然/几乎为空的修订版,然后使用'svn cat‘从HEAD提取文件。
https://stackoverflow.com/questions/122107
复制相似问题