27

我正在尝试将我的 svn repo 转换为 git,但我没有取得太大的成功。有问题的存储库没有“主干”之类的东西。布局如下:

/home/svn/
      |--- /project1/
      |--- /项目2/
      |--- /repos/project3/

在这些项目文件夹下面是文件。没有树干,没有树枝,没有什么特别的。当时这就是我所需要的,现在它正在咬我的屁股。

我正在关注本指南:http: //john.albin.net/git/convert-subversion-to-git

当我运行这个命令时:

git svn clone svn+ssh://skerit@host.com/home/svn/repos/kiflea --no-metadata -A authors-transform.txt --stdlayout ~/kiflea

它说它创建了一个空的 git 存储库......但我真的不希望它是空的。

我也不知道以下命令应该是什么样子,因为我的存储库有不同的布局。

类似git symbolic-ref HEAD refs/heads/trunk或的命令git config remote.bare.push 'refs/remotes/*:refs/heads/*'

4

2 回答 2

53

只需删除--stdlayout选项。这意味着主干/分支/标签结构。

于 2012-06-25T20:00:34.840 回答
5

如果您对 SVN 存储库具有本地访问权限,我建议您使用SubGit进行转换。有几个简单的步骤:

$ subgit configure path/to/svn/repository
$ #edit path/to/svn/repository/conf/subgit.conf to specify "core.authorsFile" option to point to your authors-transform.txt
$ subgit install path/to/svn/repository

之后,将创建一个 Git 存储库,并且这些存储库将保持同步。您可以选择运行

$ subgit uninstall path/to/svn/repository

关闭同步。

如果您没有对存储库的本地访问权限,请使用SmartGit克隆存储库。效果类似于“git svn clone”,但诸如忽略、EOL 处理选项、标签之类的 SVN 概念也将被转换为 Git(我也可以对 SubGit 说同样的话)。

这些解决方案都不是基于“git-svn”。

于 2012-06-22T16:41:23.897 回答