EclipseCVSブランチ

 

(参考にさせていただいたページ)

http://www.deftrash.com/blog/archives/2006/04/eclipse.html

 

 

ブランチ作成

 

まず、ブランチを作成したいプロジェクトに、分岐点としてのタグを作成する。

その際に、まだコミットがすんでいないファイルがある場合に、それらをトランクにコミットしてからタグを作成するのか、それともコミットせずに(つまり、チェックアウトもしくは前回コミットしたときの状態から)ブランチを作成するのかの判断を迫られる。筆者の場合は、前回コミットしたときの状態からブランチを作成したかったので、OKを押して進む。

 

すると、ブランチ名とタグ名の入力を要求されるので分かり易い(またはプロジェクトチーム内の命名規則に従って)名前をつける。

 

 

あまり紹介されていない、トランクからブランチへのマージ

開発ストリームを本流のトランクからブランチに分けて、2本の流れで進めることはプロジェクトではよく起こる。(2人の開発者が同時に作業を進めたいような場合に)

その後ブランチで起こった変更を、トランクにマージする必要があるのだが、時としてブランチでの作業を継続して行わなくてはならないが、トランクで行われた変更もブランチに取り込みたい(トランクの変更内容をブランチにマージしたい)ということが起こる。その際は以下の作業でマージが実行できる。

 

EclipsePackageExplorerにて、今ブランチ上にいるとする(ここではBUILD_DEPLOYブランチ)。

 

まず、ローカルの作業コピーにトランク側で起こった変更をマージする。それには以下の作業を行う。

右クリック、<Team><Merge>Mergeダイアログボックスを表示し、以下を指定する。

ポイント

 

1.  作業はローカルコピーに対して行う。ローカルコピーがどのブランチのローカルコピーなのかによって、どのブランチに対してマージするのかが決まる。

2.              ここにマージしたい側(自分のいるブランチではない)の変更開始ポイント(ブランチを作成した際に作成したブランチ開始分岐点)を指定する。

3.              ここにマージしたい側(自分のいるブランチではない)の変更終了ポイント(マージ先のブランチ名、今回はトランクなのでHEADでよい)を指定する。

4.              最後にブランチ作業コピーの変更をレポジトリにコミットする。

 

 

Common base version (start tag):にはマージ内容の始まるタグ(特別な場合を除けば自分が作業しているブランチがトランクから分かれた時点でのタグになるかと思われる)を指定し、Branch or version to be merged (end tag):にはどこでまたはどこまでの変更内容を取り込みたいのかを指定する。この場合は、トランクの最新の変更内容まで取り込みたいのでHEADを指定する。

Preview the merge in the synchronize viewにチェックをつけてFinishを押せば、Previewが表示される。

 

結果に納得したらSynchronizeビューで右クリック、マージしよう。

これで、ブランチ上のソースファイルにトランク上での変更がマージされた。ただし、これはあくまで作業コピーで起こった変更に過ぎず、次はこれをリポジトリに保存する。(つまり、ブランチのリポジトリに保存する)。通常通り、<Team><Commit>OK

 

念のためよく紹介されているブランチからトランクへのマージ

やることはトランクからブランチへのマージと正反対になる。

 

まず、ローカルの作業コピーをトランクに移動しよう。右クリック、<Team><Switch to Another Branch or Version…>

 

ローカルの作業コピー(今はトランク上にいるはず)にブランチ上で行った変更をマージする。それには以下を指定する。

右クリック、<Team><Merge>Mergeダイアログボックスを表示し、以下を指定する。

 

ある支流から別の支流への切り替え

たとえば、開発中にトランクからほかの開発者が作業中のブランチへとプロジェクトを切り替えたい場合がある。この場合、Eclipse<Team><Switch To Another Branch or Version…>と言うメニューを提供するが、これがちょっとした曲者である。はじめからすべてのブランチを表示するようになっていないのである。たとえばあるプロジェクトにMCC_BRANCHというブランチがあることがわかっていてもこのメニューを最初に選んだときには、以下のように空っぽのリストが表示される。

 

そこで、ここではそのブランチ名を取得するために<Configure Tags>ボタンを押す。

しかしまだ何もでない。ここでめげずに何か適当なファイルを<Browse files for tags>区画から選んでみよう。すると、

ブランチが表示されるので、ターゲットのブランチを選んで<Add Checked Tags>を押せば、これが晴れて追加される。

(何で最初から表示されるようにしてくれなかったのかなー、、、)