Merge conflict markers for easy merge?

The size of the change has nothing to do with this. Since I know Pijul may be a bit confusing at first, here is a major difference between Pijul (or Darcs) and Git (or SVN, Mercurial, Fossil, CVS, RCS…):

  • Git operates on versions (aka commits), i.e. full states of the repository. When you want to merge two versions, it looks at the youngest common ancestor (another version), and runs a heuristic algorithm to try and guess what should be done to get yet another version (a fourth one) that could be more or less “consistent” (for some definition of consistent) with the other versions.

  • Pijul operates on changes (aka diffs, deltas, patches), which are operations on the versions. It doesn’t care use the contents of the changes while merging, because it doesn’t try to guess anything. The rule is: if two patches edit the same line, there’s a conflict, even if they do the same thing. There is only a minimal amount of opinion here, in the sense that we could choose not to show the conflict to the user. But (1) it would violate our rule of not trying to guess anything and (2) there may be cases where two authors make the same change for different reasons, and the combination of these changes is something other than ignoring one of them.

1 Like