monotone-devel
[Top][All Lists]
Advanced

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

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


From: Nathaniel Smith
Subject: Re: [Monotone-devel] Re: 3-way merge considered harmful
Date: Tue, 3 May 2005 13:53:04 -0700
User-agent: Mutt/1.5.9i

On Tue, May 03, 2005 at 01:26:49PM -0700, K. Richard Pixley wrote:
> Each "directory" is a file containing records, each record contains a 
> filename + inode number.
> 
> The inode table points to file extents, protections, a link count, and 
> perhaps back pointers, etc.  Atomic operations include "link" and 
> "unlink" and possibly "rename".

Sure, this is the basic representation you want to use for merging.

> If you collapse all of the directories into an archive resembling a 
> normalized "ls -iR", then I believe that you can indeed translate 
> textual changes into file system operations.  You'll need to be careful 
> about the ordering so you make the new links before removing the old 
> ones, but that should be straightforward.  Even the archive isn't 
> strictly necessary.  Since we're talking about a system with atomic 
> commits of changesets, top-down, bottom-up, doesn't really matter.  You 
> do stand the possibility of committing a partial tree with no path to 
> the root.  However, since this partial tree can't be accessed in any of 
> the normal ways, short of commiting a change set which reconnects it to 
> the root of an existing branch, I submit that it can't possibly create 
> any conflicts you aren't already solving.

Sure, you can write down a textual representation of this information.
manifests and change_set's more or less are such a representation.

The problem isn't that it's impossible, it's that it doesn't actually
help solve any of the problems we need to solve, as far as I can tell.

> Clearcase does something comparable.  I can even commit manual surgery 
> on a directory by manually linking an arbitrary inode into it with an 
> arbitrary name.
> 
> I'm surprised that monotone isn't doing this already.  Of course, you'd 
> need to find some identifier to stand in for the inode number...

See "tid" in change_set.cc :-).

-- Nathaniel

-- 
"...these, like all words, have single, decontextualized meanings: everyone
knows what each of these words means, everyone knows what constitutes an
instance of each of their referents.  Language is fixed.  Meaning is
certain.  Santa Claus comes down the chimney at midnight on December 24."
  -- The Language War, Robin Lakoff




reply via email to

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