Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 1571:bcdc030c59f8
add a --switch-parent option to export against the other parent
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Wed, 14 Dec 2005 21:01:57 -0600 |
parents | 6a104941d56a |
children | db10b7114de0 |
comparison
equal
deleted
inserted
replaced
1570:6a104941d56a | 1571:bcdc030c59f8 |
---|---|
1122 dodiff(sys.stdout, ui, repo, node1, node2, fns, match=matchfn, | 1122 dodiff(sys.stdout, ui, repo, node1, node2, fns, match=matchfn, |
1123 text=opts['text']) | 1123 text=opts['text']) |
1124 | 1124 |
1125 def doexport(ui, repo, changeset, seqno, total, revwidth, opts): | 1125 def doexport(ui, repo, changeset, seqno, total, revwidth, opts): |
1126 node = repo.lookup(changeset) | 1126 node = repo.lookup(changeset) |
1127 prev, other = repo.changelog.parents(node) | 1127 parents = [p for p in repo.changelog.parents(node) if p != nullid] |
1128 prev = (parents and parents[0]) or nullid | |
1128 change = repo.changelog.read(node) | 1129 change = repo.changelog.read(node) |
1129 | 1130 |
1131 if opts['switch_parent']: | |
1132 parents.reverse() | |
1130 fp = make_file(repo, repo.changelog, opts['output'], | 1133 fp = make_file(repo, repo.changelog, opts['output'], |
1131 node=node, total=total, seqno=seqno, | 1134 node=node, total=total, seqno=seqno, |
1132 revwidth=revwidth) | 1135 revwidth=revwidth) |
1133 if fp != sys.stdout: | 1136 if fp != sys.stdout: |
1134 ui.note("%s\n" % fp.name) | 1137 ui.note("%s\n" % fp.name) |
1135 | 1138 |
1136 fp.write("# HG changeset patch\n") | 1139 fp.write("# HG changeset patch\n") |
1137 fp.write("# User %s\n" % change[1]) | 1140 fp.write("# User %s\n" % change[1]) |
1138 fp.write("# Node ID %s\n" % hex(node)) | 1141 fp.write("# Node ID %s\n" % hex(node)) |
1139 fp.write("# Parent %s\n" % hex(prev)) | 1142 fp.write("# Parent %s\n" % hex(prev)) |
1140 if other != nullid: | 1143 if len(parents) > 1: |
1141 fp.write("# Parent %s\n" % hex(other)) | 1144 fp.write("# Parent %s\n" % hex(parents[1])) |
1142 fp.write(change[4].rstrip()) | 1145 fp.write(change[4].rstrip()) |
1143 fp.write("\n\n") | 1146 fp.write("\n\n") |
1144 | 1147 |
1145 dodiff(fp, ui, repo, prev, node, text=opts['text']) | 1148 dodiff(fp, ui, repo, prev, node, text=opts['text']) |
1146 if fp != sys.stdout: | 1149 if fp != sys.stdout: |
1167 %r zero-padded changeset revision number | 1170 %r zero-padded changeset revision number |
1168 | 1171 |
1169 Without the -a option, export will avoid generating diffs of files | 1172 Without the -a option, export will avoid generating diffs of files |
1170 it detects as binary. With -a, export will generate a diff anyway, | 1173 it detects as binary. With -a, export will generate a diff anyway, |
1171 probably with undesirable results. | 1174 probably with undesirable results. |
1175 | |
1176 With the --switch-parent option, the diff will be against the second | |
1177 parent. It can be useful to review a merge. | |
1172 """ | 1178 """ |
1173 if not changesets: | 1179 if not changesets: |
1174 raise util.Abort(_("export requires at least one changeset")) | 1180 raise util.Abort(_("export requires at least one changeset")) |
1175 seqno = 0 | 1181 seqno = 0 |
1176 revs = list(revrange(ui, repo, changesets)) | 1182 revs = list(revrange(ui, repo, changesets)) |
2261 ('X', 'exclude', [], _('exclude names matching the given patterns'))], | 2267 ('X', 'exclude', [], _('exclude names matching the given patterns'))], |
2262 _('hg diff [-a] [-I] [-X] [-r REV1 [-r REV2]] [FILE]...')), | 2268 _('hg diff [-a] [-I] [-X] [-r REV1 [-r REV2]] [FILE]...')), |
2263 "^export": | 2269 "^export": |
2264 (export, | 2270 (export, |
2265 [('o', 'output', "", _('print output to file with formatted name')), | 2271 [('o', 'output', "", _('print output to file with formatted name')), |
2266 ('a', 'text', None, _('treat all files as text'))], | 2272 ('a', 'text', None, _('treat all files as text')), |
2273 ('', 'switch-parent', None, _('diff against the second parent'))], | |
2267 "hg export [-a] [-o OUTFILE] REV..."), | 2274 "hg export [-a] [-o OUTFILE] REV..."), |
2268 "forget": | 2275 "forget": |
2269 (forget, | 2276 (forget, |
2270 [('I', 'include', [], _('include names matching the given patterns')), | 2277 [('I', 'include', [], _('include names matching the given patterns')), |
2271 ('X', 'exclude', [], _('exclude names matching the given patterns'))], | 2278 ('X', 'exclude', [], _('exclude names matching the given patterns'))], |