monotone-devel
[Top][All Lists]
Advanced

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

[Monotone-devel] Re: propagate failure: usage constaint


From: graydon hoare
Subject: [Monotone-devel] Re: propagate failure: usage constaint
Date: Wed, 26 May 2004 19:32:31 -0400
User-agent: Mozilla Thunderbird 0.5 (X11/20040208)

Peter Simons wrote:
When trying to propagate the changes made in one branch to
another, I get the following error:

  monotone: matched 5 del/add pairs as deltas
  monotone: file sets 'left adds' and 'right dels' do not intersect
  monotone: file sets 'left dels' and 'right adds' do not intersect
  monotone: file sets 'left move sources' and 'right adds' do not intersect
  monotone: file sets 'left adds' and 'right move sources' do not intersect
  monotone: file sets 'left move sources' and 'right dels' do not intersect
  monotone: file sets 'left dels' and 'right move sources' do not intersect
  monotone: conflict: file sets 'left move sources' and 'right deltas' intersect
  monotone: commands.cc:562: usage constraint 'N(merge3(ancestor_map, left_map, 
right_map, app, merger, merged_map, left_renames.mapping, 
right_renames.mapping))' violated
  monotone: db.execute("ROLLBACK")
  monotone: misuse: failed to 3-way merge manifests 
73675ed451bf404b83dca9c7b302f504740b6a07 and 
7d0968adbf00b12e0b1400cbfa1f1af617ab4583 via ancestor 
47cc4f6a2761d7c1f11fa8200444b2484f0f9fcf

Can anyone give me a hint how to fix this?

sure. tree layout merging is immature. it's complaining that you have a delta on one edge applying to a file which was moved on another edge. this is considered a tree layout conflict (possibly incorrectly; I wrote a pretty much ad-hoc selection of conditions which count as tree layout conflicts).

your options for correcting it are either:

 - look at "monotone diff 47cc 7d09" and
           "monotone diff 47cc 7367"
   and try to work out which delta and move are conflicting,
   then move the file to its old location, merge, and move it back.

 - insert some new logic before the conflict detection phase
   (around diff_patch.cc:1110) to change the delta to apply to the
   new filename.

 - remark at how this seems like a fundamental missing feature, then
   pause for a while, while I go and implement it myself :(

-graydon




reply via email to

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