GIT branch-to-branch comparison (ala Subversion Profile)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • peebles
    Enthusiast
    • May 2015
    • 33

    #16
    $ cat .gitconfig
    [user]
    name = xxxxx
    email = [email protected]
    [color]
    ui = true
    [merge]
    tool = bc3
    [diff]
    tool = bc3
    [push]
    default = matching
    [alias]
    hist = log --pretty=format:"%h %ad | %s%d [%an]" --graph \n--date=short
    [difftool "bc3"]
    trustExitCode = true

    Comment

    • Aaron
      Team Scooter
      • Oct 2007
      • 15997

      #17
      I've copied your .gitconfig, but still see the same behavior where "subfolder" is still a clickable folder and not the new base folder. Could you post a screenshot of the interface and terminal window, so I can try to configure something closer to what you have? You can also email us at [email protected] with the screenshots and a link back to this forum post for our reference.

      If you set up a new test repository on your Desktop\, and commit a few files and a subfolder\ with files, do you see the same behavior as the current repository you are using?
      Aaron P Scooter Software

      Comment

      • peebles
        Enthusiast
        • May 2015
        • 33

        #18
        Not sure if this is what you are asking for.
        Attached are three images.
        First one, git_diff_subfolder.png shows my current working repository with 'git status' and the results of running 'git difftool -d' from a subfolder.

        Second one, git_diff_folder.png shows the results of running 'git difftool -d' from the root folder in the same working repository.

        Last one, git_diff_new_subfolder.png, is a completely new repository. It has three files, test1.txt in the root 'foo' folder, test2.txt in a 'foo_subdir2' folder and test3.txt in a 'foo_subdir3' folder. As you can see, test2.txt and test3.txt are both modified. If I run git difftool -d from 'foo_subdir2', only foo_subdir2 correctly expands.

        i'm not sure whether this is a git or bc4 issue.

        This is the result of running 'git diff' from 'foo_subdir2':

        ~/foo/foo_subdir2$ git diff
        diff --git a/foo_subdir/test2.txt b/foo_subdir/test2.txt
        index ef6794f..3e48f75 100644
        --- a/foo_subdir/test2.txt
        +++ b/foo_subdir/test2.txt
        @@ -1 +1 @@
        -Second test
        +2. Second test
        diff --git a/foo_subdir2/test3.txt b/foo_subdir2/test3.txt
        index 16df5ea..d7e9789 100644
        --- a/foo_subdir2/test3.txt
        +++ b/foo_subdir2/test3.txt
        @@ -1 +1 @@
        -Third
        +3.- Third





        Comment

        • Aaron
          Team Scooter
          • Oct 2007
          • 15997

          #19
          Ah hah! Got it.

          Ok, this shows what I expected and am seeing. Note the Base Folder paths are "left" and "right", even thought you executed at the lower level. From your earlier description, I thought you were implying that "left/subfolder" and "right/subfolder" was also the text up here and that was the difference in behavior we were seeing that lead to one side being blank.

          Now that I see you have multiple subfolders with differences, then you navigate into a specific subfolder and activate a diff on just it, it appears git only passes back that substructure, even though it always starts at the top. One side is only the relative structure from where you executed the diff (so it is missing some items, by request since you launched the diff only on sub-items), while the other side is the current local file system, so it is still showing all current files/entries. I didn't catch this since my simple repo only had one subfolder with multiple items inside it for testing.

          I don't believe this is on our end, since we're loading the two directories and structure as Git gives them to us. Ideally, the base folders would be the base you launched the diff command at "left/subfolder" <-> "right/subfolder", at which point only those loaded folders' subitems would be visible. You could right click and Set As Base Folders for the launched/loaded subfolder to remove the empty items from view and see what this would look like. Or other workarounds would be to launch difftool -d from the top folder to have git build and pass all items into the diff. Or remove any right orphans from view with the Display Filters, as a quick way to remove any ungenerated diffs as long as you do not need to review newly created files (or remove only the specific side's Orphans that are ungenerated).
          Aaron P Scooter Software

          Comment

          • peebles
            Enthusiast
            • May 2015
            • 33

            #20
            Thanks Aaron,

            actually, once I figured out that it worked from the root folder I always do it there. Funny thing is that both 'git diff' and 'git difftool' (without -d) show all files in the repository, no matter the folder you are in. Anyway, thanks for the support, I agree this is most likely a git issue.

            Comment

            Working...