Mercurial > hg > mercurial-crew-with-dirclash
comparison hgext/mq.py @ 5140:f6c520fd70cf
mq: teach qpop about symlinks
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Thu, 09 Aug 2007 20:16:00 -0700 |
parents | 06154aff2b1a |
children | f8aa16533ddf |
comparison
equal
deleted
inserted
replaced
5139:49554ba98951 | 5140:f6c520fd70cf |
---|---|
808 return ret[0] | 808 return ret[0] |
809 finally: | 809 finally: |
810 del wlock | 810 del wlock |
811 | 811 |
812 def pop(self, repo, patch=None, force=False, update=True, all=False): | 812 def pop(self, repo, patch=None, force=False, update=True, all=False): |
813 def getfile(f, rev): | 813 def getfile(f, rev, flags): |
814 t = repo.file(f).read(rev) | 814 t = repo.file(f).read(rev) |
815 repo.wfile(f, "w").write(t) | 815 repo.wwrite(f, t, flags) |
816 | 816 |
817 wlock = repo.wlock() | 817 wlock = repo.wlock() |
818 try: | 818 try: |
819 if patch: | 819 if patch: |
820 # index, rev, patch | 820 # index, rev, patch |
868 mmap = repo.manifest.read(changes[0]) | 868 mmap = repo.manifest.read(changes[0]) |
869 m, a, r, d, u = repo.status(qp, top)[:5] | 869 m, a, r, d, u = repo.status(qp, top)[:5] |
870 if d: | 870 if d: |
871 raise util.Abort("deletions found between repo revs") | 871 raise util.Abort("deletions found between repo revs") |
872 for f in m: | 872 for f in m: |
873 getfile(f, mmap[f]) | 873 getfile(f, mmap[f], mmap.flags(f)) |
874 for f in r: | 874 for f in r: |
875 getfile(f, mmap[f]) | 875 getfile(f, mmap[f], mmap.flags(f)) |
876 util.set_exec(repo.wjoin(f), mmap.execf(f)) | |
877 for f in m + r: | 876 for f in m + r: |
878 repo.dirstate.normal(f) | 877 repo.dirstate.normal(f) |
879 for f in a: | 878 for f in a: |
880 try: | 879 try: |
881 os.unlink(repo.wjoin(f)) | 880 os.unlink(repo.wjoin(f)) |