Git File System Plugin

The Merge plugin for Git enables Merge to access versions of files located within a local Git repository. It is included as a standard part of the Merge installation.

What you can do with the plugin

The plugin enables Merge to populate the Versions button drop-down versions menu appropriately. For more information, see Comparing Text Files (or Typed/Pasted Text).

The plugin also provides read-only access to revisions of files within a local Git repository. To modify files within the repository, you will need to use one of the Git tools to open, edit or submit files.

The plugin is not able to access the contents of remote repositories, so it is necessary to create a local clone of a remote repository first.

Preparing Merge to use the plugin

Merge needs to know the path to the git executable on your machine. This can be configured on the ApplicationSCM preference page. It is recommended that you use the Git executable provided by MacPorts (git-core port). This is usually /opt/local/bin/git.

If you wish Merge to populate the Versions button drop-down versions menu with any other revisions of the files that you are comparing, check the Include versions from SCM systems checkbox on the the Versions preference page.

Using the Git plugin

The Git plugin provides access to versions of a working copy of a version-controlled file whose path has been entered within one of the path input fields in a file comparison window. To specify a specific version of a version-controlled file for comparison, use a URI of the form git:///Absolute/Path/To/File or git:///Absolute/Path/To/File#revision.


URI Description
/Users/username/repository/notepad.cpp Specifies the working copy of the file notepad.cpp.
git:///Users/username/repository/notepad.cpp Specifies the tip revision of the file notepad.cpp.
git:///repo/notepad.cpp#42ab8b0c4790b7bd91541b068b7594692900b172 Specifies the revision of notepad.cpp that has the specified hash value.

Accessing files and folders already in your client workspace

If files or folders are already synced in your client workspace, you access them as you would any other file or folder on your hard disk. You do not need to use an git:// URI to do so.

Integrating Merge with the Git command-line tools and graphical front-ends

Merge itself integrates well with Git. For more information, see Integrating with Source Control, Configuration Management and Other Applications.