GUI extensions#

Purpose#

This is a demonstrator for Git support in SCADE.

It adds Git commands to the SCADE IDE.

Features#

The Git extension supports several commands:

  • Refresh: Update the Git status of all project files.

    Note: You must save the SCADE project before so that Git can detect changes.

  • Stage selected files or all unstaged files: Add files to the Git staging area.

  • Unstage selected files or all staged files: Remove files from the Git staging area.

  • Reset All: Discard all changes and reset the Git repository to the last commit of the current branch.

  • Commit: Commit files in the staging area.

  • Diff: Select a version of the project and copy it to a temporary folder to launch the SCADE Diff Merge tool.

Git browser#

It lists the Git status for each file of the SCADE project. The update (Refresh command) is not automatic and must be done after each save of the project.

The name of the top-level folder mentions the current branch.

Git browser

Git menu#

All preceding actions are available in a Git menu or in the Git toolbar:

Git menu

Actions on selected files are available in a Git contextual menu:

Git contextual  menu

Git commit#

An edit box allows to enter the commit message:

Git commit message

Git diff merge#

A dialog lists all available branches in Git.

Git branches

Once you select one branch and click Diff, the extension copies this project version in a temporary folder and lists the path in the Git messages window. You must add this project to the workspace and manually launch the Diff Analyzer to start a diff merge session. There is no script access to this IDE command at this time to completely automate the process.

Git diff log message

The temporary folder must be manually cleaned if you need to free disk space. It is located in %LOCALAPPDATA%\temp\SCADE\git-diff\<git repository name>\<branch name (only alpha num char, no spaces)>