mercurial/commands.py
changeset 11331 997ab9af81df
parent 11321 40c06bbf58be
child 11336 3dfbe26cfded
--- a/mercurial/commands.py	Thu Jun 10 09:32:19 2010 -0700
+++ b/mercurial/commands.py	Wed Jun 09 16:39:25 2010 -0500
@@ -3307,6 +3307,19 @@
 
     st = list(repo.status(unknown=True))[:6]
 
+    c = repo.dirstate.copies()
+    copied, renamed = [], []
+    for d, s in c.iteritems():
+        if s in st[2]:
+            st[2].remove(s)
+            renamed.append(d)
+        else:
+            copied.append(d)
+        if d in st[1]:
+            st[1].remove(d)
+    st.insert(3, renamed)
+    st.insert(4, copied)
+
     ms = mergemod.mergestate(repo)
     st.append([f for f in ms if ms[f] == 'u'])
 
@@ -3316,6 +3329,8 @@
     labels = [ui.label(_('%d modified'), 'status.modified'),
               ui.label(_('%d added'), 'status.added'),
               ui.label(_('%d removed'), 'status.removed'),
+              ui.label(_('%d renamed'), 'status.copied'),
+              ui.label(_('%d copied'), 'status.copied'),
               ui.label(_('%d deleted'), 'status.deleted'),
               ui.label(_('%d unknown'), 'status.unknown'),
               ui.label(_('%d ignored'), 'status.ignored'),
@@ -3336,7 +3351,7 @@
     elif (parents[0].extra().get('close') and
           pnode in repo.branchheads(branch, closed=True)):
         t += _(' (head closed)')
-    elif (not st[0] and not st[1] and not st[2] and not st[7]):
+    elif not (st[0] or st[1] or st[2] or st[3] or st[4] or st[9]):
         t += _(' (clean)')
         cleanworkdir = True
     elif pnode not in bheads: