Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 使用本地存储库加速SVN?_Git_Svn_Version Control - Fatal编程技术网

Git 使用本地存储库加速SVN?

Git 使用本地存储库加速SVN?,git,svn,version-control,Git,Svn,Version Control,我使用的是距离我很远的大型SVN存储库。执行与SVN历史记录相关的命令非常痛苦。相反,仅仅使用任何SVN都是相当痛苦的。我只需要每周推送一次我的更改,但我仍然喜欢经常提交,而不是做大量提交 由于SVN回购只能获得新的历史(即:历史无法更改,现有的修订是永久的),因此SVN镜像技术的存在听起来确实可行。特别是,一个可以执行1或2: 创建一个本地SVN镜像,对整个回购协议进行初始拷贝(不仅仅是简单的签出,我需要整个回购协议能够在本地快速进行差异化操作) 创建本地git代理回购协议,该协议是SVN回购

我使用的是距离我很远的大型SVN存储库。执行与SVN历史记录相关的命令非常痛苦。相反,仅仅使用任何SVN都是相当痛苦的。我只需要每周推送一次我的更改,但我仍然喜欢经常提交,而不是做大量提交

由于SVN回购只能获得新的历史(即:历史无法更改,现有的修订是永久的),因此SVN镜像技术的存在听起来确实可行。特别是,一个可以执行1或2:

  • 创建一个本地SVN镜像,对整个回购协议进行初始拷贝(不仅仅是简单的签出,我需要整个回购协议能够在本地快速进行差异化操作)

  • 创建本地git代理回购协议,该协议是SVN回购协议的副本/迁移


  • 这是一个很好的使用案例-它允许您在本地高效地使用
    git
    ,包括在不联系svn服务器的情况下查询整个历史记录,同时保持存储库与远程svn同步


    要开始使用它,只需从git svn clone开始http://svn.example.com/project/trunk,它为您提供了一个功能齐全的
    git
    存储库。当您准备将本地提交推回到SVN时,您可以执行git SVN DCOMIT。获取新的SVN提交(并对本地提交进行重定)是通过
    git-SVN-rebase

    完成的,实际上有一种方法可以镜像Subversion存储库。但首先,您需要能够在“主”存储库上安装钩子脚本。然后使用
    svnsync
    将每个提交同步到本地镜像。有关如何设置复制的信息,请参阅

    然后将本地镜像/副本配置为自动将提交传递到主存储库。

    使用将帮助您减少只读时间。提交仍然是通过从服务器代理的,因此在执行导入、提交等操作时,您不会看到任何收益


    要实现真正的主/从存储库复制,可以使用VisualSVN服务器的。该功能允许您在办公室设置一个主存储库,在其他远程办公室设置多个可写的从属存储库。

    谷歌搜索“git svn”时返回的第一个链接:我怎么知道搜索“git svn”lol?因为您想将git和svn结合起来。顺便说一句,谷歌搜索“创建一个本地git代理回购协议,它是SVN回购协议的副本/迁移”,返回相同的链接。这就是你在问题中的文字。是的,但我不确定我是否愿意采用这种方法。最好只使用SVN解决方案。我尝试使用git svn,但失败并创建了一个损坏的回购协议。这就是为什么我更愿意关注其他尝试过这种方法的人,而不是花几个小时在所有这些不同的排列上。