##// END OF EJS Templates
mq: qpop: remove added files before re-adding removed files...
Nicolas Dumazet -
r10048:46de82e5 stable
parent child Browse files
Show More
@@ -1096,12 +1096,6 b' class queue(object):'
1096 m, a, r, d = repo.status(qp, top)[:4]
1096 m, a, r, d = repo.status(qp, top)[:4]
1097 if d:
1097 if d:
1098 raise util.Abort(_("deletions found between repo revs"))
1098 raise util.Abort(_("deletions found between repo revs"))
1099 for f in m:
1100 getfile(f, mmap[f], mmap.flags(f))
1101 for f in r:
1102 getfile(f, mmap[f], mmap.flags(f))
1103 for f in m + r:
1104 repo.dirstate.normal(f)
1105 for f in a:
1099 for f in a:
1106 try:
1100 try:
1107 os.unlink(repo.wjoin(f))
1101 os.unlink(repo.wjoin(f))
@@ -1111,6 +1105,12 b' class queue(object):'
1111 try: os.removedirs(os.path.dirname(repo.wjoin(f)))
1105 try: os.removedirs(os.path.dirname(repo.wjoin(f)))
1112 except: pass
1106 except: pass
1113 repo.dirstate.forget(f)
1107 repo.dirstate.forget(f)
1108 for f in m:
1109 getfile(f, mmap[f], mmap.flags(f))
1110 for f in r:
1111 getfile(f, mmap[f], mmap.flags(f))
1112 for f in m + r:
1113 repo.dirstate.normal(f)
1114 repo.dirstate.setparents(qp, nullid)
1114 repo.dirstate.setparents(qp, nullid)
1115 for patch in reversed(self.applied[start:end]):
1115 for patch in reversed(self.applied[start:end]):
1116 self.ui.status(_("popping %s\n") % patch.name)
1116 self.ui.status(_("popping %s\n") % patch.name)
@@ -561,3 +561,23 b' echo % test popping revisions not in wor'
561 hg qseries -v
561 hg qseries -v
562 hg up qparent
562 hg up qparent
563 hg qpop
563 hg qpop
564
565 cd ..
566 hg init deletion-order
567 cd deletion-order
568
569 touch a
570 hg ci -Aqm0
571
572 hg qnew rename-dir
573 hg rm a
574 hg qrefresh
575
576 mkdir a b
577 touch a/a b/b
578 hg add -q a b
579 hg qrefresh
580
581 echo % test popping must remove files added in subdirectories first
582 hg qpop
583 cd ..
@@ -612,3 +612,6 b' 0 A empty'
612 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
612 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
613 popping empty
613 popping empty
614 patch queue now empty
614 patch queue now empty
615 % test popping must remove files added in subdirectories first
616 popping rename-dir
617 patch queue now empty
General Comments 0
You need to be logged in to leave comments. Login now