Mercurial > hg
view tests/test-revlog.t @ 44720:601ce5392cb0
phabricator: restack any new orphans created by phabsend (issue6045)
Previously, posting a new review for a non head commit would orphan the head.
The general case is any descendant of the selected revisions got orphaned if
this was the first time the selected revisions were submitted. It doesn't
happen when resubmitting. I've already had coworkers hit this a few times and
get confused. Since posting a review isn't generally thought of as an editing
operation, it would probably be easier for new users if we just restacked.
This avoids restacking existing orphans around the submission because that may
involve merge conflict resolution. Users who already have orphans should know
how to stabilize them anyway.
Differential Revision: https://phab.mercurial-scm.org/D8438
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 14 Apr 2020 18:51:23 -0400 |
parents | 29b0e9cd02f4 |
children | 95c4cca641f6 |
line wrap: on
line source
$ hg init empty-repo $ cd empty-repo Flags on revlog version 0 are rejected >>> with open('.hg/store/00changelog.i', 'wb') as fh: ... fh.write(b'\x00\x01\x00\x00') and None $ hg log abort: unknown flags (0x01) in version 0 revlog 00changelog.i! [255] Unknown flags on revlog version 1 are rejected >>> with open('.hg/store/00changelog.i', 'wb') as fh: ... fh.write(b'\x00\x04\x00\x01') and None $ hg log abort: unknown flags (0x04) in version 1 revlog 00changelog.i! [255] Unknown version is rejected >>> with open('.hg/store/00changelog.i', 'wb') as fh: ... fh.write(b'\x00\x00\x00\x02') and None $ hg log abort: unknown version (2) in revlog 00changelog.i! [255] $ cd .. Test for CVE-2016-3630 $ hg init >>> import codecs >>> open("a.i", "wb").write(codecs.decode(codecs.decode( ... b"""eJxjYGZgZIAAYQYGxhgom+k/FMx8YKx9ZUaKSOyqo4cnuKb8mbqHV5cBCVTMWb1Cwqkhe4Gsg9AD ... Joa3dYtcYYYBAQ8Qr4OqZAYRICPTSr5WKd/42rV36d+8/VmrNpv7NP1jQAXrQE4BqQUARngwVA==""", ... "base64"), "zlib")) and None $ hg debugrevlogindex a.i rev linkrev nodeid p1 p2 0 2 99e0332bd498 000000000000 000000000000 1 3 6674f57a23d8 99e0332bd498 000000000000 >>> from mercurial import revlog, vfs >>> tvfs = vfs.vfs(b'.') >>> tvfs.options = {b'revlogv1': True} >>> rl = revlog.revlog(tvfs, b'a.i') >>> rl.revision(1) mpatchError(*'patch cannot be decoded'*) (glob)