我有SVN存储库的工作副本。我的计算机上的C:\myrepo
指向https://example.com/svn
。它中有一个子文件夹/foo/bar
。这个文件夹非常大,而且它是一个远程存储库,所以再次检查它需要很长时间。我想给我的同事一份仅/foo/bar
的工作副本,而不是整个存储库(因为整个存储库更大,包含一堆会让他们感到困惑的东西)。
我可以复制我的工作副本C:\myrepo-bar
,然后使用svn switch https://example.com/svn/foo/bar
,但它说没有共同的祖先(这是真的)所以(如果我强迫它)它再次检出整个文件夹。
考虑到我已经拥有https://example.com/svn/foo/bar
的工作副本,有没有办法绕过这个并得到https://example.com/svn
的工作副本?我使用的是tortoiseSVN,但我在命令行上使用SVN足够舒服。
答案 0 :(得分:1)
这取决于。一般来说:没有。 SVN工作副本不像Git或Mercurial存储库;它们不包含存储库中包含的任何历史记录或其他信息,只包含所选文件版本的副本。
但是,如果您使用的是旧版本的SVN客户端,这个版本足以在项目的每个子目录中放置“.svn”目录,那么您可以只复制子目录(包括.svn目录里面)。我不确定这是否会对用户名或其他内容造成影响,我只是为了自己的使用而做了。并且,最新版本的客户端已从除工作副本根目录之外的所有目录中删除.svn目录,因此这不是最近客户端的选项。