monotone-devel
[Top][All Lists]
Advanced

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

Re: [Monotone-devel] merge_into_workspace, invariant 'I(!next.empty())'


From: Georg-W. Koltermann
Subject: Re: [Monotone-devel] merge_into_workspace, invariant 'I(!next.empty())' violated
Date: Sun, 04 Mar 2007 20:57:46 +0100

Am Sonntag, den 04.03.2007, 12:36 +1300 schrieb Matthew Gregan:
> At 2007-03-02T22:59:22+0100, Georg-W. Koltermann wrote:
> > started up on Linux 2.6.17-11-386 #2 Thu Feb 1 19:50:13 UTC 2007 i686
> > command line: 'mtn', '-d', '/tmp/import.mtn', '--rcfile',
> > '/home/hunter/gwk/monotonerc.import', 'merge_into_workspace',
> > 'aee7bbd58cededa2ac43a37f474e5301a54f5e93'
> 
> ...
> 
> > unclean roster_merge: 0 name conflicts, 0 content conflicts, 0 attr
> > conflicts, 0 orphaned node conflicts, 1 rename target conflicts, 0
> > directory loop conflicts
> > rename target conflict: nodes 378, 1, both want parent 0, name 
> > 
> > root dir is NULL
> 
> Thanks for the report.
> 
> It looks like you're trying to merge_into_workspace two revisions which add
> a root directory (and with no common ancestor).  Does that sound right?
> 
> The current merge_into_workspace implementation only supports merges that
> have no conflicts--the non-content conflict resolution code and UI hasn't
> been built yet.  It will allow content conflict resolution using the
> existing immediate resolution interface (like 'merge' does) prior to writing
> out the new two parent workspace, so if there are content conflicts, it will
> run your content merger, and leave you with a two parent workspace that
> represents a clean merge.

Hi Matthew,

yes it is probably right.  I was converting an existing Hg repository
with a script of mine.  The change in question was a merge of two
unrelated parents (i.e. there are two roots in the source Hg tree).

Concerning conflict resolution I am not quite with you.  I think in
other cases merge_into_workspace did try interactive conflict
resolution, popping up kdiff3.  For the (batch) conversion of the
repository I used a trivial merge3() lua function that always returns
"left"; then before the commit the workspace would be overwritten with
the state from the source repo, add --unknown and drop --missing would
be done so the final commit accurately reflected the source state.

So, it seems to me this all worked well in the usual case, it only
failed with this particular merge of unrelated parent states.

Nothing terribly important.  I was just trying to play with monotone,
and needed an "interesting" repo for the game, so I startet converting
one that I had.

--
Thanks,
Regards,
Georg.

Attachment: smime.p7s
Description: S/MIME cryptographic signature


reply via email to

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