Details
Details
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
Automatic diff as part of commit; lint not applicable. |
Automatic diff as part of commit; unit tests not applicable. |
Path | Packages | |||
---|---|---|---|---|
M | mercurial/debugcommands.py (8 lines) | |||
M | tests/test-obsolete.t (4 lines) |
Status | Author | Revision | |
---|---|---|---|
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz |
# We do not use revsingle/revrange functions here to accept | # We do not use revsingle/revrange functions here to accept | ||||
# arbitrary node identifiers, possibly not present in the | # arbitrary node identifiers, possibly not present in the | ||||
# local repository. | # local repository. | ||||
n = bin(s) | n = bin(s) | ||||
if len(n) != len(nullid): | if len(n) != len(nullid): | ||||
raise TypeError() | raise TypeError() | ||||
return n | return n | ||||
except TypeError: | except TypeError: | ||||
raise error.Abort( | raise error.InputError( | ||||
b'changeset references must be full hexadecimal ' | b'changeset references must be full hexadecimal ' | ||||
b'node identifiers' | b'node identifiers' | ||||
) | ) | ||||
if opts.get(b'delete'): | if opts.get(b'delete'): | ||||
indices = [] | indices = [] | ||||
for v in opts.get(b'delete'): | for v in opts.get(b'delete'): | ||||
try: | try: | ||||
indices.append(int(v)) | indices.append(int(v)) | ||||
except ValueError: | except ValueError: | ||||
raise error.Abort( | raise error.InputError( | ||||
_(b'invalid index value: %r') % v, | _(b'invalid index value: %r') % v, | ||||
hint=_(b'use integers for indices'), | hint=_(b'use integers for indices'), | ||||
) | ) | ||||
if repo.currenttransaction(): | if repo.currenttransaction(): | ||||
raise error.Abort( | raise error.Abort( | ||||
_(b'cannot delete obsmarkers in the middle of transaction.') | _(b'cannot delete obsmarkers in the middle of transaction.') | ||||
) | ) | ||||
with repo.lock(): | with repo.lock(): | ||||
n = repair.deleteobsmarkers(repo.obsstore, indices) | n = repair.deleteobsmarkers(repo.obsstore, indices) | ||||
ui.write(_(b'deleted %i obsolescence markers\n') % n) | ui.write(_(b'deleted %i obsolescence markers\n') % n) | ||||
return | return | ||||
if precursor is not None: | if precursor is not None: | ||||
if opts[b'rev']: | if opts[b'rev']: | ||||
raise error.Abort(b'cannot select revision when creating marker') | raise error.InputError( | ||||
b'cannot select revision when creating marker' | |||||
) | |||||
metadata = {} | metadata = {} | ||||
metadata[b'user'] = encoding.fromlocal(opts[b'user'] or ui.username()) | metadata[b'user'] = encoding.fromlocal(opts[b'user'] or ui.username()) | ||||
succs = tuple(parsenodeid(succ) for succ in successors) | succs = tuple(parsenodeid(succ) for succ in successors) | ||||
l = repo.lock() | l = repo.lock() | ||||
try: | try: | ||||
tr = repo.transaction(b'debugobsolete') | tr = repo.transaction(b'debugobsolete') | ||||
try: | try: | ||||
date = opts.get(b'date') | date = opts.get(b'date') |
> evolution=exchange | > evolution=exchange | ||||
> evolution.createmarkers=True | > evolution.createmarkers=True | ||||
> EOF | > EOF | ||||
Killing a single changeset without replacement | Killing a single changeset without replacement | ||||
$ hg debugobsolete 0 | $ hg debugobsolete 0 | ||||
abort: changeset references must be full hexadecimal node identifiers | abort: changeset references must be full hexadecimal node identifiers | ||||
[255] | [10] | ||||
$ hg debugobsolete '00' | $ hg debugobsolete '00' | ||||
abort: changeset references must be full hexadecimal node identifiers | abort: changeset references must be full hexadecimal node identifiers | ||||
[255] | [10] | ||||
$ hg debugobsolete -d '0 0' `getid kill_me` -u babar | $ hg debugobsolete -d '0 0' `getid kill_me` -u babar | ||||
1 new obsolescence markers | 1 new obsolescence markers | ||||
obsoleted 1 changesets | obsoleted 1 changesets | ||||
$ hg debugobsolete | $ hg debugobsolete | ||||
97b7c2d76b1845ed3eb988cd612611e72406cef0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'babar'} | 97b7c2d76b1845ed3eb988cd612611e72406cef0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'babar'} | ||||
(test that mercurial is not confused) | (test that mercurial is not confused) | ||||