[Monotone-devel] Re: 3-way merge considered harmful

2005-05-02 Thread Richard Levitte - VMS Whacker
In message [EMAIL PROTECTED] on Sun, 1 May 2005 00:29:48 -0700, Nathaniel Smith [EMAIL PROTECTED] said: njs Here's another pathological case for 3-way merge: njsA njs| njsB njs / \ njs C D njs Suppose that a file was added on the A-B edge, and then removed again njs in B-C,

Re: [Monotone-devel] [patch]move attributes on rename

2005-05-02 Thread Nathaniel Smith
On Mon, May 02, 2005 at 06:31:59PM +0200, Henrik Holmboe wrote: Nathaniel Smith [EMAIL PROTECTED] writes: [...] It's true this a little confusing, though. Easiest solution: add a --do-it command-specific-option to drop/rename, which tells them to actually delete or rename the file in

[Monotone-devel] viewmtn fails because with command-specific options

2005-05-02 Thread Bruce Stephens
I think this is all that's necessary. (The line that modifies self.base_command looks like it was a mistake anyway.) --- monotone.py +++ monotone.py @@ -113,9 +113,9 @@ def ancestry(self, id, limit=0): rv = [] entry = None - command =

Re: 3-way merge considered harmful (was Re: [Monotone-devel] merge weirdness...)

2005-05-02 Thread K. Richard Pixley
Nathaniel Smith wrote: To expand: I'll assume everyone knows about the criss-cross merge case, which forces us to choose more distant ancestors in some cases, or else risk silently corrupting code. I don't. Is there a reference? (This problem seems specific to the semantics of rename; there

Re: [Monotone-devel] Re: 3-way merge considered harmful

2005-05-02 Thread Joel Crisp
The most obvious solution would really be to have those file movements codified during a merge into a file similar to MT/work, and which can suffer from conflicts if needed. That file would be the first to have to be resolved, and the results from it would be applied immediately in some way,

[Monotone-devel] Re: propagate by certing instead of creating a merge node

2005-05-02 Thread Bruce Stephens
Joel Rosdahl [EMAIL PROTECTED] writes: Bruce Stephens [EMAIL PROTECTED] writes: Propagate seems to have three cases. If you're propagating from branch src to dst, then either: [...] 2. dst is an ancestor of src, in which case there's no merging to be done: just add src to the dst

Re: [Monotone-devel] Re: 3-way merge considered harmful

2005-05-02 Thread Nathaniel Smith
On Mon, May 02, 2005 at 02:18:09PM -0700, K. Richard Pixley wrote: Nathaniel Smith wrote: Trying to code tree rearrangement conflicts as textual conflicts doesn't work; I spent a few weeks trying, when we were trying to figure out how to do tree rearrangement in the first place. You can

Re: 3-way merge considered harmful (was Re: [Monotone-devel] merge weirdness...)

2005-05-02 Thread Nathaniel Smith
On Mon, May 02, 2005 at 01:57:51PM -0700, K. Richard Pixley wrote: Nathaniel Smith wrote: To expand: I'll assume everyone knows about the criss-cross merge case, which forces us to choose more distant ancestors in some cases, or else risk silently corrupting code. I don't. Is there a

Re: [Monotone-devel] Re: 3-way merge considered harmful

2005-05-02 Thread Florian Weimer
* Richard Levitte: In message [EMAIL PROTECTED] on Sun, 1 May 2005 00:29:48 -0700, Nathaniel Smith [EMAIL PROTECTED] said: njs Here's another pathological case for 3-way merge: njsA njs| njsB njs / \ njs C D njs Suppose that a file was added on the A-B edge, and then

Re: [Monotone-devel] Re: 3-way merge considered harmful

2005-05-02 Thread Nathaniel Smith
On Tue, May 03, 2005 at 01:21:31AM +0200, Florian Weimer wrote: I think Nathaniel wanted to say that there is an implied conflict which 3-way merge cannot detect, not that one choice is better than the other. The argument that there is a hidden conflict which should be flagged as such is