How to handle copies.copies()

Frank A. Kingswood frank at kingswood-consulting.co.uk
Sat Sep 10 04:53:13 CDT 2011


Hi!

I'm currently using copies.copies (in the perfarce extension) to work out file copies, but have found a problem when moving a file.

The first value returned from copies.copies(), and the debug output is:

  searching for copies back to rev 57
  unmatched files in local:
   aa
  unmatched files in other:
   aaa
  all copies found (* = to merge, ! = divergent):
   aa -> a *
   aaa -> aa *
cpy={'aa': 'a', 'aaa': 'aa'}
add=[('aaa', '')]
rem=[('aa', '')]

Revision 57 did a hg mv aa aaa. The copy from a to aa or vice versa was some time in the past, and aa was deleted and re-added afterwards.
The add,rem values are from repo.status() and correctly indicate what happened.

My question is, how should I parse the copies() return value to determine this?

Regards,

Frank
-- 
------------------------------------------------------------------------
Frank A. Kingswood                      frank at kingswood-consulting.co.uk
Cambridge, United Kingdom                               +44-870-095 0000


More information about the Mercurial-devel mailing list