GIT回购作为中间的两个SVN存储库,用于同步



我不太擅长git的思维方式 - 在我想的情况下,有点迷失了。

为了缩短长话短说,我正在尝试使用中间的本地GIT存储库来同步不同的机器/网络上的两个独立的SVN存储库。我不在乎投入第二个仓库 - 我希望它只是第一个仓库的镜子。基本上,我将不允许对第二个存储库进行承诺,因此不应发生冲突。那我该怎么办?

我成功地克隆了现有的SVN repo(git svn clone ..),但是我如何将其他镜像仓库指定为第二个遥控器以推向?

人们正在谈论直接修改.git/clone文件以添加第二个"远程" - 但随后他们将其连接到新的分支 - 我不想这样做。我只想将从主SVN存储库的更改推到第二个SVN遥控器。

基本上,要从SVN repo 1获得Git Svn,而Git Svn dcommit不转到SVN repo 1,而是转到SVN repo 2。

我知道应该启用第二个存储库的某种跟踪。哦,天哪,这似乎是可能的,但我只是无法弄清楚。帮忙,有人吗?谢谢。

在查看SVNSYNC解决方案时让我感到困惑的原因是,在一个时间点上,两个SVN存储库是隔离的。我首先需要VPN到第一个仓库,获取更改,断开连接,然后通过VPN2连接到第二个存储库并推动。这就是为什么git中间回购吸引我的原因。没有更简单的解决方案吗?Weeell ..我是否应该将中级SVN回购或SVK回购作为更自然的解决方案?再次感谢。

,因为我们没有

的要求
  • 在两个存储库中保持修订号相同
  • 也跟踪目标存储库中的变化(目的地仅适用于其客户端)

A.H.建议的解决方案似乎是最简单,最实用的解决方案。鉴于

  • source_repo是,例如svn://x.x.x.x.x/some_repo
  • destination_repo是,例如文件:///c:/some_other_repo

倾倒现有存储库的内容(所有历史记录 - 大型存储库的慢):

svnrdump dump SOURCE_REPO > repo.dmp

仅转储当前的修订:

svnrdump dump -rHEAD SOURCE_REPO > repo.dmp

默认情况下,svnrdump dump将始终具有每个文件的至少一个完整版本,因为它需要它知道如何进行其他增量差异,它将保存( - 注册选项覆盖了这一点,但是我们在这里不需要它 - 除非我们记录已经倾倒的最新修订版,并且每次都会进行增量转储 - 但是我们严格不需要保持这两种历史就版本号而言)

将转储文件导入另一个存储库(也可以与HTTP/SVN一起使用?)

svnrdump load DESTINATION_REPO < repo.dmp

请注意,在导出和导入时,修订号并不保持同步。 - 导出时,它们不会保存到转储文件中,并且导入时,每个修订版将作为增量数字保存 - 因此,如果我们仅将源存储库的head修订放置,并且我们是第一次导入,则将其保存为修订版1在目标存储库中

最新更新