我拥有对第三方SVN仓库的只读访问权限,这些仓库不时会进行提交。我们称之为http://foo.com/svn。
我想将此镜像到我控制的现有仓库中的子文件夹。我们称之为http://bar.com/svn/myfork
我将在我自己的项目分支上工作,但我仍然希望改变它们。
我想仅将第三方的更改镜像到我的工作副本,因此我可以在提交之前手动管理任何冲突。
我该怎么做?
我正在使用Windows(svn和TortoiseSVN)。
答案 0 :(得分:0)
据我所知,最接近此功能的是svn:externals;但是,它只存储一个亲戚,或者在这种情况下,是指向外部存储库的绝对URL指针。简而言之,文件不会存储在您的存储库中,并且对外部内容的任何提交尝试都将转到第三方存储库。
我已经存储了SVN中其他存储库的签出,我可以从第三方存储库中进行更改,并在第三方时将这些更改和我自己的更改提交到我自己的存储库(私有分支)可以通过git或mercurial访问存储库。我会检查第三方存储库到我的SVN工作目录并将所有内容提交到SVN,包括.hg
/ .git
文件夹。这种方法毫无疑问有点hacky,对我有用,如果我正确理解你的问题,也会为你工作如果其中一个存储库不是 SVN。< / p>
如果无法使用git或mercurial访问foo
并且无法更改bar
的版本控制系统,我想知道它是否可能可以在具有不同环境的计算机上设置SVN的第二个副本 - 我在考虑Cygwin - 并让其中一个安装将版本控制文件存储在.svn
中,一个存储在{ {1}}。我猜这将有效,因为Cygwin的_svn
将在具有自己环境的类Unix文件夹树中单独安装。 (我刚试过它,它应该可以工作)。
步骤可能是:
使用svn和change Cygwin svn to use _svn folders安装cygwin(我在Cygwin中通过设置环境变量svn
来尝试此操作,并且它有效 - 您必须在bash中设置环境变量只有不在Windows级别,否则Tortoise也会选择它)
使用Cygwin SVN_ASP_DOT_NET_HACK
提交第三方存储库文件,可选地将其svn
文件夹包含到您的存储库(我会包含它)
您现在可以使用Cygwin _svn
更新第三方存储库,并将第三方更改提交到您的存储库,此外还可以将您自己的更改提交到您自己的存储库。您也可以将更改提交回第三方存储库!
同一主题的另一个选项可能是设置第二个具有环境变量集的Windows帐户,并登录该帐户以初始检出第三方存储库并使用TSVN从中删除更新。