monotone-devel
[Top][All Lists]
Advanced

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

Re: [Monotone-devel] Commit a child of 2 parents


From: Ethan Blanton
Subject: Re: [Monotone-devel] Commit a child of 2 parents
Date: Mon, 16 Jan 2006 18:25:08 -0500
User-agent: Mutt/1.4.1i

Daniel Carosone spake unto us the following wisdom:
> On Sun, Jan 15, 2006 at 10:31:13PM -0500, Yury Polyanskiy wrote:
> > This won't handle all situations: suppose a merge revision that adds a
> > file. I can't direct monotone to add a new file via merge hook.
> 
> Yeah, but on the other hand I don't think you can reasonably add a
> file in a merge node that wasn't previously added by one of the
> parents (or their ancestry paths).  What does it mean for a new file
> to appear in a merge node for the first time?

Generally speaking, this is a very reasonable thing to do.  Monotone
has historically looked at merges simply as reconciliation of abstract
history graphs, but in reality a merge represents (for example) a
reconciliation of two diverged codebases; in such a case, it may
indeed make sense to, for example, pull some common added code in the
two parent revisions out of disjoint places in the tree and add them
to a new file created specifically for housing that common code.  This
is currently not possible because monotone cannot
merge-via-working-directory, but I at least am hoping that that will
land some time after 0.26.  Once it does, semantics like this will, I
believe, be desired by many users who consider a revision a logical
state of their code, as well as an artifact of revision control.

In addition, I think maybe merge-via-working-directory will help solve
Yury's dilemma.

Ethan

-- 
The laws that forbid the carrying of arms are laws [that have no remedy
for evils].  They disarm only those who are neither inclined nor
determined to commit crimes.
                -- Cesare Beccaria, "On Crimes and Punishments", 1764

Attachment: pgpoIyYFOSbbT.pgp
Description: PGP signature


reply via email to

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