2016-09-16 16 views
0

特定のタグをSVNからGitに移行しようとしています。単一のSVNタグをGitに移行

私は自分のローカルにタグをクローンしました。

git svn clone --authors-file=authors.txt svn://path/tags/1.0.0 1.0.0 

今すぐリモートレポで

git fetch 

を同期するためにフェッチ蘭、私はGitの中でタグを作成する必要があり、リモートのgitにタグをプッシュしたいと思います。私はこれに対して以下のコマンドを実行しました。

git push origin --tags 

「すべて最新」と表示されます。しかし、ではなく、はGitにタグを付けました。

答えて

0

もちろん、タグが追加されていません。このタグを1.0.0という名前の新しいリポジトリのマスターにクローンしました。 Gitタグをプッシュしてその結果を得たい場合は、最初に1.0.0でタグ付けする必要があります。

しかし、git-svnではなく、レポジトリまたはリポジトリパーツの1回の変換に適したツールです。 Gitを既存のSVNサーバーのフロントエンドとして使用する場合は便利ですが、ワンタイムコンバージョンの場合はではなくを使用してください。git-svnを使用しますが、svn2gitはこのケースに適しています。

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

svnevereverからhttp://blog.hartwork.org/?p=763までの履歴は、SVNリポジトリの履歴をGitに移行する際の履歴を調べるのに最適なツールです。

ルールファイルを使用してツールを簡単に設定して、1つのタグだけをGitに正しく変換する場合でも、ツールを簡単に設定することができます。 1つのSVNリポジトリを1つの実行で複数のGitリポジトリに分割したり、1つのSVNルートから複数のSVNリポジトリを1つのGitリポジトリに、または複数のGitリポジトリに結合することもできます。

+0

git-svnを1回の変換で使用すると何も問題はありません.Pro Gitの書籍でもそれをお勧めします:https://git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to -Git#Subversion – 1615903

+0

@ 1615903経験が全く違った話をするなら、本が何を伝えているか気にしません。さて、 'git-svn'は簡単に始めることができますが、もっと悪い結果をもたらします。履歴は' svn2git'(正しいものが使用されている場合)によってより良く再構築されます。タグは実際のタグであり、あなたは 'svn2git'でこれを簡単に設定することができます。' git-svn'を使うと、最終的に履歴を失います。 'svn2git'を使うと、一つのSVNリポジトリを複数のGitリポジトリに簡単に分割することも、複数のSVNリポジトリを同じSVNルートを1つのGitに... – Vampire

+0

...簡単にリポジトリ。さらに別の理由として、 'git-svn'のタグには余分な空のコミットが含まれているため、ブランチの一部にならないため、デフォルトで' --tags'をコマンドに渡すまで通常のフェッチでは取得できませんフェッチされたブランチを指すタグもフェッチされます。適切な 'svn2git'タグは、それらが属する場所です。 'git-svn'よりも正しい' svn2git'を使って変換が非常に速くなります... 'git-svn'が悪く、KDE' svn2git'が優れている理由はたくさんあります。 – Vampire

関連する問題