2011-08-02 10 views
3

私はgit-svnを使ってBoostライブラリをチェックアウトしたいと思います。バージョン1.35以降のチェックアウトトランクとタグ、つまりtags/release/Boost_1_35以降だけをチェックします。svnをgitして特定のパターンを持つブランチ/タグだけを取得する方法は?

[svn-remote "svn"] 
    ignore-paths = ^tags/release/(?i:(?!boost)|[^/]*(?:beta|rc)|boost_(?:0|1_[1-2]|1_3[0-4]))[^/]*/ 
    url = https://svn.boost.org/svn/boost 
    fetch = trunk:refs/remotes/svn/trunk 
    tags = tags/release/*:refs/remotes/svn/tags/* 

しかし、Gitはまだなのsvn /タグのような関係のないタグのトン/ version_0-9-10やsvn /タグ/ 44215 @ version_0-9-10をフェッチ:私の設定はこのようになります。私は、この効果を達成するためにignore-pathsを指定する正しい方法が何であるか疑問に思います。

私はHow do I fetch/clone only a few branches using git-svn?を読んだことがありますが、スケーラブルな解決策はありません。

+0

[関連する質問に関する私の回答](http://stackoverflow.com/questions/6933748/how-do-git-svn-ignore-paths-work-ignoring-daily-build-tags/6937445#6937445)あなたにも当てはまるかもしれません。 – MatrixFrog

+0

@MatrixFrogありがとうございました。私はそれが私が言及したものにかなり類似していると思います。これは、ブーストが非常に大きなリポジトリであるため、スケーラブルではありません。また、私は新しい支店が現れたら心配しました、gitはすべてのsvnの歴史をもう一度見ていきますか?もしそうなら、それはgitを使用して完全なブーストレポジトリをチェックアウトするのに通常数日かかるので、リポジトリをブーストするにはあまり適していません。 –

+0

ええ、それは良い点です。一晩中実行しておくことをお勧めします。大量のタグがある場合は、おそらく1回以上実行してください。代わりに、誰かがすでに仕事をしてどこかに投稿している可能性もあるので、git repoをクローンするだけです。実際には、Googleの "ブーストのgit" - それは起こっているようです。 – MatrixFrog

答えて

0

は、私は特定の支店のためにそうするために管理しているが、SVNのタグが実際に支店をしているので、それはおそらく同じでなければなりません:「-tタグと-b枝」とのgitのsvn initは、私が編集した

後.git/configがあることを:

[svn-remote "svn"] 
     ... url, fetch and stuff ... 
     branches = branches/rel-2.1/*:refs/remotes/svn/branches/rel-2.1/* 
     branches = branches/rel-2.2/*:refs/remotes/svn/branches/rel-2.2/* 
     branches = branches/rel-2.3/*:refs/remotes/svn/branches/rel-2.3/* 
     branches = branches/rel-2.4/*:refs/remotes/svn/branches/rel-2.4/* 
     branches = branches/rel-2.5/*:refs/remotes/svn/branches/rel-2.5/* 

は私が関連する行を生成するために、単純なPythonのコードを使用し、/ configの.gitするためにそれをコピーした:正規表現として

for x in range(1,6): 
    print branches = "  branches/rel-2.{0}/*:refs/remotes/svn/branches/rel-2.{0}/*".format(x) 

としてスケーラブルではないが、しかし、THA tは私が見つけることができる最高です。

+0

上記のように、除外する方法は何ですか?すべてのブランチをフェッチします。なぜなら、20個以上のブランチを作成し、3個を除外するためです – virendrao

関連する問題