How to visualize the differences of Astah file in Git repository

Hi there,
I am Mit, the product owner of system and UML modeling tool Astah.

This time, I would like to write how to check the differences of Astah files in Git repository just by specifying the commit hash.

You have various artifacts through projects such as planning, development, operation, maintenance and project management. I am sure Astah files are also included in it. I think that it is good to use a specialized tool such as Sourcetree in order to handle basic operations on repositories. The problem is how to see the differences between revisions.

Astah provides comparison function of project function. Do you know it can run from the command line? That is “astah-command” command. It is deployed in the installation folder. As shown below, if you specify the two files to be compared with the -diff option and execute it, a screen will be shown to confirm the differences of models and diagrams.

astah-commandw.exe -diff file0.asta file1.asta

By using this command, it is possible to compare revisions of project files of Astah in Git repository. I created a sample command (Widows batch file).
The 1st argument is the hash value of the commit of base file, the 2nd is the hash value of the compared file, and the 3rd is file name.
You can also create a shell script in the same way.

@echo off

rem ---------------------------------------------------------------------------
rem Usage:
rem  astah-git-diff base-revision target-revision filename
rem ---------------------------------------------------------------------------

rem Installed folder of Astah
set ASTAH_DIR=C:\Program Files\astah-professional
rem Path of repository
set REPOSITORY_DIR=C:\Users\m.yamamoto\workspace\repository\astah
rem Working folder
set WORKING_DIR=C:\Users\m.yamamoto\workspace

pushd %~dp0

set BASE_FILE= "%WORKING_DIR%\%1_%3"
set REF_FILE= "%WORKING_DIR%\%2_%3"

rem get base file
git show  "%1":"%3" > %BASE_FILE%
rem get compared file
git show  "%2":"%3" > %REF_FILE%

rem run Astah command
"%ASTAH_DIR%\astah-commandw.exe" -diff %BASE_FILE% %REF_FILE%


The following is an example of execution.

> astah-git-diff.bat 0123 abcd file.asta

I’ll give you one more tip.
That is how to see the difference between the file being edited and the revision before editing with Sourcetree.

In the options of Sourcetree, set the path to astah-command (.bat instead of .exe on Windows, on Mac)  at Diff Command, “-diff $LOCAL $REMOTE” at Arguments.

You can see the compare project screen by selecting “External Diff” in the pop-up menu with Sourcetree.


I hope these tips help you.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s