2011-06-18 11 views
0

git-svnを使ってgitに会社のsvn repoをロードしようとしていますが、悲しいことに、私の同僚の1人がブランチ名に不正な文字(\)のブランチを作成しました。私は、全体の歴史をインポートしようとしているとき今、Gitはエラーで終了します。git-svnを使って、違法なブランチ名を持つsvn reposiroryをgitに変換するには?

fatal: Cannot lock the ref 'refs/remotes/feature-\\-bar'. 
update-ref -m r4 refs/remotes/feature-\\-bar 471d9622546803b3712a436c2e2ed6b1490c829a: command returned error: 128 

それは、過去の方法は、とにかくあるので、私は、分岐せずに行うことができますが、私はすべて失いたくはありませんブランチがマージされた時点までの履歴。私は--ignore-pathオプションを試しましたが、主にブランチ/トランクパス(?)内のパスだけを扱うと思われるため、動作させることができません。 誰もがこの問題を解決する方法を知っていますか?

答えて

0

私はブランチの名前を手動で作ることで、現在のブランチの頭でgit repoを開始します。古い履歴の場合は、必要に応じてこの方法でインポートします。時には、それはまったく別の仕組みに従ったsvnの履歴をインポートすることの苦労に値しないこともあります。

0

彼らは不正な文字を使用していたので、私は私が(私の場合には文字が:/た)git svnをフェッチできなかった、あまりにも、いくつかの枝を無視しなければなりませんでした。

解決方法1:手動でgit svn init -s [svn-repository-url]でリポジトリを初期化した後、各ブランチ

ための追加のSVNリポジトリを追加するには、私は.git/configアウトに分岐設定コメント:

[svn-remote "svn"] 
    url = [svn-base-url] 
    fetch = [project-name]/trunk:refs/remotes/trunk 
    #branches = [project-name]/branches/*:refs/remotes/* 
    tags = [project-name]/tags/*:refs/remotes/tags/* 

私は、後に枝を追加するには各ブランチに新しいsvnの場所を追加することでこれを行います。

[svn-remote "svn-your-branch"] 
    url = [svn-base-url] 
    fetch = [project-name]/branches/your-branch:refs/remotes/your-branch 

出典:How do Git SVN ignore-paths work (ignoring daily build tags)?または実際の構成。 http://www.dmo.ca/blog/20070608113513/

解決策2:明示的.git/configにフェッチするために枝を定義することができ

あなたの設定であなたが好きな枝を述べる:

[svn-remote "svn"] 
    url = [svn-base-url] 
    fetch = [project-name]/trunk:refs/remotes/trunk 
    branches = [project-name]/branches/{your-branch-1|your-branch-2}:refs/remotes/* 
    tags = [project-name]/tags/*:refs/remotes/tags/* 

後に、後に枝を追加しても安全である場合svnからすべてチェックアウトしているので、私はこの解決策を好むでしょう。

出典:https://stackoverflow.com/a/3844508/709431

なぜ無視-パスが動作しませんか?

http://go-dvcs.atlassian.com/display/aod/Advanced+git-svn+optionsgit svn --ignore-pathsによれば、コミットの内容は無視されます。したがって、ブランチ名の参照が作成されます。ブランチ名に不正な文字が含まれていると、これは失敗します。 (また、あなたの前提とは逆に、は、URL部分以外のすべてのものと一致します。たとえば、上記のものの設定はproject-name/branches/your-branch-1です)

関連する問題