0

I have an SVN repo which looks like this:

  • Trunk:
    • dir_1
    • dir_2
    • dir_3
    • dir_4
    • dir_5
    • dir_6

and I wish to Migrate only directories dir_1,dir_2 and dir_5 to a new Git repository including all the branches, and history of those directorys. so that the outcome will be:

  • master:

    • dir_1
    • dir_2
    • dir_5

Is that possible?

4

2 に答える 2

2

git-svnリポジトリまたはリポジトリ パーツの 1 回限りの変換に適したツールではありません。これは、Git を既存の SVN サーバーのフロントエンドとして使用したい場合に優れたツールですが、1 回限りの変換にはを使用しないgit-svnでください。このユースケースにはこちらの方がsvn2git適しています。

と呼ばれるツールはたくさんありますがsvn2git、おそらく最良のツールはhttps://github.com/svn-all-fast-export/svn2gitの KDE ツールです。そのツールを使用することを強くお勧めしsvn2gitます。これは私が知っている中で最高のものであり、そのルール ファイルでできることは非常に柔軟です。

svn2git必要な結果を生成するようにルール ファイルを簡単に構成できます。

リポジトリの履歴について 100% 理解していない場合は、http://blog.hartwork.org/svneverever ?p=763から、Git に移行するときに SVN リポジトリの履歴を調査するための優れたツールを使用できます。


始めるのは簡単ですが、柔軟性に加えて、KDE​​を代わりにgit-svn使用することが優れている理由がいくつかあります。svn2gitgit-svn

  • svn2git履歴は(正しいものが使用された場合)により、より良く、よりきれいに再構築されます。これは特に、ブランチやマージなどを含むより複雑な履歴の場合に当てはまります。
  • タグは実際のタグであり、Git のブランチではありません
  • git-svnタグには余分な空のコミットが含まれているため、ブランチの一部ではありません。デフォルトでは、フェッチされたブランチを指すタグのみがフェッチされるため、コマンドを指定するまで、通常はそれらfetchを取得しません。--tags適切な svn2git タグを使用すると、それらが属する場所になります
  • svn2gitSVN でレイアウトを変更した場合は、これを で簡単に構成できますが、git-svn最終的に履歴が失われます
  • svn2git1 つの SVN リポジトリを複数の Git リポジトリに簡単に分割することもできます
  • または、同じ SVN ルートにある複数の SVN リポジトリを 1 つの Git リポジトリに簡単に結合する
  • svn2git変換は、よりも正しい方が何億倍も高速ですgit-svn

git-svnご覧のとおり、KDE ​​が優れているのに KDE が優れている理由はたくさんありますsvn2git。:-)

于 2017-03-14T14:49:51.230 に答える