1

plugins フォルダーを持つ SVN にプロジェクトがあります。いくつかのプラグイン フォルダーは git リポジトリですgit clone。.

これは私にとってはうまくいきましたが、今は次を使用してSVNリポジトリをgitに移行しようとしていますgit-svn:

git svn init http://path/to/my/repo --no-metadata 
git config svn.authorsfile ~/authors.txt
git svn fetch

これは、プラグイン フォルダーに git リポジトリがなかったすべての初期のリビジョンで正常に動作しますが、git リポジトリを含む最初のリビジョンにヒットすると、次のエラーで失敗します。

trunk/plugins/my_plugin/.git/HEAD was not found in commit 
ae9ad0ab7cebd144c823d90d43cdab2b30d13f9e (r2259)

おそらくSVNリポジトリにある.gitフォルダーを除外することで、リポジトリを完全にインポートできるようにする方法はありますか?

4

3 に答える 3

4

--ignore-pathsフラグ on をサポートしていない Ubuntu で git-svn 1.5 を使用していたことがわかりましたgit-svn fetch。ソースから git 1.6 をビルドした後、次を実行できるようになりました。

git svn fetch --ignore-paths='\.git'

フェッチはすべての.gitフォルダーを無視し、すべての SVN 履歴を新しい git リポジトリに正常にインポートするようになりました。

于 2009-06-04T10:14:36.817 に答える
1

現在の svn リポジトリをダンプし、.git ディレクトリを除外し、このフィルタリングされたダンプに基づいて別の svn リポジトリを作成し、この新しいリポジトリを git リポジトリのベースとして使用できます。

git と svn の並列使用はおそらく興味深いでしょう。既存のリポジトリを新しい gitless リポジトリに置き換える必要があり、欠落している .git ディレクトリが問題を引き起こす可能性があります。

私はこれを試していないので、注意してバックアップを取りたいと思うでしょう。

于 2009-06-04T09:51:48.080 に答える
0

Git の仕組みにより、複数の .git フォルダーがあると問題が発生します (まあ、すでにご存知のとおりです)。

2 つのオプションがあります。

  • ストーリーが気になる場合は、難しい方法で行ってください。このリンクを確認して、手順に従ってください

私のチームリーダーがそれについていくつか問題を抱えていたことは知っていますが、うまくいきます。

編集:別の方法について言及するのを忘れていました.Bazaarは両方と相互作用するため、プロジェクトをプルするためにBazaarを使用できます. それが簡単かどうかはわかりませんが

于 2009-06-04T09:55:35.560 に答える