Show More
@@ -275,6 +275,43 b' def copy(ui, repo, source, dest):' | |||||
275 | """mark a file as copied or renamed for the next commit""" |
|
275 | """mark a file as copied or renamed for the next commit""" | |
276 | return repo.copy(*relpath(repo, (source, dest))) |
|
276 | return repo.copy(*relpath(repo, (source, dest))) | |
277 |
|
277 | |||
|
278 | def debugcheckdirstate(ui, repo): | |||
|
279 | parent1, parent2 = repo.dirstate.parents() | |||
|
280 | dc = repo.dirstate.dup() | |||
|
281 | keys = dc.keys() | |||
|
282 | keys.sort() | |||
|
283 | m1n = repo.changelog.read(parent1)[0] | |||
|
284 | m2n = repo.changelog.read(parent2)[0] | |||
|
285 | m1 = repo.manifest.read(m1n) | |||
|
286 | m2 = repo.manifest.read(m2n) | |||
|
287 | errors = 0 | |||
|
288 | for f in dc: | |||
|
289 | state = repo.dirstate.state(f) | |||
|
290 | if state in "nr" and f not in m1: | |||
|
291 | print "%s in state %s, but not listed in manifest1" % (f, state) | |||
|
292 | errors += 1 | |||
|
293 | if state in "a" and f in m1: | |||
|
294 | print "%s in state %s, but also listed in manifest1" % (f, state) | |||
|
295 | errors += 1 | |||
|
296 | if state in "m" and f not in m1 and f not in m2: | |||
|
297 | print "%s in state %s, but not listed in either manifest" % (f, state) | |||
|
298 | errors += 1 | |||
|
299 | for f in m1: | |||
|
300 | state = repo.dirstate.state(f) | |||
|
301 | if state not in "nrm": | |||
|
302 | print "%s in manifest1, but listed as state %s" % (f, state) | |||
|
303 | errors += 1 | |||
|
304 | if errors: | |||
|
305 | print ".hg/dirstate inconsistent with current parent's manifest, aborting" | |||
|
306 | sys.exit(1) | |||
|
307 | ||||
|
308 | def debugdumpdirstate(ui, repo): | |||
|
309 | dc = repo.dirstate.dup() | |||
|
310 | keys = dc.keys() | |||
|
311 | keys.sort() | |||
|
312 | for file in keys: | |||
|
313 | print "%s => %c" % (file, dc[file][0]) | |||
|
314 | ||||
278 | def debugindex(ui, file): |
|
315 | def debugindex(ui, file): | |
279 | r = hg.revlog(hg.opener(""), file, "") |
|
316 | r = hg.revlog(hg.opener(""), file, "") | |
280 | print " rev offset length base linkrev"+\ |
|
317 | print " rev offset length base linkrev"+\ | |
@@ -677,6 +714,8 b' table = {' | |||||
677 | ('u', 'user', "", 'user')], |
|
714 | ('u', 'user', "", 'user')], | |
678 | 'hg commit [files]'), |
|
715 | 'hg commit [files]'), | |
679 | "copy": (copy, [], 'hg copy <source> <dest>'), |
|
716 | "copy": (copy, [], 'hg copy <source> <dest>'), | |
|
717 | "debugcheckdirstate": (debugcheckdirstate, [], 'debugcheckdirstate'), | |||
|
718 | "debugdumpdirstate": (debugdumpdirstate, [], 'debugdumpdirstate'), | |||
680 | "debugindex": (debugindex, [], 'debugindex <file>'), |
|
719 | "debugindex": (debugindex, [], 'debugindex <file>'), | |
681 | "debugindexdot": (debugindexdot, [], 'debugindexdot <file>'), |
|
720 | "debugindexdot": (debugindexdot, [], 'debugindexdot <file>'), | |
682 | "diff": (diff, [('r', 'rev', [], 'revision')], |
|
721 | "diff": (diff, [('r', 'rev', [], 'revision')], |
General Comments 0
You need to be logged in to leave comments.
Login now