2009-10-02 9 views
8

を失いました。のsvnリベースと歴史は私たちが現在、2つの支店を持っている

次のバージョンを開始し、current_versionの作業はまだ進行中ですが、のnext_versionブランチをcurrent_versionのある時点から作成しました。 next_versionではいくつかの開発を行い、次の月にブランチが主なものになり、すべての開発が完了します。

current_branchが開発されているので、私たちはnext_versionをリベースするために(2週間に1回)定期的に考えました。両方のブランチを同期させるため、すべての開発者がcurrent_branchを落としてnext_releaseに移動すると、next_releaseにはcurrent_branchの機能がすべて統合されてテストされます。

問題はリベースです。実際にrebaseは、current_branchの最新のコミットをnext_versionにマージしています。だから、もし私がnext_releaseでコミットされたファイルの履歴を調べるならば、私はcurrent_versionの履歴(コミット/作成者/注釈)ではなく、マージコミットを見るだけです。

私は何か不足していますか?

答えて

20

いいえ、あなたは何も見逃していません。これはバージョン管理にSVNを使用することで大きな問題になります。

私は最後の仕事でそれを何度も繰り返しました。誰かがcurrent_branchに何かをコミットするたびに(コミットメッセージをマージコミットメッセージで使用できるように)手動でコピーする必要があります。これはすぐに大きな苦痛となりました。

だからこそ、新しいバージョン管理ソフトウェアは、より良いマージ機能(Git、Mercurial、Bazaarが思い浮かぶ)を出してきたのです。


EDIT:はどうやらSVNはこの問題を修正しました。 SVN 1.5以降にはmerge-sensitive logs and annotationsが組み込まれています。 svn mergeとsvn blameにフラグ--use-merge-history(-g)を使用すると、マージされたブランチからのコミットメッセージが表示されます。

+4

@ThisSuitIsBlack svn 1.6の機能についての削除されたコメントではありません。「Merge-Sensitive Logs and Annotations comments」は私が探しているものです。フラグ-use-merge-history(-g)をsvn log/blameと共に使用すると、作業が完了します。 1.5にもこの機能があります。あなたの答えを更新し、私はそれを受け入れる:) – dimba

関連する問題