27

svnリポジトリをgitに変換しようとしていますが、あまり成功していません。問題のリポジトリには、「トランク」のようなものはありません。レイアウトは次のとおりです。

/ home / svn /
      | --- / project1 /
      | --- / project2 /
      | --- / 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を使用してリポジトリのクローンを作成します。効果は「gitsvnclone」に似ていますが、無視、EOL処理オプション、タグなどのSVNの概念もGitに変換されます(SubGitについても同じことが言えます)。

これらのソリューションはいずれも「git-svn」に基づいていません。

于 2012-06-22T16:41:23.897 に答える