从SVN迁移到GitHub

时间:2018-12-10 20:57:12

标签: git github svn git-svn

我正在使用git-svn从SVN迁移到GitHub。以下是SVN存储库中文件的结构,我们将其称为projects_repo

Projects_Repo /

- BranchQA_Test/ 

 - project1/
 - project2/
 - project3/
 - project4/

- tags/ 

 - project1/
 - project2/

- trunk/ 

 - project1/
 - project2/
 - project3/
 - project4/
 - project5/

我想仅将 trunk (主服务器)迁移到GitHub,每个项目都成为GitHub上的一个独立存储库,具有的历史记录和< strong>没有标签。

所以GitHub看起来像这样:

- project1/
- project2/
- project3/
- project4/
- project5/

我应该如何自定义git-svn命令? 现在,我正在使用以下内容:

git svn clone http://url/svn/projects_repo/ 
    --username $username 
    --authors-file=authors_modified.txt 
    --trunk=trunk/project1/   
    --no-metadata -s project1 `

由于迁移要花费大量时间,因此我想提前确认一下。有谁知道这是否是正确的方法?非常感谢。

1 个答案:

答案 0 :(得分:0)

正如评论中已经说过的:如果您使用--{trunk,branches,tags}中的任何一个,请确保省略-s/--stdlayout。尽管文档说--stdlayout的优先级较低,但安全要比后悔更好。因为git-svn的导入确实需要很多时间。

man 1 git-svn

  

-T --trunk =
   -t --tags =
   -b --branches =
   -s --stdlayout
  这些是init的可选命令行选项。每个标志都可以指向
  到相对存储库路径(--tags = project / tags)
  或完整网址(--tags = https://foo.org/project/tags)。
  您可以指定多个--tags和/或--branches选项,以防您
  Subversion存储库将标签或分支放置在多个路径下。
  选项--stdlayout是设置树干,标签,分支的简写方式
  作为相对路径,这是Subversion的默认设置。
  如果还给出其他任何选项,则它们具有优先权。