On Sun, Apr 09, 2006 at 12:04:45PM +0200, Peter Simons wrote: > Thank you for the explanation. The branch in question is very > messed up, unfortunately, I remember doing several wild directory > renames.
And at least one directory delete, apparently :-). Possibly followed by a directory re-creation. Just because two directories have the same name, recall, doesn't mean that they have any actual relation to each other... which might have some bearing on how identical the heads actually are. > My biggest problem is figuring out _what exactly_ to change to > fix the problem. Both heads are identical ... > > diff -r head1 head2 > diff -r head1/_MTN/revision head2/_MTN/revision > 1c1 > < 1bfd0c9f4a347913d2573f3bf8b5e3192350f6a8 > --- > > 1f7b551d990fa8d8f64072f6563874312e3ed62d > > ... but apparently the problem is in their history. When Monotone > prints an error message like this one: > > mtn: warning: orphaned node conflict on node 20547, dead parent 52, name foo > > I simply don't know what it means! What is a "node"? How does > that translate to a revision? Oops. A 'node' is our new developer-speak for "logical file or directory". 20547 is a meaningless number, that just happens to be the one your local mtn assigned to that particular file, to keep track of it through history. 52, similarly, is another meaningless number, the one that your monotone chose to use to track the directory that used to contain that file. The parent directory does not have a name, because it is dead. The orphaned file, however, does have a name; that name is "foo". It wanted to be <whatever the parent's name is>/foo, but it can't be. In principle it would be possible to figure out what the parent's name used to be, before it died -- the debugging command 'get_roster' might help with this -- if you can't otherwise figure out which file it is that's encountering problems. Once you've found the file that's encountering a conflict, you can (for instance) simply rename it somewhere safe in both parents (e.g., somewhere in the root dir), it should merge cleanly through after that[1], and then you can fix it up however you like after the merge. That's probably the most universally easy solution; there are likely other easy solutions available, but they depend more on what exactly you have now and want to get. Does that help? [1] Unless your two root dirs are actually different, which is _highly_ unlikely unless you've gone wild with pivot_root, or maybe if you're working with a history that had root sutures before you rosterified tt -- this situation would still be recoverable, but requires pulling out some bigger guns. -- Nathaniel -- "But in Middle-earth, the distinct accusative case disappeared from the speech of the Noldor (such things happen when you are busy fighting Orcs, Balrogs, and Dragons)." _______________________________________________ Monotone-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/monotone-devel
