Fri, 28 Dec 2018 03:28:02 +0100 discovery: move common heads computation inside partialdiscovery object
Boris Feld <boris.feld@octobus.net> [Fri, 28 Dec 2018 03:28:02 +0100] rev 41113
discovery: move common heads computation inside partialdiscovery object This remove one of the private attribute access. In additions, head tracking and computation is a typical operation we can speed up using Rust.
Fri, 28 Dec 2018 03:14:34 +0100 discovery: introduce a partialdiscovery object
Boris Feld <boris.feld@octobus.net> [Fri, 28 Dec 2018 03:14:34 +0100] rev 41112
discovery: introduce a partialdiscovery object This object will ultimately gather the data about common, undecided and missing revs in a single place and deal with most graph related computations. The goal is both to clarify the algorithm and to help provides a simple and clear API that can be reimplemented in Rust. For now, we only moved the `common` set in the object. In this commit, some direct access to the "private" `disco._common` attribute persist. They have not been removed yet because we won't need to expose a full API identical to `incrementalmissingancestors` and it seems simpler to access the attribute directly until the replacement is in place.
Fri, 14 Dec 2018 12:01:15 +0100 discovery: move handling of sampling special case inside sampling function
Boris Feld <boris.feld@octobus.net> [Fri, 14 Dec 2018 12:01:15 +0100] rev 41111
discovery: move handling of sampling special case inside sampling function The handling of cases where the number of revisions to sample is smaller than the sample size can be moved with the sample function themselves. This simplifies main logic, preparing a coming refactoring.
Fri, 04 Jan 2019 17:49:59 +0100 discovery: minor fix to some conditionals
Boris Feld <boris.feld@octobus.net> [Fri, 04 Jan 2019 17:49:59 +0100] rev 41110
discovery: minor fix to some conditionals Since `size` is the upper limit of the sample, we should include it in the check. Otherwize the `more` variable will be zero and the sampling will be useless
Thu, 20 Dec 2018 10:16:24 +0100 delta: reuse _findsnapshot call from previous stage
Boris Feld <boris.feld@octobus.net> [Thu, 20 Dec 2018 10:16:24 +0100] rev 41109
delta: reuse _findsnapshot call from previous stage Two different stage of the sparse-revlog logic needs the _findsnapshot data. To avoid recomputing it twice, make it possible to reuse the first computation in the second step. example affected manifest write before: 0.067141s after: 0.064252s (-5%) (total gain since start of series: 95%)
Thu, 20 Dec 2018 10:15:20 +0100 delta: have a native implementation of _findsnapshot
Boris Feld <boris.feld@octobus.net> [Thu, 20 Dec 2018 10:15:20 +0100] rev 41108
delta: have a native implementation of _findsnapshot The function might traverse a lot of revision, a native implementation get significantly faster. example affected manifest write before: 0.114989 after: 0.067141 (-42%)
Sun, 23 Dec 2018 12:39:20 +0900 transaction: do not overwrite atomic-temp files on error
Yuya Nishihara <yuya@tcha.org> [Sun, 23 Dec 2018 12:39:20 +0900] rev 41107
transaction: do not overwrite atomic-temp files on error Even though the original files can be restored from the backup, it should be better to not write back a temporary file if we know it can be corrupted.
Thu, 03 Jan 2019 10:13:34 -0800 help: fix typo
Ludovic Chabant <ludovic@chabant.com> [Thu, 03 Jan 2019 10:13:34 -0800] rev 41106
help: fix typo
Tue, 18 Dec 2018 22:23:48 +0900 rust: use 'impl Trait' in method argument of AncestorsIterator
Yuya Nishihara <yuya@tcha.org> [Tue, 18 Dec 2018 22:23:48 +0900] rev 41105
rust: use 'impl Trait' in method argument of AncestorsIterator I just didn't know it's stabilized. Let's switch to new convenient syntax. Differential Revision: https://phab.mercurial-scm.org/D5451
Tue, 18 Dec 2018 22:12:16 +0900 rust: use .rev() for reverse range
Yuya Nishihara <yuya@tcha.org> [Tue, 18 Dec 2018 22:12:16 +0900] rev 41104
rust: use .rev() for reverse range Differential Revision: https://phab.mercurial-scm.org/D5450
Fri, 04 Jan 2019 00:00:44 +0530 histedit: add warning message on editing tagged commits (issue4017)
Navaneeth Suresh <navaneeths1998@gmail.com> [Fri, 04 Jan 2019 00:00:44 +0530] rev 41103
histedit: add warning message on editing tagged commits (issue4017) Differential Revision: https://phab.mercurial-scm.org/D5489
Wed, 02 Jan 2019 05:12:07 +0100 strip: extract bookmark movement into a separate function
Boris Feld <boris.feld@octobus.net> [Wed, 02 Jan 2019 05:12:07 +0100] rev 41102
strip: extract bookmark movement into a separate function We will need it for the soft-strip case.
Wed, 02 Jan 2019 05:07:03 +0100 strip: compute bookmark target only if we have bookmark to move
Boris Feld <boris.feld@octobus.net> [Wed, 02 Jan 2019 05:07:03 +0100] rev 41101
strip: compute bookmark target only if we have bookmark to move This is a small change that seems to make sense.
Wed, 02 Jan 2019 05:01:15 +0100 strip: extract code to create strip backup
Boris Feld <boris.feld@octobus.net> [Wed, 02 Jan 2019 05:01:15 +0100] rev 41100
strip: extract code to create strip backup We will reuse this for soft stripping.
Wed, 02 Jan 2019 04:57:47 +0100 strip: clarify comment around bundle create
Boris Feld <boris.feld@octobus.net> [Wed, 02 Jan 2019 04:57:47 +0100] rev 41099
strip: clarify comment around bundle create We may create two bundles, one for the changeset actually stripped, and one for the changeset affected by the strip we want to keep. (Changesets with a higher rev number than the striped ones). For soft stripping, we still need to the first one (used for "restoring" the changesets), but not the second one. We start with clarifying which bits of the code is used for what.
Wed, 02 Jan 2019 05:02:25 +0100 strip: move attributes shortcut assigned earlier
Boris Feld <boris.feld@octobus.net> [Wed, 02 Jan 2019 05:02:25 +0100] rev 41098
strip: move attributes shortcut assigned earlier This series will add support for "soft" stripping using the archived phase in addition to the usual heavy weight revlog stripping. First, we need to refactor the strip function to extract logic common to the "soft-strip" case. We are about to extract bits of the strip function into separate functions. Those blocks of code contain variables for frequently accessed attributes. We move those variables outside of the soon to be moved blocks.
Thu, 27 Dec 2018 17:16:40 +0530 log: fix line wrap on diffstat with -G/--graph (issue5800)
Navaneeth Suresh <navaneeths1998@gmail.com> [Thu, 27 Dec 2018 17:16:40 +0530] rev 41097
log: fix line wrap on diffstat with -G/--graph (issue5800) Differential Revision: https://phab.mercurial-scm.org/D5485
Wed, 02 Jan 2019 21:49:40 -0500 registrar: minor cleanup to the merge function
Matt Harbison <matt_harbison@yahoo.com> [Wed, 02 Jan 2019 21:49:40 -0500] rev 41096
registrar: minor cleanup to the merge function Pointed out by Yuya.
Wed, 02 Jan 2019 10:31:14 +0100 vfs: raise NotImplementedError in abstractvfs._auditvfs
Boris Feld <boris.feld@octobus.net> [Wed, 02 Jan 2019 10:31:14 +0100] rev 41095
vfs: raise NotImplementedError in abstractvfs._auditvfs This make sure that auditing is implemented.
Wed, 02 Jan 2019 10:29:36 +0100 vfs: handle _auditpath in proxyvfs
Boris Feld <boris.feld@octobus.net> [Wed, 02 Jan 2019 10:29:36 +0100] rev 41094
vfs: handle _auditpath in proxyvfs Just forward the call to the underlying vfs.
Wed, 02 Jan 2019 10:29:12 +0100 vfs: fix proxyvfs inheritance
Boris Feld <boris.feld@octobus.net> [Wed, 02 Jan 2019 10:29:12 +0100] rev 41093
vfs: fix proxyvfs inheritance The proxyvfs class is designed to overwrite some of the vfs logic. Yet, it did not use normal class inheritance. This is becoming an issue as `abstractvfs` method could take precedence over their `proxyvfs` version. We fix the inheritance chain to be as expected.
Wed, 26 Dec 2018 13:44:37 +0100 vfs: also audit rename
Boris Feld <boris.feld@octobus.net> [Wed, 26 Dec 2018 13:44:37 +0100] rev 41092
vfs: also audit rename Renaming through the vfs is not used in many places, and none of them seems to be a security risk. However, it is still worthwhile to run the auditing on rename file to perform developer-warning level checks.
Wed, 26 Dec 2018 13:44:23 +0100 vfs: add a `_auditpath` to abstract vfs
Boris Feld <boris.feld@octobus.net> [Wed, 26 Dec 2018 13:44:23 +0100] rev 41091
vfs: add a `_auditpath` to abstract vfs We are about to make `rename` audit path. Since rename lives in the `abstractvfs` layer, we need it to be aware of auditing to some extent. The default implementation is no-op because multiple existing vfs are not using auditing at all right now (eg: fncachevfs).
Sun, 02 Jul 2017 04:51:03 +0200 vfs: makes all audited path relative
Boris Feld <boris.feld@octobus.net> [Sun, 02 Jul 2017 04:51:03 +0200] rev 41090
vfs: makes all audited path relative Only auditing relative path helps the vfs warning logic.
Fri, 21 Dec 2018 13:17:58 +0100 debugupgraderepo: add a --no-backup mode
Boris Feld <boris.feld@octobus.net> [Fri, 21 Dec 2018 13:17:58 +0100] rev 41089
debugupgraderepo: add a --no-backup mode The process has been around for a while and is pretty safe now. Having an automated way to clean up the old data is useful when running many different conversion to compare delta algorithm.
Fri, 13 Jul 2018 03:05:30 +0200 upgrade: add '-' in optimization name
Boris Feld <boris.feld@octobus.net> [Fri, 13 Jul 2018 03:05:30 +0200] rev 41088
upgrade: add '-' in optimization name The older name `redeltaall` was hard to type and read. The newer form should be more user-friendly. We keep backward compatibility with the old form (at least for a while). Having to use different form depending on the version is very impractical and error prone.
Fri, 21 Dec 2018 05:27:30 +0100 revlog: add test case for _findsnapshots
Boris Feld <boris.feld@octobus.net> [Fri, 21 Dec 2018 05:27:30 +0100] rev 41087
revlog: add test case for _findsnapshots Testing the method directly is more robust.
Fri, 21 Dec 2018 05:27:38 +0100 revlog: use the native implementation of issnapshot
Boris Feld <boris.feld@octobus.net> [Fri, 21 Dec 2018 05:27:38 +0100] rev 41086
revlog: use the native implementation of issnapshot In some sparserevlog case where a lot of the history has to be searched for a snapshot, the cost of issnashot cost becomes significant. The computation done by the method is fairly low level, a native implementation provide a very significant speedup. example affected manifest write before: 0.490375s after: 0.114989s (-76%)
Mon, 17 Dec 2018 10:57:13 +0100 revlog: add a native implementation of issnapshot
Boris Feld <boris.feld@octobus.net> [Mon, 17 Dec 2018 10:57:13 +0100] rev 41085
revlog: add a native implementation of issnapshot This will be used in the next changesets
Mon, 17 Dec 2018 10:51:36 +0100 revlog: more efficient implementation for issnapshot
Boris Feld <boris.feld@octobus.net> [Mon, 17 Dec 2018 10:51:36 +0100] rev 41084
revlog: more efficient implementation for issnapshot We avoid multiple method calls and tuple creation, this provides a significant speedup in some case: example affected manifest write before: 0.815520s after: 0.487767s (-40%)
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip