[darcs-users] Operational query

Tommy Pettersson ptp at lysator.liu.se
Sat Jul 1 16:01:13 UTC 2006

On Thu, Jun 29, 2006 at 09:38:03PM +0100, Peter B. West wrote:
> ProjectA---A--
>        |---B--
>        |---nbproject--
> ProjectA'--A--
>        |---B--
>        |---nbproject.mod--
> Will a 'darcs pull' also pull changes within the original 
> nbproject directory into nbproject.mod? If so, will this happy situation 
> endure indefinitely, or will certain actions, like a 'darcs tag' prevent 
> further updates from nbproject to nbproject.mod?

All patches recorded in A are recorded in a context where the
dir rename patch is not present. Whey they are pulled to A' they
will meet the dir rename patch, which is "parallel" to them and
they will therefore try to commute with it, which will succeed
and transform them as expected (their dir name is changed).

Tags will not interfere with this happy situation. What can
prevent it is a conflict with the dir rename patch, e.g., if a
patch is pulled from a third repo that does the same rename. New
patches from A will then meet two conflicting dir rename
patches, and they will "split" (form a merger) with the two
possible results, that have to be resolved manually. The problem
will be that even if the conflict is resolved in A', new patches
pulled from A will continue to split, not only at the
conflicting dir rename patches, but also at previous
resolutions, and would have to be resolved again and again until
darcs hangs exponentially.

To have parallel branches with some difference that is not to be
merged (like the dir rename in this case) will only work well as
long as the patches performing the "magic" don't get conflicts.

Tommy Pettersson <ptp at lysator.liu.se>

More information about the darcs-users mailing list