Subversion

subversionで元々空のコミットをsvndumpfilterで取り除く

More than 3 years have passed since last update.

リポジトリの歴史改変をしていると時々発生する話です。svndumpfilterの結果空になるコミット番号を除去するには--drop-empty-revsオプションをつけてsvndumpfilterをすれば良いのですが、このオプションをつけないで実行すると空コミットが採番され、もう一度svndumpfilter --drop-empty-revsを通しても除去できなくなります。--drop-empty-revsは元々空のコミットには影響しない仕様だそうで。


--drop-all-empty-revs

超マイナーオプション --drop-all-empty-revs というものがあり、これは既に空になっているコミットも除去してくれます。それだけです。英語なら情報ありますが日本語であんまり見つからなかったので記録しておきます。


いつ使うの?

svndumpfilterを多用した後のリポジトリをgit svn cloneしようとしたら変なエラーでcloneできなかったことがありました。そのときの原因がsvn上の初回コミットが空になっていたからでした。