Maven と Mercurial の merge

Menu

Java によるファイルシステムの操作の 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 を示して指摘せよ。


Shinji KONO / Tue Oct 23 13:22:28 2012