2017-06-30 112 views
0

我们目前有一个包含一堆数据(〜20Gb)的Subversion服务器。但是,每个人都使用git svn与该服务器交谈。从git-svn迁移到纯git

我们希望转向使用纯粹的git,但我们不想为此设置一个服务器,只需在文件共享上安装git存储库。

设置它的最佳方法是什么?理想情况下,文件服务器上的版本应该是“裸露”的存储库,但理想情况下,也可以将svn更新拉一点,因为在克隆时可能会完成一些提交。

[注:一切都是窗口]

回答

1

如果你想拥有一个纯粹的“裸”的Git与SVN仓库同步服务器,你可以尝试SubGit

不仅每个SVN更新都会进入它,反之亦然:每次对Git存储库的推送都会被转换为SVN。

要设置这面镜子来看

$ subgit configure --svn-url SVN_PROJECT_ROOT_URL --layout auto --trunk trunk repo.git 

然后调整repo.git/subgit/config中根据自己的需要,然后运行

$ subgit install repo.git 

后,如果您可以直接克隆repo.git:

$ git clone repo.git wt/ 

或设置对其的访问例如与git-http-backend一起使用,并与正常的Git存储库一起使用。

有关更多详细信息,请参见Quick Howto

声明:我是SubGit开发人员之一。

+0

我没有管理员权限到svn仓库。这是否意味着我无法自动配置svn-> git更新? – xorsyst

+0

它根本不需要管理员权限,它只是一个SVN客户端。你需要的是在“subgit configure”步骤之后立即在subgit/passwd中设置密码,或者将凭证缓存在Subversion主目录中(通常情况下,如果SVN没有要求输入密码,就已经存在)。 –

0

嗯.....我猜你可以在服务器上设置一个回购站,你可以设置一个cronjob(或计划任务,不管),它将运行git svn fetch来同步svn上显示的内容然后移动一个“本地”分支到svn分支,以便人们可以“看到”它们。使用git的开发人员可以将此回购作为远程(例如:origin或“mainrepo”)添加,然后它就成为了解您将如何设置回购以开始分享内容的问题(这本身就是一个整体主题)。