初学者与GIT& SubGit :)。
在SVN方面(Subversion版本1.7.4),开发人员创建了一个不在分支文件夹下但与trunk,tags,branches等级相同的分支:
- trunk
- branches
- tags
- TheBranch
然后他们将这个分支移动到branches文件夹下(我们可以看到很多变化):
- trunk
- branches
- TheBranch
- tags
当我们使用SubGit将关联的存储库迁移到Git时,迁移的分支仅包含与移动关联的修订(ps:操作后没有更新)。然而,SubGit处理的修订版本是正确的,但是在移动之前在分支中完成的所有版本都没有显示。
使用的命令是:
subgit import --svn-url [svn_url_repository] [path_of_git_repo] --username [user_name] --password [password].
我们忘了一个选项吗?
答案 0 :(得分:1)
$ subgit configure --svn-url SVN_URL repo.git
然后编辑repo.git/subgit/config
中的trunk / branches / tags / shelf选项以提及您的其他分支:
trunk = trunk:refs/heads/master
branches = TheBranch:refs/heads/obsolete/TheBranch
branches = branches/*:refs/heads/*
shelves = shelves/*:refs/shelves/*
tags = tags/*:refs/tags/*
然后用
翻译存储库$ subgit install repo.git
如果您不需要连续同步,那么
$ subgit uninstall repo.git
SubGit需要在subgit / config文件中提及源和目标分支来处理移动。
我是SubGit开发人员之一。
更新:修复了配置中的错误:“:”的两边应该有相同数量的星号。
答案 1 :(得分:0)
感谢您的帮助。
我成功执行了:
subgit configure --svn-url [svn_url_repository] repo.git
然后更新了配置文件:
[svn]
trunk = trunk:refs/heads/master
branches = trunk2013:refs/heads/obsolete/*
branches = branches/*:refs/heads/*
shelves = shelves/*:refs/shelves/*
tags = tags/*:refs/tags/*
当我执行时:
install repo.git
SubGit version 3.1.1 ('Bobique') build #3448
INSTALLATION FAILED
error: Failed to load Subversion configuration at 'repo.git\subgit\config'
error: Invalid layout option 'svn.branches': Number of asterisks ('*') on the left and right side of the mapping definition differs, when it should be equal..
经过一些调查后,我换了:
branches = trunk2013:refs/heads/obsolete/*
由:
branches = trunk2013:refs/heads/obsolete
现在我有了TheBranch的历史:)。
再次感谢。
答案 2 :(得分:-1)
由于在较旧的修订版中,分支机构不在默认情况下'结构文件夹,它没有迁移到git,因为迁移基本上是通过修订修改并将每个SVN修订提交为GIT-commit。 为了解决这个问题,您应该告诉迁移迁移不在默认trunk / branches / tags中的路径。有关更多详细信息,请参阅git-svn文档。