Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.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克隆在windows中进行SVN到Git的迁移_Git_Svn_Clone - Fatal编程技术网

使用Git SVN克隆在windows中进行SVN到Git的迁移

使用Git SVN克隆在windows中进行SVN到Git的迁移,git,svn,clone,Git,Svn,Clone,我正在尝试使用Git SVN clone将代码从SVN存储库迁移到Git。我想为每个模块而不是整个项目创建一个git存储库。我们有一个稍微非标准的项目结构,我们有主干、发布分支和分支文件夹。我不确定什么地方是Git中发布分支的好地方。下面是当前存储库结构、我使用的命令和结果。 我也希望在Git中保持相同的结构 我已经做了一个多星期了,并没有走得太远。任何帮助都将不胜感激。谢谢大家! https://mydomain/svn/Project/Module/trunk

我正在尝试使用Git SVN clone将代码从SVN存储库迁移到Git。我想为每个模块而不是整个项目创建一个git存储库。我们有一个稍微非标准的项目结构,我们有主干、发布分支和分支文件夹。我不确定什么地方是Git中发布分支的好地方。下面是当前存储库结构、我使用的命令和结果。 我也希望在Git中保持相同的结构

我已经做了一个多星期了,并没有走得太远。任何帮助都将不胜感激。谢谢大家!

https://mydomain/svn/Project/Module/trunk /release /branches/branch1 /branches/branch2 /branches/branch3 /branches/closed/closed1 /branches/closed/closed2 ......... The Module has multiple components. Module/WebModule /WebEar /DataModule /... git svn clone https://mydomain/svn/Project/Module Module_Git -T trunk -b branches -b release --no-minimize-url --prefix=svn/ --authors-file=users.txt git branch -a is displaying the following: remotes/svn/WebModule remotes/svn/WebModule@1011 remotes/svn/WebModule@3578 remotes/svn/WebEar remotes/svn/WebEar@1011 remotes/svn/WebEar@3578 remotes/svn/DataModule remotes/svn/DataModule@1011 remotes/svn/DataModule@3578 remotes/svn/closed remotes/svn/branch1 remotes/svn/branch1@1011 remotes/svn/branch2 remotes/svn/branch3 remotes/svn/closed1 remotes/svn/closed2 I am using Git Bash in Windows 7 Git version: 2.19.1 Subversion: 1.9.4 https://mydomain/svn/Project/Module/trunk /释放 /分支机构/分支机构1 /分支机构/分支机构2 /分行/分行3 /分支机构/关闭/关闭1 /分支机构/关闭/关闭2 ......... 该模块有多个组件。 模块/网络模块 /韦比尔 /数据模块 /... git-svn克隆https://mydomain/svn/Project/Module Module_Git-T trunk-b branchs-b release--no最小化url--prefix=svn/--authors file=users.txt git branch-a正在显示以下内容: remotes/svn/WebModule 遥控器/svn/WebModule@1011 遥控器/svn/WebModule@3578 遥控器/svn/WebEar 遥控器/svn/WebEar@1011 遥控器/svn/WebEar@3578 远程/svn/DataModule 遥控器/svn/DataModule@1011 遥控器/svn/DataModule@3578 远程/svn/关闭 遥控器/svn/branch1 遥控器/svn/branch1@1011 remotes/svn/branch2 remotes/svn/branch3 遥控器/svn/closed1 遥控器/svn/closed2 我在Windows7中使用GitBash Git版本:2.19.1 颠覆:1.9.4
我尝试了svn2git,但在git checkout-f master时失败了,建议的解决方案都不适合我。

选项
-b发行版
提供了一个目录,其中
git svn fetch
查找分支子目录。在您的例子中,
gitsvn
/release/
目录的所有子目录作为分支。这显然是错误的,但没有简单的解决办法

要将
release
目录作为分支获取,需要将其移动到子目录。差不多

svn mkdir release-dir
svn mv release release-dir
git svn clone https://mydomain/svn/Project\/Module Module_Git -T trunk -b branches -b release-dir --no-minimize-url --prefix=svn/ --authors-file=users.txt
如果您不能移动发布分支,即使是暂时的,我的建议是克隆两次,第一次使用
-T trunk
,第二次使用
-T release
(是的,将
发布
分支视为一个主干),并合并结果:

git svn clone https://mydomain/svn/Project\/Module Module_Git -T trunk -b branches --no-minimize-url --prefix=svn/ --authors-file=users.txt clone1
git svn clone https://mydomain/svn/Project\/Module Module_Git -T release --no-minimize-url --prefix=svn/ --authors-file=users.txt clone2
cd clone1
git fetch ../clone2 master:release
我做了以下几件事

git svn init https://mydomain/svn/Project/Module Module_Git -T trunk -b branches --no-minimize-url updated .git/config and added the following: branches = {release}:refs/remotes/* git svn fetch git svn inithttps://mydomain/svn/Project/Module Module_Git-T trunk-b分支——无url 更新了.git/config并添加了以下内容: 分支={release}:refs/remotes/* gitsvn获取
谢谢你的建议,我不想弄乱当前的SVN结构。我正在尝试你的选择。