Announcement

Collapse
No announcement yet.

BC4 4.2.8 and git 2.12.3 on SUSE 12 Linux

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • BC4 4.2.8 and git 2.12.3 on SUSE 12 Linux

    My work machine just got re-imaged with SLES 12 SP4. I have Beyond Compare 4.2.8 installed (I can't control versions). I have configured git to use BC for diffs. Here is the configuration information:

    Code:
    diff.tool=bc3
    difftool.bc3.path=/usr/bin/bcompare
    difftool.bc3.trustexitcode=true
    When I use the command
    Code:
    git difftool -d some/branch
    I get an error:
    Code:
    error: unable to create file <random-string>: File exists
    This used to work on this machine before the re-image. The re-image could have changed BC and git versions.

    Following some other information, I tried:
    Code:
    git difftool -d HEAD some/branch
    and it worked as I expected without the HEAD.

    I can use this as a work around, but it makes it impossible to compare two arbitrary branches; one must be the active branch.

    Is this a known issue with either this version of git or this version of BC? Other answers (posts) seem to indicate not, but I'm asking.

    Joe

  • #2
    Hello,

    If you remove the path definition and use these setup instructions (which use "bc" or "bc3" as a keyword) it should be able to find the path automatically. Git has trouble with BC4 if you try to override this behavior. I would suggest trying "bc" first, then "bc3".
    http://www.scootersoftware.com/suppo...b_vcs#gitlinux
    Aaron P Scooter Software

    Comment


    • #3
      That did it for me.

      Thanks!
      Joe

      Comment


      • #4
        Okay. So, now I updated to BC 4.3.3, and it is broken again. I removed all my difftool settings, and recreated them according to the link, but no joy.

        But, it appears that there are nuances to how it is broken.

        Code:
        git difftool -d
        works, if I have something locally changed.

        But
        Code:
        git difftool -d <commit>
        does not work.

        Here are my current difftool relevant settings:
        Code:
        diff.tool=bc
        difftool.bc.trustexitcode=true
        difftool.diff_merge.path=<some other program>
        difftool.diff_merge.cmd=<other program> $LOCAL $REMOTE
        I doubt the diff_merge setting matter, but in case they are confusing anybody (git), I included them.

        Joe

        Comment


        • #5
          Hello,

          So you also have another section with another merge.tool=diff_merge? While this should be feasible to set up, I've run into issues in old versions of Git where the order of the definitions impacted them working correctly. For troubleshooting, I'd recommend temporarily deleting anything related to mergetool definitions or other tools, and configure only the difftool, and see if that works. I've also run into caching issues and multiple .gitconfig location issues while doing tests like this. I usually troubleshoot by inserting something that is expected to fail (like renaming it to bcno) just to make sure I am pulling from the correct .gitconfig with the current edits.

          That it works with the local version would seem to indicate the definition should be working. Is updating Git an option? Also, if you switch to "bc3" does this impact the behavior?
          Aaron P Scooter Software

          Comment


          • #6
            I guess I had some sort of user issue. It is working. I'm guessing that I was attempting to view a diff when there wasn't anything different.

            Joe

            Comment


            • #7
              Of course. I've done that, too, and could have added it to the list of "things I've seen."

              If you see anything else crop up, let us know.
              Aaron P Scooter Software

              Comment

              Working...
              X