##// END OF EJS Templates
Merge with Matt's tip.
Bryan O'Sullivan -
r725:c6b912f8 merge default
parent child Browse files
Show More
@@ -1,12 +1,13 b''
1 .*\.orig
1 \.orig$
2 .*\.rej
2 \.rej$
3 .*~
3 ~$
4 .*\.so
4 \.so$
5 .*pyc
5 \.pyc$
6 build/.*
6 \.swp$
7 dist/
7 ^build/
8 doc/.*\.[0-9]
8 ^dist/
9 MANIFEST$
9 ^doc/.*\.[0-9]$
10 .pc/
10 ^MANIFEST$
11 patches/
11 ^.pc/
12 mercurial/__version__.py$
12 ^patches/
13 ^mercurial/__version__.py$
@@ -65,7 +65,7 b' heads. Use "hg heads" to find the heads '
65
65
66 The 'tip' is the most recently changed head, and also the highest
66 The 'tip' is the most recently changed head, and also the highest
67 numbered revision. If you have just made a commit, that commit will be
67 numbered revision. If you have just made a commit, that commit will be
68 the head. Alternately, if you have just pulled from another
68 the tip. Alternately, if you have just pulled from another
69 repository, the tip of that repository becomes the current tip.
69 repository, the tip of that repository becomes the current tip.
70
70
71 The 'tip' is the default revision for many commands such as update,
71 The 'tip' is the default revision for many commands such as update,
@@ -152,7 +152,7 b' upstream repository. This works as a cac'
152 pull multiple copies over the network. No need to check files out here
152 pull multiple copies over the network. No need to check files out here
153 as you won't be changing them.
153 as you won't be changing them.
154
154
155 The outgoing tree contains all the changes you intend for merger into
155 The outgoing tree contains all the changes you intend for merge into
156 upsteam. Publish this tree with 'hg serve" or hgweb.cgi or use 'hg
156 upsteam. Publish this tree with 'hg serve" or hgweb.cgi or use 'hg
157 push" to push it to another publicly availabe repository.
157 push" to push it to another publicly availabe repository.
158
158
@@ -196,7 +196,7 b' process, which can then be added to our '
196
196
197 If you'd like to request a feature, send your request to
197 If you'd like to request a feature, send your request to
198 mercurial@selenic.com. As Mercurial is still very new, there are
198 mercurial@selenic.com. As Mercurial is still very new, there are
199 certainly features it is missing and you can give up feedback on how
199 certainly features it is missing and you can give us feedback on how
200 best to implement them.
200 best to implement them.
201
201
202
202
@@ -256,7 +256,7 b' 1 for objects like the manifest.'
256 A manifest is simply a list of all files in a given revision of a
256 A manifest is simply a list of all files in a given revision of a
257 project along with the nodeids of the corresponding file revisions. So
257 project along with the nodeids of the corresponding file revisions. So
258 grabbing a given version of the project means simply looking up its
258 grabbing a given version of the project means simply looking up its
259 manifest and reconstruction all the file revisions pointed to by it.
259 manifest and reconstructing all the file revisions pointed to by it.
260
260
261 A changeset is a list of all files changed in a check-in along with a
261 A changeset is a list of all files changed in a check-in along with a
262 change description and some metadata like user and date. It also
262 change description and some metadata like user and date. It also
@@ -352,7 +352,7 b' def addremove(ui, repo, *files):'
352 repo.add(u)
352 repo.add(u)
353 repo.remove(d)
353 repo.remove(d)
354
354
355 def annotate(u, repo, file1, *files, **ops):
355 def annotate(ui, repo, file1, *files, **opts):
356 """show changeset information per file line"""
356 """show changeset information per file line"""
357 def getnode(rev):
357 def getnode(rev):
358 return hg.short(repo.changelog.node(rev))
358 return hg.short(repo.changelog.node(rev))
@@ -374,12 +374,13 b' def annotate(u, repo, file1, *files, **o'
374
374
375 bcache = {}
375 bcache = {}
376 opmap = [['user', getname], ['number', str], ['changeset', getnode]]
376 opmap = [['user', getname], ['number', str], ['changeset', getnode]]
377 if not ops['user'] and not ops['changeset']:
377 if not opts['user'] and not opts['changeset']:
378 ops['number'] = 1
378 opts['number'] = 1
379
379
380 node = repo.dirstate.parents()[0]
380 if opts['rev']:
381 if ops['revision']:
381 node = repo.changelog.lookup(opts['rev'])
382 node = repo.changelog.lookup(ops['revision'])
382 else:
383 node = repo.dirstate.parents()[0]
383 change = repo.changelog.read(node)
384 change = repo.changelog.read(node)
384 mmap = repo.manifest.read(change[0])
385 mmap = repo.manifest.read(change[0])
385 for f in relpath(repo, (file1,) + files):
386 for f in relpath(repo, (file1,) + files):
@@ -387,13 +388,13 b' def annotate(u, repo, file1, *files, **o'
387 pieces = []
388 pieces = []
388
389
389 for o, f in opmap:
390 for o, f in opmap:
390 if ops[o]:
391 if opts[o]:
391 l = [f(n) for n, dummy in lines]
392 l = [f(n) for n, dummy in lines]
392 m = max(map(len, l))
393 m = max(map(len, l))
393 pieces.append(["%*s" % (m, x) for x in l])
394 pieces.append(["%*s" % (m, x) for x in l])
394
395
395 for p, l in zip(zip(*pieces), lines):
396 for p, l in zip(zip(*pieces), lines):
396 u.write(" ".join(p) + ": " + l[1])
397 ui.write("%s: %s" % (" ".join(p), l[1]))
397
398
398 def cat(ui, repo, file1, rev=None, **opts):
399 def cat(ui, repo, file1, rev=None, **opts):
399 """output the latest or given revision of a file"""
400 """output the latest or given revision of a file"""
@@ -576,6 +577,7 b' def doexport(ui, repo, changeset, seqno,'
576 outname = make_filename(repo, repo.changelog, opts['output'],
577 outname = make_filename(repo, repo.changelog, opts['output'],
577 node=node, total=total, seqno=seqno,
578 node=node, total=total, seqno=seqno,
578 revwidth=revwidth)
579 revwidth=revwidth)
580 ui.note("Exporting patch to '%s'.\n" % outname)
579 fp = open(outname, 'wb')
581 fp = open(outname, 'wb')
580 except KeyError, inst:
582 except KeyError, inst:
581 ui.warn("error: invalid format spec '%%%s' in output file name\n" %
583 ui.warn("error: invalid format spec '%%%s' in output file name\n" %
@@ -774,10 +776,10 b' def manifest(ui, repo, rev=None):'
774 for f in files:
776 for f in files:
775 ui.write("%40s %3s %s\n" % (hg.hex(m[f]), mf[f] and "755" or "644", f))
777 ui.write("%40s %3s %s\n" % (hg.hex(m[f]), mf[f] and "755" or "644", f))
776
778
777 def parents(ui, repo, node=None):
779 def parents(ui, repo, rev=None):
778 '''show the parents of the current working dir'''
780 """show the parents of the working dir or revision"""
779 if node:
781 if rev:
780 p = repo.changelog.parents(repo.lookup(hg.bin(node)))
782 p = repo.changelog.parents(repo.lookup(rev))
781 else:
783 else:
782 p = repo.dirstate.parents()
784 p = repo.dirstate.parents()
783
785
@@ -1032,9 +1034,8 b' def tag(ui, repo, name, rev=None, **opts'
1032 ui.status("(please commit .hgtags manually)\n")
1034 ui.status("(please commit .hgtags manually)\n")
1033 return -1
1035 return -1
1034
1036
1035 add = not os.path.exists(repo.wjoin(".hgtags"))
1036 repo.wfile(".hgtags", "ab").write("%s %s\n" % (r, name))
1037 repo.wfile(".hgtags", "ab").write("%s %s\n" % (r, name))
1037 if add:
1038 if repo.dirstate.state(".hgtags") == '?':
1038 repo.add([".hgtags"])
1039 repo.add([".hgtags"])
1039
1040
1040 if not opts['text']:
1041 if not opts['text']:
@@ -1100,53 +1101,53 b' table = {'
1100 "^add": (add,
1101 "^add": (add,
1101 [('I', 'include', [], 'include path in search'),
1102 [('I', 'include', [], 'include path in search'),
1102 ('X', 'exclude', [], 'exclude path from search')],
1103 ('X', 'exclude', [], 'exclude path from search')],
1103 "hg add [options] [files]"),
1104 "hg add [OPTIONS] [FILES]"),
1104 "addremove": (addremove, [], "hg addremove [files]"),
1105 "addremove": (addremove, [], "hg addremove [FILES]"),
1105 "^annotate":
1106 "^annotate":
1106 (annotate,
1107 (annotate,
1107 [('r', 'revision', '', 'revision'),
1108 [('r', 'rev', '', 'revision'),
1108 ('u', 'user', None, 'show user'),
1109 ('u', 'user', None, 'show user'),
1109 ('n', 'number', None, 'show revision number'),
1110 ('n', 'number', None, 'show revision number'),
1110 ('c', 'changeset', None, 'show changeset')],
1111 ('c', 'changeset', None, 'show changeset')],
1111 'hg annotate [-u] [-c] [-n] [-r id] [files]'),
1112 'hg annotate [-r REV] [-u] [-n] [-c] FILE...'),
1112 "cat":
1113 "cat":
1113 (cat,
1114 (cat,
1114 [('o', 'output', "", 'output to file')],
1115 [('o', 'output', "", 'output to file')],
1115 'hg cat [-o outfile] <file> [rev]'),
1116 'hg cat [-o OUTFILE] FILE [REV]'),
1116 "^clone":
1117 "^clone":
1117 (clone,
1118 (clone,
1118 [('U', 'noupdate', None, 'skip update after cloning')],
1119 [('U', 'noupdate', None, 'skip update after cloning')],
1119 'hg clone [options] <source> [dest]'),
1120 'hg clone [-U] SOURCE [DEST]'),
1120 "^commit|ci":
1121 "^commit|ci":
1121 (commit,
1122 (commit,
1122 [('t', 'text', "", 'commit text'),
1123 [('A', 'addremove', None, 'run add/remove during commit'),
1123 ('A', 'addremove', None, 'run add/remove during commit'),
1124 ('t', 'text', "", 'commit text'),
1124 ('l', 'logfile', "", 'commit text file'),
1125 ('l', 'logfile', "", 'commit text file'),
1125 ('d', 'date', "", 'date code'),
1126 ('d', 'date', "", 'date code'),
1126 ('u', 'user', "", 'user')],
1127 ('u', 'user', "", 'user')],
1127 'hg commit [files]'),
1128 'hg commit [OPTION]... [FILE]...'),
1128 "copy": (copy, [], 'hg copy <source> <dest>'),
1129 "copy": (copy, [], 'hg copy SOURCE DEST'),
1129 "debugcheckstate": (debugcheckstate, [], 'debugcheckstate'),
1130 "debugcheckstate": (debugcheckstate, [], 'debugcheckstate'),
1130 "debugstate": (debugstate, [], 'debugstate'),
1131 "debugstate": (debugstate, [], 'debugstate'),
1131 "debugindex": (debugindex, [], 'debugindex <file>'),
1132 "debugindex": (debugindex, [], 'debugindex FILE'),
1132 "debugindexdot": (debugindexdot, [], 'debugindexdot <file>'),
1133 "debugindexdot": (debugindexdot, [], 'debugindexdot FILE'),
1133 "^diff":
1134 "^diff":
1134 (diff,
1135 (diff,
1135 [('r', 'rev', [], 'revision')],
1136 [('r', 'rev', [], 'revision')],
1136 'hg diff [-r A] [-r B] [files]'),
1137 'hg diff [-r REV1 [-r REV2]] [FILE]...'),
1137 "^export":
1138 "^export":
1138 (export,
1139 (export,
1139 [('o', 'output', "", 'output to file')],
1140 [('o', 'output', "", 'output to file')],
1140 "hg export [-o file] <changeset> ..."),
1141 "hg export [-o OUTFILE] REV..."),
1141 "forget": (forget, [], "hg forget [files]"),
1142 "forget": (forget, [], "hg forget FILE..."),
1142 "heads": (heads, [], 'hg heads'),
1143 "heads": (heads, [], 'hg heads'),
1143 "help": (help_, [], 'hg help [command]'),
1144 "help": (help_, [], 'hg help [COMMAND]'),
1144 "identify|id": (identify, [], 'hg identify'),
1145 "identify|id": (identify, [], 'hg identify'),
1145 "import|patch":
1146 "import|patch":
1146 (import_,
1147 (import_,
1147 [('p', 'strip', 1, 'path strip'),
1148 [('p', 'strip', 1, 'path strip'),
1148 ('b', 'base', "", 'base path')],
1149 ('b', 'base', "", 'base path')],
1149 "hg import [options] <patches>"),
1150 "hg import [-p NUM] [-b BASE] PATCH..."),
1150 "^init": (init, [], 'hg init'),
1151 "^init": (init, [], 'hg init'),
1151 "locate":
1152 "locate":
1152 (locate,
1153 (locate,
@@ -1155,19 +1156,19 b' table = {'
1155 ('I', 'include', [], 'include path in search'),
1156 ('I', 'include', [], 'include path in search'),
1156 ('r', 'rev', '', 'revision'),
1157 ('r', 'rev', '', 'revision'),
1157 ('X', 'exclude', [], 'exclude path from search')],
1158 ('X', 'exclude', [], 'exclude path from search')],
1158 'hg locate [options] [files]'),
1159 'hg locate [OPTION]... [PATTERN]...'),
1159 "^log|history":
1160 "^log|history":
1160 (log,
1161 (log,
1161 [('r', 'rev', [], 'revision'),
1162 [('r', 'rev', [], 'revision'),
1162 ('p', 'patch', None, 'show patch')],
1163 ('p', 'patch', None, 'show patch')],
1163 'hg log [-r A] [-r B] [-p] [file]'),
1164 'hg log [-r REV1 [-r REV2]] [-p] [FILE]'),
1164 "manifest": (manifest, [], 'hg manifest [rev]'),
1165 "manifest": (manifest, [], 'hg manifest [REV]'),
1165 "parents": (parents, [], 'hg parents [node]'),
1166 "parents": (parents, [], 'hg parents [REV]'),
1166 "^pull":
1167 "^pull":
1167 (pull,
1168 (pull,
1168 [('u', 'update', None, 'update working directory')],
1169 [('u', 'update', None, 'update working directory')],
1169 'hg pull [options] [source]'),
1170 'hg pull [-u] [SOURCE]'),
1170 "^push": (push, [], 'hg push <destination>'),
1171 "^push": (push, [], 'hg push [DEST]'),
1171 "rawcommit":
1172 "rawcommit":
1172 (rawcommit,
1173 (rawcommit,
1173 [('p', 'parent', [], 'parent'),
1174 [('p', 'parent', [], 'parent'),
@@ -1176,14 +1177,14 b' table = {'
1176 ('F', 'files', "", 'file list'),
1177 ('F', 'files', "", 'file list'),
1177 ('t', 'text', "", 'commit text'),
1178 ('t', 'text', "", 'commit text'),
1178 ('l', 'logfile', "", 'commit text file')],
1179 ('l', 'logfile', "", 'commit text file')],
1179 'hg rawcommit [options] [files]'),
1180 'hg rawcommit [OPTION]... [FILE]...'),
1180 "recover": (recover, [], "hg recover"),
1181 "recover": (recover, [], "hg recover"),
1181 "^remove|rm": (remove, [], "hg remove [files]"),
1182 "^remove|rm": (remove, [], "hg remove FILE..."),
1182 "^revert":
1183 "^revert":
1183 (revert,
1184 (revert,
1184 [("n", "nonrecursive", None, "don't recurse into subdirs"),
1185 [("n", "nonrecursive", None, "don't recurse into subdirs"),
1185 ("r", "rev", "", "revision")],
1186 ("r", "rev", "", "revision")],
1186 "hg revert [files|dirs]"),
1187 "hg revert [-n] [-r REV] NAME..."),
1187 "root": (root, [], "hg root"),
1188 "root": (root, [], "hg root"),
1188 "^serve":
1189 "^serve":
1189 (serve,
1190 (serve,
@@ -1194,7 +1195,7 b' table = {'
1194 ('n', 'name', os.getcwd(), 'repository name'),
1195 ('n', 'name', os.getcwd(), 'repository name'),
1195 ('', 'stdio', None, 'for remote clients'),
1196 ('', 'stdio', None, 'for remote clients'),
1196 ('t', 'templates', "", 'template map')],
1197 ('t', 'templates', "", 'template map')],
1197 "hg serve [options]"),
1198 "hg serve [OPTION]..."),
1198 "^status": (status, [], 'hg status'),
1199 "^status": (status, [], 'hg status'),
1199 "tag":
1200 "tag":
1200 (tag,
1201 (tag,
@@ -1202,7 +1203,7 b' table = {'
1202 ('t', 'text', "", 'commit text'),
1203 ('t', 'text', "", 'commit text'),
1203 ('d', 'date', "", 'date code'),
1204 ('d', 'date', "", 'date code'),
1204 ('u', 'user', "", 'user')],
1205 ('u', 'user', "", 'user')],
1205 'hg tag [options] <name> [rev]'),
1206 'hg tag [OPTION]... NAME [REV]'),
1206 "tags": (tags, [], 'hg tags'),
1207 "tags": (tags, [], 'hg tags'),
1207 "tip": (tip, [], 'hg tip'),
1208 "tip": (tip, [], 'hg tip'),
1208 "undo": (undo, [], 'hg undo'),
1209 "undo": (undo, [], 'hg undo'),
@@ -1210,7 +1211,7 b' table = {'
1210 (update,
1211 (update,
1211 [('m', 'merge', None, 'allow merging of conflicts'),
1212 [('m', 'merge', None, 'allow merging of conflicts'),
1212 ('C', 'clean', None, 'overwrite locally modified files')],
1213 ('C', 'clean', None, 'overwrite locally modified files')],
1213 'hg update [options] [node]'),
1214 'hg update [-m] [-C] [REV]'),
1214 "verify": (verify, [], 'hg verify'),
1215 "verify": (verify, [], 'hg verify'),
1215 "version": (show_version, [], 'hg version'),
1216 "version": (show_version, [], 'hg version'),
1216 }
1217 }
@@ -216,7 +216,8 b' class manifest(revlog):'
216 # item not found, insert a new one
216 # item not found, insert a new one
217 end = bs
217 end = bs
218 if w[1] == 1:
218 if w[1] == 1:
219 sys.stderr.write("failed to remove %s from manifest" % f)
219 sys.stderr.write("failed to remove %s from manifest\n"
220 % f)
220 sys.exit(1)
221 sys.exit(1)
221 else:
222 else:
222 # item is found, replace/delete the existing line
223 # item is found, replace/delete the existing line
@@ -231,7 +232,7 b' class manifest(revlog):'
231
232
232 text = "".join(self.addlist)
233 text = "".join(self.addlist)
233 if cachedelta and mdiff.patch(self.listcache[0], cachedelta) != text:
234 if cachedelta and mdiff.patch(self.listcache[0], cachedelta) != text:
234 sys.stderr.write("manifest delta failure")
235 sys.stderr.write("manifest delta failure\n")
235 sys.exit(1)
236 sys.exit(1)
236 n = self.addrevision(text, transaction, link, p1, p2, cachedelta)
237 n = self.addrevision(text, transaction, link, p1, p2, cachedelta)
237 self.mapcache = (n, map, flags)
238 self.mapcache = (n, map, flags)
@@ -7,7 +7,7 b' filedifflink = "<a href="?cmd=filediff;n'
7 filenodelink = "<a href="?cmd=file;filenode=#filenode#;file=#file#">#file#</a> "
7 filenodelink = "<a href="?cmd=file;filenode=#filenode#;file=#file#">#file#</a> "
8 fileellipses = "..."
8 fileellipses = "..."
9 changelogentry = changelogentry.tmpl
9 changelogentry = changelogentry.tmpl
10 searchentry = searchentry.tmpl
10 searchentry = changelogentry.tmpl
11 changeset = changeset.tmpl
11 changeset = changeset.tmpl
12 manifest = manifest.tmpl
12 manifest = manifest.tmpl
13 manifestdirentry = "<tr class="parity#parity#"><td><tt>drwxr-xr-x</tt>&nbsp;<td><a href="?cmd=manifest;manifest=#manifest#;path=#path#">#basename#/</a>"
13 manifestdirentry = "<tr class="parity#parity#"><td><tt>drwxr-xr-x</tt>&nbsp;<td><a href="?cmd=manifest;manifest=#manifest#;path=#path#">#basename#/</a>"
@@ -33,14 +33,14 b' basic hg commands (use "hg help -v" for '
33 status show changed files in the working directory
33 status show changed files in the working directory
34 update update or merge working directory
34 update update or merge working directory
35 hg add: option -h not recognized
35 hg add: option -h not recognized
36 hg add [files]
36 hg add FILE...
37
37
38 add the specified files on the next commit
38 add the specified files on the next commit
39 hg add: option --skjdfks not recognized
39 hg add: option --skjdfks not recognized
40 hg add [files]
40 hg add FILE...
41
41
42 add the specified files on the next commit
42 add the specified files on the next commit
43 hg diff [-r A] [-r B] [files]
43 hg diff [-r REV1 [-r REV2]] [FILE]...
44
44
45 -r --rev
45 -r --rev
46 revision
46 revision
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now