Git and DiffTool problems : What do LOCAL and REMOTE point to?

x1886x picture x1886x · Mar 26, 2011 · Viewed 35.4k times · Source

Ive been working on getting tortoisemerge working as the difftool option in Git with my .gitconfig file currently showing :

   [diff]
        tool = tortoise

    [difftool "tortoise"]
        cmd = tortoisemerge.exe -mine:$LOCAL -base:$REMOTE

    [difftool]
        prompt = false

According to tortoise merge docs the 'mine' command states which file will be shown on the right, in a two way diff.

My question is, what do the LOCAL and REMOTE variables as provided by GIT actually point to? The documentation is a little vague stating that

LOCAL is set to the name of the temporary file containing the contents of the diff pre-image and REMOTE is set to the name of the temporary file containing the contents of the diff post-image.

The problem arises when I modify a file, and then enter 'git difftool' tortoisemerge is started with the working directory file on the LEFT and not the right as I assume. I know I can merely switch the 'mine' and 'local' commands but I was trying to figure out what the local/remote points to and the best way to resolve this issue

Answer

Sandeep picture Sandeep · Mar 26, 2011

there are 4 components to this (note that before this step, you would have already done a local-checkin.)

  • The local-checkin that your git tree has: LOCAL
  • The head of the remote repository (that is going to be merged): REMOTE
  • common ancestor to both LOCAL and REMOTE: BASE
  • The file that will be written as a result: MERGED.