Show More
@@ -9,7 +9,7 from demandload import demandload | |||||
9 | demandload(globals(), "os re sys signal shutil") |
|
9 | demandload(globals(), "os re sys signal shutil") | |
10 | demandload(globals(), "fancyopts ui hg util") |
|
10 | demandload(globals(), "fancyopts ui hg util") | |
11 | demandload(globals(), "fnmatch hgweb mdiff random signal time traceback") |
|
11 | demandload(globals(), "fnmatch hgweb mdiff random signal time traceback") | |
12 | demandload(globals(), "errno socket version struct") |
|
12 | demandload(globals(), "errno socket version struct atexit") | |
13 |
|
13 | |||
14 | class UnknownCommand(Exception): |
|
14 | class UnknownCommand(Exception): | |
15 | """Exception raised if command is not in the command table.""" |
|
15 | """Exception raised if command is not in the command table.""" | |
@@ -217,24 +217,30 def show_changeset(ui, repo, rev=0, chan | |||||
217 |
|
217 | |||
218 | changes = changelog.read(changenode) |
|
218 | changes = changelog.read(changenode) | |
219 |
|
219 | |||
220 |
parents = [(log.rev(p |
|
220 | parents = [(log.rev(p), ui.verbose and hg.hex(p) or hg.short(p)) | |
221 |
for p |
|
221 | for p in log.parents(node) | |
222 |
if ui.debugflag or p |
|
222 | if ui.debugflag or p != hg.nullid] | |
223 | if not ui.debugflag and len(parents) == 1 and parents[0][0] == rev-1: |
|
223 | if not ui.debugflag and len(parents) == 1 and parents[0][0] == rev-1: | |
224 | parents = [] |
|
224 | parents = [] | |
225 |
|
225 | |||
|
226 | if ui.verbose: | |||
226 | ui.write("changeset: %d:%s\n" % (changerev, hg.hex(changenode))) |
|
227 | ui.write("changeset: %d:%s\n" % (changerev, hg.hex(changenode))) | |
|
228 | else: | |||
|
229 | ui.write("changeset: %d:%s\n" % (changerev, hg.short(changenode))) | |||
|
230 | ||||
227 | for tag in repo.nodetags(changenode): |
|
231 | for tag in repo.nodetags(changenode): | |
228 | ui.status("tag: %s\n" % tag) |
|
232 | ui.status("tag: %s\n" % tag) | |
229 | for parent in parents: |
|
233 | for parent in parents: | |
230 | ui.write("parent: %d:%s\n" % parent) |
|
234 | ui.write("parent: %d:%s\n" % parent) | |
231 | if filelog: |
|
235 | if filelog: | |
232 | ui.debug("file rev: %d:%s\n" % (filerev, hg.hex(filenode))) |
|
236 | ui.debug("file rev: %d:%s\n" % (filerev, hg.hex(filenode))) | |
233 | ui.note("manifest: %d:%s\n" % (repo.manifest.rev(changes[0]), |
|
237 | ||
|
238 | ui.debug("manifest: %d:%s\n" % (repo.manifest.rev(changes[0]), | |||
234 | hg.hex(changes[0]))) |
|
239 | hg.hex(changes[0]))) | |
235 | ui.status("user: %s\n" % changes[1]) |
|
240 | ui.status("user: %s\n" % changes[1]) | |
236 | ui.status("date: %s\n" % time.asctime( |
|
241 | ui.status("date: %s\n" % time.asctime( | |
237 | time.localtime(float(changes[2].split(' ')[0])))) |
|
242 | time.localtime(float(changes[2].split(' ')[0])))) | |
|
243 | ||||
238 | if ui.debugflag: |
|
244 | if ui.debugflag: | |
239 | files = repo.changes(changelog.parents(changenode)[0], changenode) |
|
245 | files = repo.changes(changelog.parents(changenode)[0], changenode) | |
240 | for key, value in zip(["files:", "files+:", "files-:"], files): |
|
246 | for key, value in zip(["files:", "files+:", "files-:"], files): | |
@@ -242,6 +248,7 def show_changeset(ui, repo, rev=0, chan | |||||
242 | ui.note("%-12s %s\n" % (key, " ".join(value))) |
|
248 | ui.note("%-12s %s\n" % (key, " ".join(value))) | |
243 | else: |
|
249 | else: | |
244 | ui.note("files: %s\n" % " ".join(changes[3])) |
|
250 | ui.note("files: %s\n" % " ".join(changes[3])) | |
|
251 | ||||
245 | description = changes[4].strip() |
|
252 | description = changes[4].strip() | |
246 | if description: |
|
253 | if description: | |
247 | if ui.verbose: |
|
254 | if ui.verbose: | |
@@ -379,15 +386,21 def annotate(ui, repo, *pats, **opts): | |||||
379 | change = repo.changelog.read(node) |
|
386 | change = repo.changelog.read(node) | |
380 | mmap = repo.manifest.read(change[0]) |
|
387 | mmap = repo.manifest.read(change[0]) | |
381 | for src, abs, rel in walk(repo, pats, opts): |
|
388 | for src, abs, rel in walk(repo, pats, opts): | |
|
389 | if abs not in mmap: | |||
|
390 | ui.warn("warning: %s is not in the repository!\n" % rel) | |||
|
391 | continue | |||
|
392 | ||||
382 | lines = repo.file(abs).annotate(mmap[abs]) |
|
393 | lines = repo.file(abs).annotate(mmap[abs]) | |
383 | pieces = [] |
|
394 | pieces = [] | |
384 |
|
395 | |||
385 | for o, f in opmap: |
|
396 | for o, f in opmap: | |
386 | if opts[o]: |
|
397 | if opts[o]: | |
387 | l = [f(n) for n, dummy in lines] |
|
398 | l = [f(n) for n, dummy in lines] | |
|
399 | if l: | |||
388 | m = max(map(len, l)) |
|
400 | m = max(map(len, l)) | |
389 | pieces.append(["%*s" % (m, x) for x in l]) |
|
401 | pieces.append(["%*s" % (m, x) for x in l]) | |
390 |
|
402 | |||
|
403 | if pieces: | |||
391 | for p, l in zip(zip(*pieces), lines): |
|
404 | for p, l in zip(zip(*pieces), lines): | |
392 | ui.write("%s: %s" % (" ".join(p), l[1])) |
|
405 | ui.write("%s: %s" % (" ".join(p), l[1])) | |
393 |
|
406 | |||
@@ -767,6 +780,19 def parents(ui, repo, rev=None): | |||||
767 | if n != hg.nullid: |
|
780 | if n != hg.nullid: | |
768 | show_changeset(ui, repo, changenode=n) |
|
781 | show_changeset(ui, repo, changenode=n) | |
769 |
|
782 | |||
|
783 | def paths(ui, repo, search = None): | |||
|
784 | """show path or list of available paths""" | |||
|
785 | if search: | |||
|
786 | for name, path in ui.configitems("paths"): | |||
|
787 | if name == search: | |||
|
788 | ui.write("%s\n" % path) | |||
|
789 | return | |||
|
790 | ui.warn("not found!\n") | |||
|
791 | return 1 | |||
|
792 | else: | |||
|
793 | for name, path in ui.configitems("paths"): | |||
|
794 | ui.write("%s = %s\n" % (name, path)) | |||
|
795 | ||||
770 | def pull(ui, repo, source="default", **opts): |
|
796 | def pull(ui, repo, source="default", **opts): | |
771 | """pull changes from the specified source""" |
|
797 | """pull changes from the specified source""" | |
772 | source = ui.expandpath(source) |
|
798 | source = ui.expandpath(source) | |
@@ -1155,6 +1181,7 table = { | |||||
1155 | 'hg log [-r REV1 [-r REV2]] [-p] [FILE]'), |
|
1181 | 'hg log [-r REV1 [-r REV2]] [-p] [FILE]'), | |
1156 | "manifest": (manifest, [], 'hg manifest [REV]'), |
|
1182 | "manifest": (manifest, [], 'hg manifest [REV]'), | |
1157 | "parents": (parents, [], 'hg parents [REV]'), |
|
1183 | "parents": (parents, [], 'hg parents [REV]'), | |
|
1184 | "paths": (paths, [], 'hg paths [name]'), | |||
1158 | "^pull": |
|
1185 | "^pull": | |
1159 | (pull, |
|
1186 | (pull, | |
1160 | [('u', 'update', None, 'update working directory')], |
|
1187 | [('u', 'update', None, 'update working directory')], | |
@@ -1220,6 +1247,7 globalopts = [('v', 'verbose', None, 've | |||||
1220 | ('', 'traceback', None, 'print traceback on exception'), |
|
1247 | ('', 'traceback', None, 'print traceback on exception'), | |
1221 | ('y', 'noninteractive', None, 'run non-interactively'), |
|
1248 | ('y', 'noninteractive', None, 'run non-interactively'), | |
1222 | ('', 'version', None, 'output version information and exit'), |
|
1249 | ('', 'version', None, 'output version information and exit'), | |
|
1250 | ('', 'time', None, 'time how long the command takes'), | |||
1223 | ] |
|
1251 | ] | |
1224 |
|
1252 | |||
1225 | norepo = "clone init version help debugindex debugindexdot" |
|
1253 | norepo = "clone init version help debugindex debugindexdot" | |
@@ -1303,6 +1331,20 def dispatch(args): | |||||
1303 | help_(u) |
|
1331 | help_(u) | |
1304 | sys.exit(1) |
|
1332 | sys.exit(1) | |
1305 |
|
1333 | |||
|
1334 | if options["time"]: | |||
|
1335 | def get_times(): | |||
|
1336 | t = os.times() | |||
|
1337 | if t[4] == 0.0: # Windows leaves this as zero, so use time.clock() | |||
|
1338 | t = (t[0], t[1], t[2], t[3], time.clock()) | |||
|
1339 | return t | |||
|
1340 | s = get_times() | |||
|
1341 | def print_time(): | |||
|
1342 | t = get_times() | |||
|
1343 | u = ui.ui() | |||
|
1344 | u.warn("Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n" % | |||
|
1345 | (t[4]-s[4], t[0]-s[0], t[2]-s[2], t[1]-s[1], t[3]-s[3])) | |||
|
1346 | atexit.register(print_time) | |||
|
1347 | ||||
1306 | u = ui.ui(options["verbose"], options["debug"], options["quiet"], |
|
1348 | u = ui.ui(options["verbose"], options["debug"], options["quiet"], | |
1307 | not options["noninteractive"]) |
|
1349 | not options["noninteractive"]) | |
1308 |
|
1350 | |||
@@ -1343,7 +1385,7 def dispatch(args): | |||||
1343 | if hasattr(inst, "code"): |
|
1385 | if hasattr(inst, "code"): | |
1344 | u.warn("abort: %s\n" % inst) |
|
1386 | u.warn("abort: %s\n" % inst) | |
1345 | elif hasattr(inst, "reason"): |
|
1387 | elif hasattr(inst, "reason"): | |
1346 |
u.warn("abort: error |
|
1388 | u.warn("abort: error: %s\n" % inst.reason[1]) | |
1347 | elif hasattr(inst, "args") and inst[0] == errno.EPIPE: |
|
1389 | elif hasattr(inst, "args") and inst[0] == errno.EPIPE: | |
1348 | if u.debugflag: u.warn("broken pipe\n") |
|
1390 | if u.debugflag: u.warn("broken pipe\n") | |
1349 | else: |
|
1391 | else: |
@@ -16,8 +16,22 demandload(globals(), "bisect select") | |||||
16 | class filelog(revlog): |
|
16 | class filelog(revlog): | |
17 | def __init__(self, opener, path): |
|
17 | def __init__(self, opener, path): | |
18 | revlog.__init__(self, opener, |
|
18 | revlog.__init__(self, opener, | |
19 | os.path.join("data", path + ".i"), |
|
19 | os.path.join("data", self.encodedir(path + ".i")), | |
20 | os.path.join("data", path + ".d")) |
|
20 | os.path.join("data", self.encodedir(path + ".d"))) | |
|
21 | ||||
|
22 | # This avoids a collision between a file named foo and a dir named | |||
|
23 | # foo.i or foo.d | |||
|
24 | def encodedir(self, path): | |||
|
25 | path.replace(".hg/", ".hg.hg/") | |||
|
26 | path.replace(".i/", ".i.hg/") | |||
|
27 | path.replace(".d/", ".i.hg/") | |||
|
28 | return path | |||
|
29 | ||||
|
30 | def decodedir(self, path): | |||
|
31 | path.replace(".d.hg/", ".d/") | |||
|
32 | path.replace(".i.hg/", ".i/") | |||
|
33 | path.replace(".hg.hg/", ".hg/") | |||
|
34 | return path | |||
21 |
|
35 | |||
22 | def read(self, node): |
|
36 | def read(self, node): | |
23 | t = self.revision(node) |
|
37 | t = self.revision(node) | |
@@ -675,11 +689,15 class localrepository: | |||||
675 | ds = self.opener("dirstate").read() |
|
689 | ds = self.opener("dirstate").read() | |
676 | except IOError: |
|
690 | except IOError: | |
677 | ds = "" |
|
691 | ds = "" | |
678 |
self.opener(" |
|
692 | self.opener("journal.dirstate", "w").write(ds) | |
679 |
|
693 | |||
680 | return transaction.transaction(self.ui.warn, |
|
694 | def after(): | |
681 | self.opener, self.join("journal"), |
|
695 | util.rename(self.join("journal"), self.join("undo")) | |
682 | self.join("undo")) |
|
696 | util.rename(self.join("journal.dirstate"), | |
|
697 | self.join("undo.dirstate")) | |||
|
698 | ||||
|
699 | return transaction.transaction(self.ui.warn, self.opener, | |||
|
700 | self.join("journal"), after) | |||
683 |
|
701 | |||
684 | def recover(self): |
|
702 | def recover(self): | |
685 | lock = self.lock() |
|
703 | lock = self.lock() | |
@@ -959,9 +977,9 class localrepository: | |||||
959 |
|
977 | |||
960 | def copy(self, source, dest): |
|
978 | def copy(self, source, dest): | |
961 | p = self.wjoin(dest) |
|
979 | p = self.wjoin(dest) | |
962 |
if not os.path.exists( |
|
980 | if not os.path.exists(p): | |
963 | self.ui.warn("%s does not exist!\n" % dest) |
|
981 | self.ui.warn("%s does not exist!\n" % dest) | |
964 |
elif not os.path.isfile( |
|
982 | elif not os.path.isfile(p): | |
965 | self.ui.warn("copy failed: %s is not a file\n" % dest) |
|
983 | self.ui.warn("copy failed: %s is not a file\n" % dest) | |
966 | else: |
|
984 | else: | |
967 | if self.dirstate.state(dest) == '?': |
|
985 | if self.dirstate.state(dest) == '?': | |
@@ -1278,7 +1296,7 class localrepository: | |||||
1278 | mo = self.manifest.addgroup(getgroup(), revmap, tr) |
|
1296 | mo = self.manifest.addgroup(getgroup(), revmap, tr) | |
1279 |
|
1297 | |||
1280 | # process the files |
|
1298 | # process the files | |
1281 |
self.ui.status("adding file |
|
1299 | self.ui.status("adding file changes\n") | |
1282 | while 1: |
|
1300 | while 1: | |
1283 | f = getchunk() |
|
1301 | f = getchunk() | |
1284 | if not f: break |
|
1302 | if not f: break | |
@@ -1289,11 +1307,15 class localrepository: | |||||
1289 | revisions += fl.count() - o |
|
1307 | revisions += fl.count() - o | |
1290 | files += 1 |
|
1308 | files += 1 | |
1291 |
|
1309 | |||
1292 |
self.ui.status((" |
|
1310 | self.ui.status(("added %d changesets" + | |
1293 |
" |
|
1311 | " with %d changes to %d files\n") | |
1294 |
% ( |
|
1312 | % (changesets, revisions, files)) | |
1295 |
|
1313 | |||
1296 | tr.close() |
|
1314 | tr.close() | |
|
1315 | ||||
|
1316 | if not self.hook("changegroup"): | |||
|
1317 | return 1 | |||
|
1318 | ||||
1297 | return |
|
1319 | return | |
1298 |
|
1320 | |||
1299 | def update(self, node, allow=False, force=False, choose=None, |
|
1321 | def update(self, node, allow=False, force=False, choose=None, |
@@ -50,7 +50,7 class transaction: | |||||
50 | self.file.close() |
|
50 | self.file.close() | |
51 | self.entries = [] |
|
51 | self.entries = [] | |
52 | if self.after: |
|
52 | if self.after: | |
53 |
|
|
53 | self.after() | |
54 | else: |
|
54 | else: | |
55 | os.unlink(self.journal) |
|
55 | os.unlink(self.journal) | |
56 | self.journal = None |
|
56 | self.journal = None |
@@ -18,19 +18,6 def unique(g): | |||||
18 |
|
18 | |||
19 | class CommandError(Exception): pass |
|
19 | class CommandError(Exception): pass | |
20 |
|
20 | |||
21 | def explain_exit(code): |
|
|||
22 | """return a 2-tuple (desc, code) describing a process's status""" |
|
|||
23 | if os.WIFEXITED(code): |
|
|||
24 | val = os.WEXITSTATUS(code) |
|
|||
25 | return "exited with status %d" % val, val |
|
|||
26 | elif os.WIFSIGNALED(code): |
|
|||
27 | val = os.WTERMSIG(code) |
|
|||
28 | return "killed by signal %d" % val, val |
|
|||
29 | elif os.WIFSTOPPED(code): |
|
|||
30 | val = os.WSTOPSIG(code) |
|
|||
31 | return "stopped by signal %d" % val, val |
|
|||
32 | raise ValueError("invalid exit code") |
|
|||
33 |
|
||||
34 | def always(fn): return True |
|
21 | def always(fn): return True | |
35 | def never(fn): return False |
|
22 | def never(fn): return False | |
36 |
|
23 | |||
@@ -166,6 +153,9 if os.name == 'nt': | |||||
166 | makelock = _makelock_file |
|
153 | makelock = _makelock_file | |
167 | readlock = _readlock_file |
|
154 | readlock = _readlock_file | |
168 |
|
155 | |||
|
156 | def explain_exit(code): | |||
|
157 | return "exited with status %d" % code, code | |||
|
158 | ||||
169 | else: |
|
159 | else: | |
170 | nulldev = '/dev/null' |
|
160 | nulldev = '/dev/null' | |
171 |
|
161 | |||
@@ -205,3 +195,16 else: | |||||
205 | return _readlock_file(pathname) |
|
195 | return _readlock_file(pathname) | |
206 | else: |
|
196 | else: | |
207 | raise |
|
197 | raise | |
|
198 | ||||
|
199 | def explain_exit(code): | |||
|
200 | """return a 2-tuple (desc, code) describing a process's status""" | |||
|
201 | if os.WIFEXITED(code): | |||
|
202 | val = os.WEXITSTATUS(code) | |||
|
203 | return "exited with status %d" % val, val | |||
|
204 | elif os.WIFSIGNALED(code): | |||
|
205 | val = os.WTERMSIG(code) | |||
|
206 | return "killed by signal %d" % val, val | |||
|
207 | elif os.WIFSTOPPED(code): | |||
|
208 | val = os.STOPSIG(code) | |||
|
209 | return "stopped by signal %d" % val, val | |||
|
210 | raise ValueError("invalid exit code") |
@@ -1,7 +1,7 | |||||
1 | <item> |
|
1 | <item> | |
2 | <title>#desc|firstline|escape#</title> |
|
2 | <title>#desc|firstline|escape#</title> | |
3 | <link>#url#?cmd=changeset;node=#node#</link> |
|
3 | <link>#url#?cmd=changeset;node=#node#</link> | |
4 | <description>#desc|escape|addbreaks#</description> |
|
4 | <description><![CDATA[#desc|escape|addbreaks#]]></description> | |
5 | <author>#author|obfuscate#</author> |
|
5 | <author>#author|obfuscate#</author> | |
6 | <pubDate>#date|rfc822date#</pubDate> |
|
6 | <pubDate>#date|rfc822date#</pubDate> | |
7 | </item> |
|
7 | </item> |
@@ -1,7 +1,7 | |||||
1 | <item> |
|
1 | <item> | |
2 | <title>#desc|firstline|escape#</title> |
|
2 | <title>#desc|firstline|escape#</title> | |
3 | <link>#url#?cmd=file;file=#file#;filenode=#filenode#</link> |
|
3 | <link>#url#?cmd=file;file=#file#;filenode=#filenode#</link> | |
4 | <description>#desc|escape|addbreaks#</description> |
|
4 | <description><![CDATA[#desc|escape|addbreaks#]]></description> | |
5 | <author>#author|obfuscate#</author> |
|
5 | <author>#author|obfuscate#</author> | |
6 | <pubDate>#date|rfc822date#</pubDate>> |
|
6 | <pubDate>#date|rfc822date#</pubDate>> | |
7 | </item> |
|
7 | </item> |
@@ -28,7 +28,8 writing tests: | |||||
28 |
|
28 | |||
29 | - diff will show the current time |
|
29 | - diff will show the current time | |
30 |
|
30 | |||
31 |
use hg diff | sed "s/\(\(---\|+++\) |
|
31 | use hg diff | sed "s/\(\(---\|+++\) [^ \t]*\)[ \t].*/\1/" to strip | |
|
32 | dates | |||
32 |
|
33 | |||
33 | - set -x and pipelines don't generate stable output |
|
34 | - set -x and pipelines don't generate stable output | |
34 |
|
35 |
@@ -47,7 +47,7 function run_one | |||||
47 | { |
|
47 | { | |
48 | rm -f $1.err |
|
48 | rm -f $1.err | |
49 | export TZ=GMT |
|
49 | export TZ=GMT | |
50 | D=`mktemp -d` |
|
50 | D=`mktemp -d ${TMP-/tmp}/tmp.XXXXXX` | |
51 | if [ "$D" = "" ] ; then |
|
51 | if [ "$D" = "" ] ; then | |
52 | echo mktemp failed! |
|
52 | echo mktemp failed! | |
53 | fi |
|
53 | fi |
@@ -1,6 +1,6 | |||||
1 | + hg clone http://localhost:20059/ copy |
|
1 | + hg clone http://localhost:20059/ copy | |
2 | requesting all changes |
|
2 | requesting all changes | |
3 |
abort: error |
|
3 | abort: error: Connection refused | |
4 | + echo 255 |
|
4 | + echo 255 | |
5 | 255 |
|
5 | 255 | |
6 | + ls copy |
|
6 | + ls copy |
@@ -5,7 +5,7 | |||||
5 | + hg add a |
|
5 | + hg add a | |
6 | + hg commit -m test -d '0 0' |
|
6 | + hg commit -m test -d '0 0' | |
7 | + hg history |
|
7 | + hg history | |
8 |
changeset: 0:acb14030fe0a |
|
8 | changeset: 0:acb14030fe0a | |
9 | tag: tip |
|
9 | tag: tip | |
10 | user: test |
|
10 | user: test | |
11 | date: Thu Jan 1 00:00:00 1970 |
|
11 | date: Thu Jan 1 00:00:00 1970 |
@@ -4,7 +4,7 abort: repository a/.hg not found! | |||||
4 | 255 |
|
4 | 255 | |
5 | + hg clone http://127.0.0.1:3121/a b |
|
5 | + hg clone http://127.0.0.1:3121/a b | |
6 | requesting all changes |
|
6 | requesting all changes | |
7 |
abort: error |
|
7 | abort: error: Connection refused | |
8 | + echo 255 |
|
8 | + echo 255 | |
9 | 255 |
|
9 | 255 | |
10 | + rm -rf b |
|
10 | + rm -rf b |
@@ -13,19 +13,19 A b | |||||
13 | b |
|
13 | b | |
14 | b: copy a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 |
|
14 | b: copy a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 | |
15 | + hg history |
|
15 | + hg history | |
16 |
changeset: 1:3b5b84850bbe |
|
16 | changeset: 1:3b5b84850bbe | |
17 | tag: tip |
|
17 | tag: tip | |
18 | user: test |
|
18 | user: test | |
19 | date: Thu Jan 1 00:00:00 1970 |
|
19 | date: Thu Jan 1 00:00:00 1970 | |
20 | summary: 2 |
|
20 | summary: 2 | |
21 |
|
21 | |||
22 |
changeset: 0:c19d34741b0a |
|
22 | changeset: 0:c19d34741b0a | |
23 | user: test |
|
23 | user: test | |
24 | date: Thu Jan 1 00:00:00 1970 |
|
24 | date: Thu Jan 1 00:00:00 1970 | |
25 | summary: 1 |
|
25 | summary: 1 | |
26 |
|
26 | |||
27 | + hg log a |
|
27 | + hg log a | |
28 |
changeset: 0:c19d34741b0a |
|
28 | changeset: 0:c19d34741b0a | |
29 | user: test |
|
29 | user: test | |
30 | date: Thu Jan 1 00:00:00 1970 |
|
30 | date: Thu Jan 1 00:00:00 1970 | |
31 | summary: 1 |
|
31 | summary: 1 |
@@ -7,6 +7,6 hg ci -m "a" -d "0 0" | |||||
7 |
|
7 | |||
8 | echo 123 > b |
|
8 | echo 123 > b | |
9 | hg add b |
|
9 | hg add b | |
10 |
hg diff | sed "s/\(\(---\|+++\) |
|
10 | hg diff | sed "s/\(\(---\|+++\) [^ \t]*\)[ \t].*/\1/" | |
11 |
|
11 | |||
12 |
hg diff -r tip | sed "s/\(\(---\|+++\) |
|
12 | hg diff -r tip | sed "s/\(\(---\|+++\) [^ \t]*\)[ \t].*/\1/" |
@@ -14,8 +14,8 pulling from ../test1 | |||||
14 | requesting all changes |
|
14 | requesting all changes | |
15 | adding changesets |
|
15 | adding changesets | |
16 | adding manifests |
|
16 | adding manifests | |
17 |
adding file |
|
17 | adding file changes | |
18 | modified 2 files, added 1 changesets and 2 new revisions |
|
18 | added 1 changesets with 2 changes to 2 files | |
19 | (run 'hg update' to get a working copy) |
|
19 | (run 'hg update' to get a working copy) | |
20 | + hg co |
|
20 | + hg co | |
21 | + chmod +x a |
|
21 | + chmod +x a | |
@@ -28,36 +28,36 pulling from ../test2 | |||||
28 | searching for changes |
|
28 | searching for changes | |
29 | adding changesets |
|
29 | adding changesets | |
30 | adding manifests |
|
30 | adding manifests | |
31 |
adding file |
|
31 | adding file changes | |
32 | modified 1 files, added 1 changesets and 1 new revisions |
|
32 | added 1 changesets with 1 changes to 1 files | |
33 | (run 'hg update' to get a working copy) |
|
33 | (run 'hg update' to get a working copy) | |
34 | + hg heads |
|
34 | + hg heads | |
35 |
changeset: 2:3ef543305655 |
|
35 | changeset: 2:3ef543305655 | |
36 | tag: tip |
|
36 | tag: tip | |
37 |
parent: 0:22a449e20da5 |
|
37 | parent: 0:22a449e20da5 | |
38 | user: test |
|
38 | user: test | |
39 | date: Thu Jan 1 00:00:00 1970 |
|
39 | date: Thu Jan 1 00:00:00 1970 | |
40 | summary: chmod +x a |
|
40 | summary: chmod +x a | |
41 |
|
41 | |||
42 |
changeset: 1:c6ecefc45368 |
|
42 | changeset: 1:c6ecefc45368 | |
43 | user: test |
|
43 | user: test | |
44 | date: Thu Jan 1 00:00:00 1970 |
|
44 | date: Thu Jan 1 00:00:00 1970 | |
45 | summary: a updated |
|
45 | summary: a updated | |
46 |
|
46 | |||
47 | + hg history |
|
47 | + hg history | |
48 |
changeset: 2:3ef543305655 |
|
48 | changeset: 2:3ef543305655 | |
49 | tag: tip |
|
49 | tag: tip | |
50 |
parent: 0:22a449e20da5 |
|
50 | parent: 0:22a449e20da5 | |
51 | user: test |
|
51 | user: test | |
52 | date: Thu Jan 1 00:00:00 1970 |
|
52 | date: Thu Jan 1 00:00:00 1970 | |
53 | summary: chmod +x a |
|
53 | summary: chmod +x a | |
54 |
|
54 | |||
55 |
changeset: 1:c6ecefc45368 |
|
55 | changeset: 1:c6ecefc45368 | |
56 | user: test |
|
56 | user: test | |
57 | date: Thu Jan 1 00:00:00 1970 |
|
57 | date: Thu Jan 1 00:00:00 1970 | |
58 | summary: a updated |
|
58 | summary: a updated | |
59 |
|
59 | |||
60 |
changeset: 0:22a449e20da5 |
|
60 | changeset: 0:22a449e20da5 | |
61 | user: test |
|
61 | user: test | |
62 | date: Thu Jan 1 00:00:00 1970 |
|
62 | date: Thu Jan 1 00:00:00 1970 | |
63 | summary: added a b |
|
63 | summary: added a b |
@@ -7,4 +7,4 rollback completed | |||||
7 | 00changelog.d |
|
7 | 00changelog.d | |
8 | 00changelog.i |
|
8 | 00changelog.i | |
9 | data |
|
9 | data | |
10 |
|
|
10 | journal.dirstate |
@@ -27,8 +27,8 pulling from ../B1 | |||||
27 | searching for changes |
|
27 | searching for changes | |
28 | adding changesets |
|
28 | adding changesets | |
29 | adding manifests |
|
29 | adding manifests | |
30 |
adding file |
|
30 | adding file changes | |
31 | modified 1 files, added 1 changesets and 1 new revisions |
|
31 | added 1 changesets with 1 changes to 1 files | |
32 | (run 'hg update' to get a working copy) |
|
32 | (run 'hg update' to get a working copy) | |
33 | + hg update -m |
|
33 | + hg update -m | |
34 | + hg commit -m 'commit test' -d '0 0' |
|
34 | + hg commit -m 'commit test' -d '0 0' | |
@@ -42,8 +42,8 pulling from ../A2 | |||||
42 | searching for changes |
|
42 | searching for changes | |
43 | adding changesets |
|
43 | adding changesets | |
44 | adding manifests |
|
44 | adding manifests | |
45 |
adding file |
|
45 | adding file changes | |
46 | modified 0 files, added 1 changesets and 0 new revisions |
|
46 | added 1 changesets with 0 changes to 0 files | |
47 | (run 'hg update' to get a working copy) |
|
47 | (run 'hg update' to get a working copy) | |
48 | + hg update -m |
|
48 | + hg update -m | |
49 | + hg commit -m 'commit test' -d '0 0' |
|
49 | + hg commit -m 'commit test' -d '0 0' |
@@ -7,8 +7,8 1 files, 1 changesets, 1 total revisions | |||||
7 | requesting all changes |
|
7 | requesting all changes | |
8 | adding changesets |
|
8 | adding changesets | |
9 | adding manifests |
|
9 | adding manifests | |
10 |
adding file |
|
10 | adding file changes | |
11 | modified 1 files, added 1 changesets and 1 new revisions |
|
11 | added 1 changesets with 1 changes to 1 files | |
12 | checking changesets |
|
12 | checking changesets | |
13 | checking manifests |
|
13 | checking manifests | |
14 | crosschecking files in changesets and manifests |
|
14 | crosschecking files in changesets and manifests |
@@ -15,7 +15,7 05f9e54f4c9b86b09099803d8b49a50edcb4eaab | |||||
15 | 54837d97f2932a8194e69745a280a2c11e61ff9c 644 b |
|
15 | 54837d97f2932a8194e69745a280a2c11e61ff9c 644 b | |
16 | 76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c |
|
16 | 76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c | |
17 | + hg parents |
|
17 | + hg parents | |
18 |
changeset: 2:9f827976dae4 |
|
18 | changeset: 2:9f827976dae4 | |
19 | tag: tip |
|
19 | tag: tip | |
20 | user: test |
|
20 | user: test | |
21 | date: Thu Jan 1 00:00:00 1970 |
|
21 | date: Thu Jan 1 00:00:00 1970 | |
@@ -27,7 +27,7 summary: 2 | |||||
27 | 05f9e54f4c9b86b09099803d8b49a50edcb4eaab 644 a |
|
27 | 05f9e54f4c9b86b09099803d8b49a50edcb4eaab 644 a | |
28 | 76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c |
|
28 | 76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c | |
29 | + hg parents |
|
29 | + hg parents | |
30 |
changeset: 3:c8225a106186 |
|
30 | changeset: 3:c8225a106186 | |
31 | tag: tip |
|
31 | tag: tip | |
32 | user: test |
|
32 | user: test | |
33 | date: Thu Jan 1 00:00:00 1970 |
|
33 | date: Thu Jan 1 00:00:00 1970 | |
@@ -39,7 +39,7 summary: 3 | |||||
39 | d6e3c4976c13feb1728cd3ac851abaf7256a5c23 644 a |
|
39 | d6e3c4976c13feb1728cd3ac851abaf7256a5c23 644 a | |
40 | 76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c |
|
40 | 76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c | |
41 | + hg parents |
|
41 | + hg parents | |
42 |
changeset: 4:8dfeee82a94b |
|
42 | changeset: 4:8dfeee82a94b | |
43 | tag: tip |
|
43 | tag: tip | |
44 | user: test |
|
44 | user: test | |
45 | date: Thu Jan 1 00:00:00 1970 |
|
45 | date: Thu Jan 1 00:00:00 1970 | |
@@ -52,7 +52,7 05f9e54f4c9b86b09099803d8b49a50edcb4eaab | |||||
52 | 54837d97f2932a8194e69745a280a2c11e61ff9c 644 b |
|
52 | 54837d97f2932a8194e69745a280a2c11e61ff9c 644 b | |
53 | 3570202ceac2b52517df64ebd0a062cb0d8fe33a 644 c |
|
53 | 3570202ceac2b52517df64ebd0a062cb0d8fe33a 644 c | |
54 | + hg parents |
|
54 | + hg parents | |
55 |
changeset: 4:8dfeee82a94b |
|
55 | changeset: 4:8dfeee82a94b | |
56 | user: test |
|
56 | user: test | |
57 | date: Thu Jan 1 00:00:00 1970 |
|
57 | date: Thu Jan 1 00:00:00 1970 | |
58 | summary: 4 |
|
58 | summary: 4 | |
@@ -62,10 +62,10 summary: 4 | |||||
62 | d6e3c4976c13feb1728cd3ac851abaf7256a5c23 644 a |
|
62 | d6e3c4976c13feb1728cd3ac851abaf7256a5c23 644 a | |
63 | 76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c |
|
63 | 76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c | |
64 | + hg parents |
|
64 | + hg parents | |
65 |
changeset: 6:c0e932ecae5e |
|
65 | changeset: 6:c0e932ecae5e | |
66 | tag: tip |
|
66 | tag: tip | |
67 |
parent: 4:8dfeee82a94b |
|
67 | parent: 4:8dfeee82a94b | |
68 |
parent: 5:a7925a42d0df |
|
68 | parent: 5:a7925a42d0df | |
69 | user: test |
|
69 | user: test | |
70 | date: Thu Jan 1 00:00:00 1970 |
|
70 | date: Thu Jan 1 00:00:00 1970 | |
71 | summary: 6 |
|
71 | summary: 6 | |
@@ -75,7 +75,7 summary: 6 | |||||
75 | d6e3c4976c13feb1728cd3ac851abaf7256a5c23 644 a |
|
75 | d6e3c4976c13feb1728cd3ac851abaf7256a5c23 644 a | |
76 | 76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c |
|
76 | 76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c | |
77 | + hg parents |
|
77 | + hg parents | |
78 |
changeset: 7:3a157da4365d |
|
78 | changeset: 7:3a157da4365d | |
79 | tag: tip |
|
79 | tag: tip | |
80 | user: test |
|
80 | user: test | |
81 | date: Thu Jan 1 00:00:00 1970 |
|
81 | date: Thu Jan 1 00:00:00 1970 |
@@ -22,8 +22,8 pulling from ../branch | |||||
22 | searching for changes |
|
22 | searching for changes | |
23 | adding changesets |
|
23 | adding changesets | |
24 | adding manifests |
|
24 | adding manifests | |
25 |
adding file |
|
25 | adding file changes | |
26 | modified 1 files, added 1 changesets and 1 new revisions |
|
26 | added 1 changesets with 1 changes to 1 files | |
27 | (run 'hg update' to get a working copy) |
|
27 | (run 'hg update' to get a working copy) | |
28 | + hg verify |
|
28 | + hg verify | |
29 | checking changesets |
|
29 | checking changesets |
@@ -3,7 +3,7 | |||||
3 | + hg add a |
|
3 | + hg add a | |
4 | + hg commit -m test -d '0 0' |
|
4 | + hg commit -m test -d '0 0' | |
5 | + hg history |
|
5 | + hg history | |
6 |
changeset: 0:acb14030fe0a |
|
6 | changeset: 0:acb14030fe0a | |
7 | tag: tip |
|
7 | tag: tip | |
8 | user: test |
|
8 | user: test | |
9 | date: Thu Jan 1 00:00:00 1970 |
|
9 | date: Thu Jan 1 00:00:00 1970 | |
@@ -11,13 +11,13 summary: test | |||||
11 |
|
11 | |||
12 | + hg tag -d '0 0' bleah |
|
12 | + hg tag -d '0 0' bleah | |
13 | + hg history |
|
13 | + hg history | |
14 |
changeset: 1:863197ef0378 |
|
14 | changeset: 1:863197ef0378 | |
15 | tag: tip |
|
15 | tag: tip | |
16 | user: test |
|
16 | user: test | |
17 | date: Thu Jan 1 00:00:00 1970 |
|
17 | date: Thu Jan 1 00:00:00 1970 | |
18 | summary: Added tag bleah for changeset acb14030fe0a21b60322c440ad2d20cf7685a376 |
|
18 | summary: Added tag bleah for changeset acb14030fe0a21b60322c440ad2d20cf7685a376 | |
19 |
|
19 | |||
20 |
changeset: 0:acb14030fe0a |
|
20 | changeset: 0:acb14030fe0a | |
21 | tag: bleah |
|
21 | tag: bleah | |
22 | user: test |
|
22 | user: test | |
23 | date: Thu Jan 1 00:00:00 1970 |
|
23 | date: Thu Jan 1 00:00:00 1970 |
@@ -11,7 +11,7 crosschecking files in changesets and ma | |||||
11 | checking files |
|
11 | checking files | |
12 | 1 files, 1 changesets, 1 total revisions |
|
12 | 1 files, 1 changesets, 1 total revisions | |
13 | + hg parents |
|
13 | + hg parents | |
14 |
changeset: 0:acb14030fe0a |
|
14 | changeset: 0:acb14030fe0a | |
15 | tag: tip |
|
15 | tag: tip | |
16 | user: test |
|
16 | user: test | |
17 | date: Thu Jan 1 00:00:00 1970 |
|
17 | date: Thu Jan 1 00:00:00 1970 |
@@ -3,16 +3,16 searching for changes | |||||
3 | warning: pulling from an unrelated repository! |
|
3 | warning: pulling from an unrelated repository! | |
4 | adding changesets |
|
4 | adding changesets | |
5 | adding manifests |
|
5 | adding manifests | |
6 |
adding file |
|
6 | adding file changes | |
7 | modified 1 files, added 1 changesets and 1 new revisions |
|
7 | added 1 changesets with 1 changes to 1 files | |
8 | (run 'hg update' to get a working copy) |
|
8 | (run 'hg update' to get a working copy) | |
9 |
changeset: 1:9a79c33a9db3 |
|
9 | changeset: 1:9a79c33a9db3 | |
10 | tag: tip |
|
10 | tag: tip | |
11 | user: a |
|
11 | user: a | |
12 | date: Thu Jan 1 00:00:00 1970 |
|
12 | date: Thu Jan 1 00:00:00 1970 | |
13 | summary: a |
|
13 | summary: a | |
14 |
|
14 | |||
15 |
changeset: 0:01f8062b2de5 |
|
15 | changeset: 0:01f8062b2de5 | |
16 | user: b |
|
16 | user: b | |
17 | date: Thu Jan 1 00:00:00 1970 |
|
17 | date: Thu Jan 1 00:00:00 1970 | |
18 | summary: b |
|
18 | summary: b |
@@ -13,7 +13,7 cd ../r2 | |||||
13 | hg up |
|
13 | hg up | |
14 | echo abc > a |
|
14 | echo abc > a | |
15 | hg diff > ../d |
|
15 | hg diff > ../d | |
16 |
sed "s/\(\(---\|+++\) |
|
16 | sed "s/\(\(---\|+++\) [^ \t]*\)[ \t].*/\1/" < ../d | |
17 |
|
17 | |||
18 | cd ../r1 |
|
18 | cd ../r1 | |
19 | echo b > b |
|
19 | echo b > b | |
@@ -29,5 +29,5 hg --debug up -m | |||||
29 | hg parents |
|
29 | hg parents | |
30 | hg -v history |
|
30 | hg -v history | |
31 | hg diff > ../d |
|
31 | hg diff > ../d | |
32 |
sed "s/\(\(---\|+++\) |
|
32 | sed "s/\(\(---\|+++\) [^ \t]*\)[ \t].*/\1/" < ../d | |
33 |
|
33 |
@@ -10,7 +10,7 adding a | |||||
10 | + hg up |
|
10 | + hg up | |
11 | + echo abc |
|
11 | + echo abc | |
12 | + hg diff |
|
12 | + hg diff | |
13 |
+ sed 's/\(\(---\|+++\) |
|
13 | + sed 's/\(\(---\|+++\) [^ \t]*\)[ \t].*/\1/' | |
14 | diff -r c19d34741b0a a |
|
14 | diff -r c19d34741b0a a | |
15 | --- a/a |
|
15 | --- a/a | |
16 | +++ b/a |
|
16 | +++ b/a | |
@@ -42,7 +42,7 resolving manifests | |||||
42 | force None allow 1 moddirstate True linear True |
|
42 | force None allow 1 moddirstate True linear True | |
43 | ancestor 1165e8bd193e local 1165e8bd193e remote 1165e8bd193e |
|
43 | ancestor 1165e8bd193e local 1165e8bd193e remote 1165e8bd193e | |
44 | + hg parents |
|
44 | + hg parents | |
45 |
changeset: 1:1e71731e6fbb |
|
45 | changeset: 1:1e71731e6fbb | |
46 | tag: tip |
|
46 | tag: tip | |
47 | user: test |
|
47 | user: test | |
48 | date: Thu Jan 1 00:00:00 1970 |
|
48 | date: Thu Jan 1 00:00:00 1970 | |
@@ -51,7 +51,6 summary: 2 | |||||
51 | + hg -v history |
|
51 | + hg -v history | |
52 | changeset: 1:1e71731e6fbb5b35fae293120dea6964371c13c6 |
|
52 | changeset: 1:1e71731e6fbb5b35fae293120dea6964371c13c6 | |
53 | tag: tip |
|
53 | tag: tip | |
54 | manifest: 1:1165e8bd193e17ad7d321d846fcf27ff3f412758 |
|
|||
55 | user: test |
|
54 | user: test | |
56 | date: Thu Jan 1 00:00:00 1970 |
|
55 | date: Thu Jan 1 00:00:00 1970 | |
57 | files: a b |
|
56 | files: a b | |
@@ -60,7 +59,6 2 | |||||
60 |
|
59 | |||
61 |
|
60 | |||
62 | changeset: 0:c19d34741b0a4ced8e4ba74bb834597d5193851e |
|
61 | changeset: 0:c19d34741b0a4ced8e4ba74bb834597d5193851e | |
63 | manifest: 0:a0c8bcbbb45c63b90b70ad007bf38961f64f2af0 |
|
|||
64 | user: test |
|
62 | user: test | |
65 | date: Thu Jan 1 00:00:00 1970 |
|
63 | date: Thu Jan 1 00:00:00 1970 | |
66 | files: a |
|
64 | files: a | |
@@ -69,7 +67,7 1 | |||||
69 |
|
67 | |||
70 |
|
68 | |||
71 | + hg diff |
|
69 | + hg diff | |
72 |
+ sed 's/\(\(---\|+++\) |
|
70 | + sed 's/\(\(---\|+++\) [^ \t]*\)[ \t].*/\1/' | |
73 | diff -r 1e71731e6fbb a |
|
71 | diff -r 1e71731e6fbb a | |
74 | --- a/a |
|
72 | --- a/a | |
75 | +++ b/a |
|
73 | +++ b/a |
General Comments 0
You need to be logged in to leave comments.
Login now