[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Arx-users] Conflict resolution
From: |
Walter Landry |
Subject: |
Re: [Arx-users] Conflict resolution |
Date: |
Wed, 08 Dec 2004 22:47:13 -0500 (EST) |
Kevin Smith <address@hidden> wrote:
> On Wed, 2004-12-08 at 21:12 -0500, Walter Landry wrote:
> > I certainly think that the manual should actually walk through
> > resolving a conflict. Right now it just tells you that there might be
> > conflicts, and you should solve them. Resolving conflicts might even
> > be its own section. Especially if it goes over how to use the various
> > graphical merge tools (ediff, meld, xxdiff, etc.) to resolve
> > conflicts.
>
> Sure. For now, can you say a sentence or two about what ends up in the
> working directory when there is a conflict? What contents end up with
> the original file name, and what contents end up in the .orig file? What
> goes into the .rej file, and under what circumstances is it created.
>
> I think a mere paragraph posted to this list would be a huge benefit.
> More effort than that would have less payoff, although will be important
> in the long run.
There are a five different ways that you can have conflicts.
1) Patch conflicts: This is probably the most common conflict. You
are trying to patch a file, and the patch doesn't quite work. For
a file foo, ArX will end up with three files, foo, foo.orig, and
foo.rej. foo.orig will have the original, unpatched file. foo
will have as many patches as could be applied without conflicts.
foo.rej will have those parts of the patch that couldn't be
applied.
There is a description for dealing with .rej files in emacs at
http://wiki.gnuarch.org/moin.cgi/Process_20_2a_2erej_20files
Eventually, I would like to make "merge" do a real three way merge,
in which case I could use diff3. Then the conflict markers would
be inline. Applying patches with other commands (replay, dopatch,
redo) would still generate .rej files.
2) Move conflicts: You are trying to move A to B, but B already
exists. So ArX moves B out of the way to B.orig.NN, where NN is
the lowest number not already taken. This also applies when trying
to add a file with the same name.
3) Missing Moves: You are trying to move A to B, but A doesn't exist.
4) Missing Patches: You are trying to patch foo, but foo doesn't
exist. ArX puts those patches into a ,,missing-patches directory.
5) Add Conflicts: You are trying to add a path with a particular
inventory id, and that id already exists. ArX still creates the
file, but does not add that file to the manifest. You may also
have a Move conflict if it is really adding the same file in the
same place (e.g. you applied the same patch twice).
Walter