2011-08-15 7 views
2

私は大きなSVNリポジトリを複数のgitリポジトリ(プロジェクトごとに1つ)に変換しています。svn2gitを--excludeとすると、空白/空白のコミットを無視する方法はありますか?

私は、これはタグとブランチを保つためにうまく機能し、すべての不要なディレクトリ--exclude dは各レポのためsvn2gitを実行している(私は&支店変換後、すべての無関係なタグを削除)

唯一の問題は、私は負荷を持っています空のコミット(除外されたディレクトリに関するコミット)

svn2gitプロセスでこれらの空のコミットを除外する方法はありますか?

This solutionは事実の後でそれらを削除するための良い方法ですが、filter-branchは現在のブランチにのみ影響し、他のすべてのブランチとタグには影響しません。

+1

あなたは 'gitのフィルタ分岐を使用することができます...に--all'すべてのブランチとタグをフィルタリングしてください。 – knittl

+0

あなたが正しいです、私はそれを試してみましょう。私は非常に興味がありますが、そのプロセスの間にsvn2gitでこれを行う方法があるかどうかを知ることです。後で歴史を書き直すのではなく、初めての方がきれいに見えるようになります。 –

答えて

7

解決しました。

私の知る限りでは、このコマンドは履歴を書き換え、空白のコミットを削除しますが、それ以外はすべて保存します。

git filter-branch --tag-name-filter cat --prune-empty -- --all

あなたは簡単なテストとして前と後のコミットの数を照会するには、このコマンドを使用することができます。

git log --pretty=format:'' | wc -l

関連する問題