equal
deleted
inserted
replaced
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)) |