SVNでブランチを操作します。 バージョン1.5での変更。

この記事の続き



長い間、SVNブランチには重大な欠点が1つありました。 システムはマージを記憶していなかったため、プログラマはトランクから変更をコピーするときにリビジョン番号を保持するように気をつけなければなりませんでした。 この問題は、ログにコメントを追加することで部分的に解決されましたが、それでもエラーがたくさんあり、プログラマーの良心次第でした。

最後に、バージョン1.5では、Subversionプログラマーが長年の約束を果たし、ブランチを操作するための便利な機能をいくつか追加しました。

そのため、バージョン1.5では、mergeコマンドに2つの新しいオプション--record-only--reintegrateが追加されました

現在、変更のコピーを制御する責任はSVN(マージトラッキング)の肩にかかっており、プログラマは更新コマンドのように頻繁にマージを簡単かつ恐れることなく実行できます。



これで、最後のマージのリビジョン番号を管理する必要はまったくありません。 SVNは非常に賢くなったため、まだ持っていない変更のみをコピーします。 以前に-rスイッチを使用して一連のリビジョンを指定する必要があった場合、コマンドを実行するだけで十分です。



#svn merge svn://svnserver/var/bump/trunk







SVNはすべてを理解します。



--- Merging r154 through r155 into '.':

U app/view/blogs/view.tpl.html








2番目の便利な変更は、変更をトランクにコピーすることです。 繰り返しになりますが、SVNは私たちをusしみなく扱い、トランクにない変更のみをコピーします。



svn merge --reintegrate svn://svnserver/var/bump/branches/my-branch







このコマンドは、ブランチをトランクにマージします。 繰り返しますが、不必要な動きはありません。すべてが非常に簡単です。



--record-onlyオプションは、リビジョン範囲をマージ済みとしてマークするために使用されます。 つまり、次回svnはこれらのリビジョンからブランチに変更をコピーしようとしません。



#svn merge -r155:157 --record-only svn://svnserver/var/bump/trunk







これで、リビジョン範囲155:157からのすべての変更は無視されます。



svn logおよびsvn blameコマンド用の追加オプションが登場しました

svn log --use-merge-history --limit 3

------------------------------------------------------------------------

r155 | rvk | 2008-11-24 15:22:04 +0300 (, 24 2008) | 1 line

Merged via: r156



fixed small bug

------------------------------------------------------------------------

r154 | rvk | 2008-11-24 14:15:29 +0300 (, 24 2008) | 1 line



new branch named new_design

------------------------------------------------------------------------







そしてもう1つの便利なオプションsvn mergeinfoを使用すると、どのリビジョンが既に見つかっているかを確認できます。



#svn mergeinfo svn://svnserver/var/bump/trunk







または、どの変更をトランクからコピーできますか:



#svn mergeinfo svn://svnserver/var/bump/trunk --show-revs eligible







いつものように、詳細はsvnbookで読むことができます



All Articles