Mercurial > hg
comparison hgext/extdiff.py @ 6747:f6c00b17387c
use repo[changeid] to get a changectx
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 26 Jun 2008 14:35:46 -0500 |
parents | 41eb20cc1c02 |
children | 4faaa0535ea7 |
comparison
equal
deleted
inserted
replaced
6746:1dca460e7d1e | 6747:f6c00b17387c |
---|---|
50 from mercurial import cmdutil, util, commands | 50 from mercurial import cmdutil, util, commands |
51 import os, shlex, shutil, tempfile | 51 import os, shlex, shutil, tempfile |
52 | 52 |
53 def snapshot_node(ui, repo, files, node, tmproot): | 53 def snapshot_node(ui, repo, files, node, tmproot): |
54 '''snapshot files as of some revision''' | 54 '''snapshot files as of some revision''' |
55 mf = repo.changectx(node).manifest() | |
56 dirname = os.path.basename(repo.root) | 55 dirname = os.path.basename(repo.root) |
57 if dirname == "": | 56 if dirname == "": |
58 dirname = "root" | 57 dirname = "root" |
59 dirname = '%s.%s' % (dirname, short(node)) | 58 dirname = '%s.%s' % (dirname, short(node)) |
60 base = os.path.join(tmproot, dirname) | 59 base = os.path.join(tmproot, dirname) |
61 os.mkdir(base) | 60 os.mkdir(base) |
62 ui.note(_('making snapshot of %d files from rev %s\n') % | 61 ui.note(_('making snapshot of %d files from rev %s\n') % |
63 (len(files), short(node))) | 62 (len(files), short(node))) |
63 ctx = repo[node] | |
64 for fn in files: | 64 for fn in files: |
65 if not fn in mf: | 65 wfn = util.pconvert(fn) |
66 if not wfn in ctx: | |
66 # skipping new file after a merge ? | 67 # skipping new file after a merge ? |
67 continue | 68 continue |
68 wfn = util.pconvert(fn) | |
69 ui.note(' %s\n' % wfn) | 69 ui.note(' %s\n' % wfn) |
70 dest = os.path.join(base, wfn) | 70 dest = os.path.join(base, wfn) |
71 destdir = os.path.dirname(dest) | 71 destdir = os.path.dirname(dest) |
72 if not os.path.isdir(destdir): | 72 if not os.path.isdir(destdir): |
73 os.makedirs(destdir) | 73 os.makedirs(destdir) |
74 data = repo.wwritedata(wfn, repo.file(wfn).read(mf[wfn])) | 74 data = repo.wwritedata(wfn, ctx[wfn].data()) |
75 open(dest, 'wb').write(data) | 75 open(dest, 'wb').write(data) |
76 return dirname | 76 return dirname |
77 | 77 |
78 | 78 |
79 def snapshot_wdir(ui, repo, files, tmproot): | 79 def snapshot_wdir(ui, repo, files, tmproot): |