Announcement

Collapse
No announcement yet.

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

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

  • 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
    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

    Comment


    • #3
      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, 11:01 AM. Reason: Correct typo

      Comment


      • #4
        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

        Comment


        • #5
          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

          Comment


          • #6
            > 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

            Comment


            • #7
              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.

              Comment


              • #8
                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

                Comment


                • #9
                  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

                  Comment

                  Working...
                  X