Show More
@@ -275,6 +275,43 b' def copy(ui, repo, source, dest):' | |||
|
275 | 275 | """mark a file as copied or renamed for the next commit""" |
|
276 | 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 | 315 | def debugindex(ui, file): |
|
279 | 316 | r = hg.revlog(hg.opener(""), file, "") |
|
280 | 317 | print " rev offset length base linkrev"+\ |
@@ -677,6 +714,8 b' table = {' | |||
|
677 | 714 | ('u', 'user', "", 'user')], |
|
678 | 715 | 'hg commit [files]'), |
|
679 | 716 | "copy": (copy, [], 'hg copy <source> <dest>'), |
|
717 | "debugcheckdirstate": (debugcheckdirstate, [], 'debugcheckdirstate'), | |
|
718 | "debugdumpdirstate": (debugdumpdirstate, [], 'debugdumpdirstate'), | |
|
680 | 719 | "debugindex": (debugindex, [], 'debugindex <file>'), |
|
681 | 720 | "debugindexdot": (debugindexdot, [], 'debugindexdot <file>'), |
|
682 | 721 | "diff": (diff, [('r', 'rev', [], 'revision')], |
General Comments 0
You need to be logged in to leave comments.
Login now