From 79a5ee985199c7b12392ef168a042309b6fa4e29 Mon Sep 17 00:00:00 2001
From: Owen Jacobson
Builds, and software engineering as a whole, can be described the same way: at the top of the hierarchy is a working system that solves a problem, and at the bottom are the things you need to have software at all. If you don't meet diff --git a/.html/dev/merging-structural-changes.html b/.html/dev/merging-structural-changes.html index e5c8795..a019d9c 100644 --- a/.html/dev/merging-structural-changes.html +++ b/.html/dev/merging-structural-changes.html @@ -63,7 +63,7 @@ sadly, performed dismally: none of the merge scenarios tested retained content changes when merging structural changes to the same files.
The diagram above shows a very simple source tree with one directory, dir-a,
containing one file with two lines in it. On one branch, the file is modified
to have a third line; on another branch, the directory is renamed to dir-b.
@@ -73,7 +73,7 @@ changes: the file has three lines, and the directory has a new name.
There are two merge scenarios in this diagram, with almost the same outcome. On the left, a working copy of the branch where the file's content changed is checked out, then the changes from the branch where the structure changed are @@ -105,7 +105,7 @@ which is not as good as automatically merging it but far better than silently ignoring changes.
Interestingly, there are tools which get this merge scenario right: the diagram above shows how Mercurial handles the same two tests. Since its changeset language does include an “object -- cgit v1.2.3