Mercurial > public > mercurial-scm > hg
diff hgext/mq.py @ 3699:4bafcf7aeb32
qrefresh: fix handling of added files (including copies) in the slow path
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Mon, 20 Nov 2006 19:32:42 -0200 |
parents | a9090b264250 |
children | 4c158de5f245 |
line wrap: on
line diff
--- a/hgext/mq.py Mon Nov 20 19:32:41 2006 -0200 +++ b/hgext/mq.py Mon Nov 20 19:32:42 2006 -0200 @@ -915,8 +915,11 @@ util.set_exec(repo.wjoin(f), mmap.execf(f)) repo.dirstate.update(m + r, 'n') for f in a: - try: os.unlink(repo.wjoin(f)) - except: raise + try: + os.unlink(repo.wjoin(f)) + except OSError, e: + if e.errno != errno.ENOENT: + raise try: os.removedirs(os.path.dirname(repo.wjoin(f))) except: pass if a: @@ -1061,6 +1064,19 @@ else: self.printdiff(repo, patchparent, fp=patchf) patchf.close() + added = repo.status()[1] + for a in added: + f = repo.wjoin(a) + try: + os.unlink(f) + except OSError, e: + if e.errno != errno.ENOENT: + raise + try: os.removedirs(os.path.dirname(f)) + except: pass + # forget the file copies in the dirstate + # push should readd the files later on + repo.dirstate.forget(added) self.pop(repo, force=True, wlock=wlock) self.push(repo, force=True, wlock=wlock)