2012-03-27 23 views
7

svn2gitを使用してSVNからGITにリポジトリを移行しようとしています。オープンソースプロジェクト、公開SVNリポジトリURLはhttp://svn.verinice.org/svnroot/です。移行をテストすること自由に感じ...SVNからGITへの移行がsvn2gitで失敗しました

SVNリポジトリ構造は次のとおりです。

  • BRANCHES
  • TAGS
  • TRUNK

私はこのレポのクローンを作成するには、次のコマンドを使用:

svn2git http://svn.verinice.org/svnroot 
    --trunk TRUNK 
    --branches BRANCHES 
    --tags TAGS 

しかし、このコマンドは1つのブランチだけを移行し、タグはまったく移行しません。私はこれらのコマンドを使用して結果を確認しました:

[[email protected] git-repo]# git branch -a 
* master 
    springy 
    remotes/springy 
[[email protected] git-repo]# git tag -l 
[[email protected] git-repo]# 

どのようにすべてのブランチとタグを移行しますか? ご協力いただきありがとうございます!

UPDATE:パラメータ--authors著者-file.txtなどにを使用し、正常に動作svn2git Gitの設定に名前とメールアドレスを追加した後

git config --global user.name "your name" 
git config --global user.email "[email protected]" 

あなたが追加する必要がありますevery SVNユーザーauthors-file.txt

svn-user-name = Full Name <[email protected]> 

gitブランチ-agitタグ-lはすべてのブランチとタグを返すようになりました。

答えて

10

私はsvn2gitに関する経験はありませんが、代わりにgit svn cloneを使ってgitに切り替えることができます。これには非常に時間がかかることに注意してください。詳細については、git help svnを参照してください。

gitで適切なタグが作成されないことに注意してください.svn2git FAQで説明されているgitタグとsvnタグの違いが原因です。代わりに、ツールはタグブランチを作成します。これらを適切なタグにしたい場合(SVNに戻ってこないことを前提としているので、これは害を及ぼさないはずです)、スクリプトを書く方法については、hereのディスカッションがありますそれだけ。

+1

+1、git-svnはsvn repoを完全にクローンするのに十分です。 –

+0

もうまく動作します。タグの代わりにブランチは害を受けません - 受け入れます。 –

1

重要なことは、これらのすべてのツールがgitのネイティブSVNサポートgit-svnの上に構築されていることです。ですから、git-svnをクローン作成やチェンジセットのフェッチなどに直接使うことができますが、マイグレーション中にすべての操作を行うためのスクリプト/ツールを用意する方が良いでしょう。

私はgitの移行への移行のためにhttps://github.com/nirvdrum/svn2gitでホストされているsvn2gitラッパースクリプトを使用しました。特に、われわれがSubversionリポジトリから定期的な間隔でチェンジセットを取得したいときに役立ちました。 Rubyラッパースクリプトmigration.rbを使って詳細を知ることができます。

関連する問題