Results 1 to 9 of 9
  1. #1
    Join Date
    Mar 2017
    Posts
    4

    Default BC4 partial text merge (via git mergetool) doesn't seem to work properly

    Using BC 4.1.2 x64 and git 2.10.1.windows.1 on Win 10 x64.

    If I use BC4 to resolve a merge conflict (via git mergetool), it seems that, if I only resolve *some* of the conflicts, saving causes two fundamental problems:

    • the unresolved conflicts disappear, and the file gets some garbled version of them (selected bits of the two conflicted changes without any conflict markers);
    • git sees the conflicts as resolved (i.e., BC4 gives a 'successful' exit code).



    Am I missing something fundamental here? I am merging changes to a fairly complex XML file if that adds anything to the discussion.

    This is a bit of showstopper to purchasing BC4 licenses.

  2. #2
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,619

    Default

    Hello,

    When calling the mergetool, the Output pane is the full representation of the Save command. If there are still conflicts present, we do not prevent the Save command; it is considered an override and will save the output regardless, and the Ancestor is inserted as the default value. Save always returns a success.

    If you close BC4 without saving then the merge is aborted and the Output is not committed.

    Did you want to use our merge logic but not present the graphical interface? We do have an /automerge and /force command combination which would insert conflict markers while attempting to merge automatically.

    What types of conflicts are you hitting in BC4 which you are unable to resolve in our interface?
    Aaron P Scooter Software

  3. #3
    Join Date
    Mar 2017
    Posts
    4

    Default

    Late response, sorry.

    > What types of conflicts are you hitting in BC4 which you are unable to resolve in our interface?

    None but I shouldn't have to resolve *all* conflicts in one session! (Let's say there are 100 conflicts, some of them tricky to resolve.)

    > and the Ancestor is inserted as the default value

    This doesn't seem to be true in my case. (The 'merged' output file had 'garbled' portions of the conflicting changes in where the conflict markers had been, rather than just the base or branch-being-merged content.)
    Last edited by sprossiter; 14-Jun-2017 at 09:01 AM. Reason: Correct typo

  4. #4
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,619

    Default

    Hello,

    No problem. We don't have a method to save a partial merge as a project. The only savable area is the Merge Output, which you could update partially and then use as a new "Yours" source, but be careful when resolving from a VCS Merge command so the VCS does not detect and commit the partial merge output as if it were completed.

    Could you clarify 'garbled'? The conflict markers would be prefixes to each line designating the source file, and would contain all of the conflicting text (which would then need some of it to be edited or deleted to present a working file). Just the base is the default for the graphical interface Merge Output for conflicts, but the automerge with /force should include CVS style conflict markers.
    Aaron P Scooter Software

  5. #5
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,619

    Default

    I just noticed you are running BC 4.1.2. All 4.x updates are free for 4.x users; are you able to update to 4.2.2?
    Aaron P Scooter Software

  6. #6
    Join Date
    Mar 2017
    Posts
    4

    Default

    > are you able to update to 4.2.2?

    I could, but I don't have the time/environment to recreate the exact situation before. (The not allowing partial merges is the main issue anyway; even if it didn't 'garble' the remaining conflicts, I'd still have the same issue.)

    > Could you clarify 'garbled'?

    As I said, unfortunately I can't recreate my case exactly now but, for example, say your conflicted file had a conflict like this

    <<<<<<< HEAD
    a
    b
    c
    =======
    d
    >>>>>>> branch-a

    Then, the saved file after resolving only some other conflicts would have something without the markers and with a mix of the two sets of content, say

    a
    b
    d
    c

  7. #7
    Join Date
    Mar 2017
    Posts
    4

    Default

    The no-partial-merges just seems very weird default behaviour. One would imagine that the tool was making changes to the merged file as you resolved conflicts, and any outstanding conflicts would just remain exactly as they were (with conflict markers), with BC only giving a successful return code if all were resolved by the user.

    Is it just technical reasons why it doesn't act like this? Sorry to labour the point but it seems a pretty big deficiency to me.

  8. #8
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,619

    Default

    Hello,

    If you Save the Merge Output in the graphical interface, then this would save as-is. The conflict markers are only inserted when using the above command line arguments during an automated merge.
    Aaron P Scooter Software

  9. #9
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,619

    Default

    Conflict status is a comparison toggle (this section is Different or Conflict), but the Save command will save whatever is present in the Output pane as the output. The Conflict or Different status is used to help quickly jump around and review different types of differences (Go to Next Difference or Go to Next Conflict), but it is not a status that effects the save output.

    Are you familiar with another text merge tool that supports a partial merge and preservation of conflicts? We could use the example case to help research this type of workflow.
    Aaron P Scooter Software

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •