Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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
使用SVN存储库中的多个项目安装subgit并更新更改_Git_Svn_Version Control_Subgit - Fatal编程技术网

使用SVN存储库中的多个项目安装subgit并更新更改

使用SVN存储库中的多个项目安装subgit并更新更改,git,svn,version-control,subgit,Git,Svn,Version Control,Subgit,第一个问题: 我们有SVN在linux上运行,有多个不同的项目。我试图用subgit在它们之间创建一个镜像,这样我们就可以在转换阶段同时使用SVN和Git。作为一个测试,我确实设法完成了subgit安装,并设法将一个项目的文件从SVN传输到Git。我为这个特定的项目提供了subgit的url url = http://lnx-server/svn/TestProject 在TestProject下有分支、主干和标签,就像SVN repo中应该有的那样 默认配置文件如下所示: trunk = t

第一个问题:

我们有SVN在linux上运行,有多个不同的项目。我试图用subgit在它们之间创建一个镜像,这样我们就可以在转换阶段同时使用SVN和Git。作为一个测试,我确实设法完成了subgit安装,并设法将一个项目的文件从SVN传输到Git。我为这个特定的项目提供了subgit的url

url = http://lnx-server/svn/TestProject
在TestProject下有分支、主干和标签,就像SVN repo中应该有的那样

默认配置文件如下所示:

trunk = trunk:refs/heads/master
branches = branches/*:refs/heads/*
tags = tags/*:refs/tags/*
shelves = shelves/*:refs/shelves/*
http://lnx-server/svn/TestProject
http://lnx-server/svn/TestProject/TestProject1
http://lnx-server/svn/TestProject/TestProject1/branches
http://lnx-server/svn/TestProject/TestProject1/tags
http://lnx-server/svn/TestProject/TestProject1/trunk
http://lnx-server/svn/TestProject/TestProject2
http://lnx-server/svn/TestProject/TestProject2/branches
http://lnx-server/svn/TestProject/TestProject2/tags
http://lnx-server/svn/TestProject/TestProject2/trunk
http://lnx-server/svn/TestProject/TestProject3
http://lnx-server/svn/TestProject/TestProject3/branches
http://lnx-server/svn/TestProject/TestProject3/tags
http://lnx-server/svn/TestProject/TestProject3/trunk
所有的文件都从SVN中移动了

现在,我试图了解如何同时将所有项目从SVN移动到git。我假设前面提到的路径是我需要在conf文件中修改的部分。如果SVN项目看起来像这样:

trunk = trunk:refs/heads/master
branches = branches/*:refs/heads/*
tags = tags/*:refs/tags/*
shelves = shelves/*:refs/shelves/*
http://lnx-server/svn/TestProject
http://lnx-server/svn/TestProject/TestProject1
http://lnx-server/svn/TestProject/TestProject1/branches
http://lnx-server/svn/TestProject/TestProject1/tags
http://lnx-server/svn/TestProject/TestProject1/trunk
http://lnx-server/svn/TestProject/TestProject2
http://lnx-server/svn/TestProject/TestProject2/branches
http://lnx-server/svn/TestProject/TestProject2/tags
http://lnx-server/svn/TestProject/TestProject2/trunk
http://lnx-server/svn/TestProject/TestProject3
http://lnx-server/svn/TestProject/TestProject3/branches
http://lnx-server/svn/TestProject/TestProject3/tags
http://lnx-server/svn/TestProject/TestProject3/trunk
我需要如何修改Subgit的配置文件才能正确理解它

第二个问题:


我还面临单项目安装的问题。虽然我设法将所有文件从SVN移动到Git,但我无法将更改从一个同步到另一个。conf文件中存在fetchInterval=60。所以Subgit应该在一分钟的时间间隔内检查SVN中的更改?当将某些内容提交到SVN和Git Sync时。。。没有任何更改。

SubGit会根据每个项目将SVN数据导入Git,因此您在测试项目中采取的步骤应该针对每个SVN项目分别重复。每个项目都应该被转换到自己的Git存储库中,并且每个项目都应该有自己的配置。下面是一个指南,介绍了将单个SVN项目转换为Git的步骤:

这应该为您打算导入的每个项目执行—因此,您需要分别为TestProject1、TestProject2和TestProject3执行

fetchInterval设置表示SubGit检查SVN存储库的更改频率。默认值为一分钟内的60。当一些更改被推送到镜像Git存储库时,它们会立即被发送到SVN。 大多数情况下,如果更改没有从Git传播到SVN并返回到镜像存储库中,这意味着存储库中的映射配置不正确,因此值得检查。但可能还有其他原因,所以最好在他们的应用程序上请求SubGit支持