monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] Re: Mark merge for existence


From: Graydon Hoare
Subject: [Monotone-devel] Re: Mark merge for existence
Date: Thu, 15 Nov 2007 13:17:30 -0800
User-agent: Thunderbird 2.0.0.10pre (X11/20071113)

Matt Johnston wrote:
On Thu, Nov 15, 2007 at 09:57:50AM +0100, Markus Schiltknecht wrote:
You've read and understand *-merge? Best sources here [1]. Can you expand on you concept of 'existince marks'?

Existence marks already exist for attrs don't they - the
difference being that attrs aren't deleted that often so we
don't care about their ghosts hanging round forever?

I would not worry, in general, about the persistence of ghosts or trimming their marks from the roster. I don't think people will be killing and resurrecting buckets of files. Maybe make a super-duper-kill command that drops a node forever, relegating it to die-die-die, irrespective of "existence" state. Use the "existence" mark for an undoable-kill, and make that the default for UI actions like "drop". You can work out a UI for reviving dead ghosts sometime later :)

A point you have to be sure to address throughout the tool is that you have to modify things that detect conflicting nodes by path, since paths can only have a unique *live* occupant. Change it such that eg. a/b/foo.txt and a/b/foo.txt only conflict if neither of those foo.txt nodes is a ghost. And likewise, when we write out files and directories, we need to skip the ghosts.

It's a little weird that, given this change, mtn may occasionally find itself merging content, filename and attribute state on ghosts, but probably harmless. I bet it will never happen. You could even warn the user when it does: someone thinks they're editing a living file, but they're talking to a ghost!

I'm curious to see how it turns out, though. Please test extensively and make the absolute *most conservative* form of this change you can. Fiddling the merge algorithm is ... probably the most destabilizing thing you can do to this program.

-Graydon





reply via email to

[Prev in Thread] Current Thread [Next in Thread]