ログイン
検索
メインメニュー
開発者ブログ
ChangeVisionメンバーズ分布マップ
フォーラム一覧   -   トピック一覧
   astah*の使い方
     簡易比較やマージを単体で使いたい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
kamamoto
投稿日時: 2009-9-1 13:57
新米
登録日: 2009-9-1
居住地:
投稿: 2
簡易比較やマージを単体で使いたい
Subversionを使ってバージョン管理を行ないたいのですが、JUDEのプロジェクトファイルはバイナリファイルなので簡単に比較やマージができません。
JUDEを起動すればファイルメニューからプロジェクトのマージやプロジェクトの簡易比較ができますが、この機能を単体で使う事はできませんか ? JUDEのコマンドライン引数に指定する方法でもOKです。
具体的には、TortoiseSVNの、差分ビューアとマージツールに外部プログラム設定として登録したいのです。
TortoiseSVNは、変更前のファイルは%base、自分の変更ファイルは%mineなどのパラメータで指定できます。
外部ツールとしてJUDEのマージと簡易比較を設定できれば、TortoiseSVNによるバージョン管理やチーム開発がとても便利になると思います。
zhouyi
投稿日時: 2009-9-2 15:51
開発者
登録日: 2006-5-9
居住地: 福井
投稿: 47
Re: 簡易比較やマージを単体で使いたい
JUDEのご利用、ありがとうございます。

> JUDEを起動すればファイルメニューからプロジェクトのマージやプロジェクトの簡易比較ができますが、
>この機能を単体で使う事はできませんか ? JUDEのコマンドライン引数に指定する方法でもOKです。

jude.bat -diff ModelA.jude ModelB.judeで差分比較画面が立ち上がるような利用方法ですよね?

大変申し訳ございませんが、
現在、JUDEがそのような機能を提供しておりません。

できたらとても便利ですよね!
ぜひ検討させて頂きたいと思います。

今後もよろしくお願いします。

kamamoto
投稿日時: 2009-9-14 9:16
新米
登録日: 2009-9-1
居住地:
投稿: 2
Re: 簡易比較やマージを単体で使いたい
差分比較はできませんか。残念です。
簡単マージは、以下の方法でできるようになりました。

1.TortoisesSVNのマージツール設定で拡張子.judeに以下のコマンドを追加する。
runEasyMerge.bat %mine %theirs


2.TortoisesSVNからコールされるrunEasyMerge.batを作成する。

runEasyMerge.batの大まかな内容は、

rem 第二引数(%theirs)は拡張子がr1とかr2になるので、tmp.judeへコピーする。
copy %2 tmp.jude >NUL
java EasyMerge %1 tmp.jude
rem テンポラリファイルの削除する。
if exist tmp.jude del tmp.jude >NUL


3.runEasyMerge.batからコールされるJUDEのAPIを使用するEasyMerge.javaを作成しコンパイルする。

EasyMerge.javaの大まかな内容は、

public class EasyMerge {
    public static void main(String[] args) {
        if (args.length != 2) {
            System.err.println("引数エラー : 引数が間違っています\r\n");
            System.err.println("使い方: java easyMerge input.jude merge.jude");
            return;
        }
        String inputFile = args[0];
        String mergeFile = args[1];
        ProjectAccessor prjAccessor = ProjectAccessorFactory.getProjectAccessor();
        // プロジェクトのオープン
        prjAccessor.open(inputFile);
        // 参照プロジェクトのパスを取得
        String strReference[] = prjAccessor.getReferenceProjectPaths();
        // 参照プロジェクトの解除
        for ( int n = (strReference.length - 1); n >= 0 ; --n ) {
            String strRef = strReference[ n];
            prjAccessor.clearReferenceProject( strRef );
        // プロジェクトのマージ
        prjAccessor.easyMerge(mergeFile, false);
        // 参照プロジェクトの追加
        for ( int n = 0; n < strReference.length; n++ ) {
            String strRef = strReference[ n];
            prjAccessor.addReferenceProject(  strRef );
        }
        // プロジェクトのセーブ
        prjAccessor.saveAs(inputFile); 
        prjAccessor.close();
    }
}


このようにJUDEのAPIを使う方法でも良いので差分を表示する機能の実現をお願いします。
zhouyi
投稿日時: 2009-9-15 10:27
開発者
登録日: 2006-5-9
居住地: 福井
投稿: 47
Re: 簡易比較やマージを単体で使いたい
JUDEのご利用、本当にありがとうございます。

>>このようにJUDEのAPIを使う方法でも良いので差分を表示する機能の実現をお願いします。

検討させて頂きます。

今後もよろしくお願いします。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を