Maven と Mercurial の merge
MenuJava によるファイルシステムの操作の repository を Mercurial に登録する。
さらに、Maven Project に変更せよ。
Maven による packaging
% mvn packageで、target 以下に jar file ができる。これを使って、Java によるファイルシステムの操作を
% java -jar target/*.jar fileExample.Write -n hogeのように実行できるように、pom.xml を設定せよ。
package jp.ac.uryukyu.kono.java7 の class Test を main にしたければ、以下のplugin を pom.xml に追加する。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>jp.ac.uryukyu.kono.java7.Test</mainClass> <packageName>jp.ac.uryukyu.kono.java7</packageName> </manifest> <manifestEntries> <mode>development</mode> <url>${pom.url}</url> </manifestEntries> </archive> </configuration> </plugin>
Mercurial への push
Eclipse から Team->Commit, Team->Push を行って、変更を学科の repository に登録する
うまく行かない時には、hg push を直接 working direcoty で実行してエラーを調べる。
ssh が正しく実行できる必要がある。
ソースの変更
Copy の例題に、既にファイルが存在する場合には、コピーしないコードを追加せよ。それを、commit/push する。
前の version へ戻る
Eclipse の Team->Switch を使って、ソースの変更前のコードに戻る。
衝突する変更
FileWrite の例題に、既にファイルが存在する場合には、コピーするかどうかをユーザに聞くコードを追加せよ。それを、commit/push する。push できないことを確認してから、さらに、force option で、push する。
複数のhead
workspace 上で、hg head を実行し、複数の head ができていることを確認する。
Test の追加
どちらかの version 上に、JUnit を使って、ファイルが存在する場合には正しくメッセージが出ることを確認する test を追加する。Maven からもテストできるようにせよ。
hg merge
どちらかの version に switch し、もう一方への version への merge を実行する。
hg resolve
衝突が起きるので、それを解消せよ。Test は衝突がないはずである。コピーは衝突するはずである。それを確認せよ。
解消の解決
衝突が解消できたら、再度 commti push を行う。
head の確認
hg head で、head が一つになったことを確認せよ。hg web 上で、graph を見て、merge の様子を調べよ。
どこで、衝突が起きて、どこで解決されたかをレポートで log を示して指摘せよ。