- Mar 18, 2020
-
-
Raphaël Gomès authored
The added `log` crate is already a sub-dependency. Differential Revision: https://phab.mercurial-scm.org/D8300
-
Augie Fackler authored
Python 3.8 makes os.path.isfile quietly eat "path invalid" errors and return False instead of allowing the exception to propagate. Given that this is a change from 2018 (sigh) and it's mentioned in the release notes (double sigh) we're definitely too late to complain to Python about the behavior change, so open-code part of os.path.isfile() in this method so we can catch invalid-path errors and handle them appropriately. I confirmed that posixpath and ntpath both delegate to genericpath, which uses os.stat() under the covers. Differential Revision: https://phab.mercurial-scm.org/D8302
-
- Mar 17, 2020
-
-
Augie Fackler authored
As best I can discern, this is not going to hurt anything, but it'll cause a couple of options to exist in the UI that are nonsensical. That seems fine, given the nature of remotefilelog. Differential Revision: https://phab.mercurial-scm.org/D8299
-
Augie Fackler authored
It's not uncommon for hg users to rely on hgweb as a simple GUI and history browser (I do this all the time on Mercurial), but we lack any tests to ensure things keep working. At present, this merely demonstrates the "view contents of a single file" endpoint is broken. I'll fix that in a subsequent change. Differential Revision: https://phab.mercurial-scm.org/D8298
-
- Mar 18, 2020
-
-
Augie Fackler authored
Fixes things on Python 3. Differential Revision: https://phab.mercurial-scm.org/D8301
-
- Mar 17, 2020
-
-
Kyle Lippincott authored
Differential Revision: https://phab.mercurial-scm.org/D8296
-
- Jul 22, 2019
-
-
Kyle Lippincott authored
Differential Revision: https://phab.mercurial-scm.org/D8297
-
- Mar 13, 2020
-
-
Kyle Lippincott authored
Differential Revision: https://phab.mercurial-scm.org/D8294
-
- Mar 14, 2020
-
-
Kyle Lippincott authored
Differential Revision: https://phab.mercurial-scm.org/D8280
-
- Mar 13, 2020
-
-
Kyle Lippincott authored
I think every item here is considered incorrect (if we fix doctest to run it), so let's just delete it. Differential Revision: https://phab.mercurial-scm.org/D8279
-
- Mar 12, 2020
-
-
Raphaël Gomès authored
Turns out you need them when trying to use `hg-core` as a library. Who knew. Differential Revision: https://phab.mercurial-scm.org/D8278
-
- Dec 13, 2019
-
-
Martin von Zweigbergk authored
This refactoring makes it easier to add a new way of specifying revisions (I'm about to add a `--source`, which adds the specified revisions and their descendants). Differential Revision: https://phab.mercurial-scm.org/D8285
-
Martin von Zweigbergk authored
`--all` implies `--working-dir`, so it's probably a mistake if the user uses both. Differential Revision: https://phab.mercurial-scm.org/D8284
-
- Mar 12, 2020
-
-
Martin von Zweigbergk authored
Differential Revision: https://phab.mercurial-scm.org/D8283
-
Martin von Zweigbergk authored
It turns out I broke one of the rebase tests in dd2833e4d660 (tests: use drawdag in test-rebase-collapse.t, 2018-03-18) and didn't notice until now. Differential Revision: https://phab.mercurial-scm.org/D8277
-
- Mar 13, 2020
-
-
Martin von Zweigbergk authored
Same reasoning as for the previous patch. Rebase has worked well with `--base 'A + B'` since 51e7c83e05ee (rebase: calculate ancestors for --base separately (issue5420), 2016-11-28). Differential Revision: https://phab.mercurial-scm.org/D8293
-
Martin von Zweigbergk authored
I think it's a little surprising that `hg rebase -s A -s B` rebases only `B::` and ignores `A`. That's because the `-s` flag is not a repeated flag. This patch makes it a repeated flag. Differential Revision: https://phab.mercurial-scm.org/D8292
-
- Mar 14, 2020
-
-
Martin von Zweigbergk authored
I'm guessing that we simply forgot to mention it there. I was wondering if maybe `-r` was experimental as long as evolution is, but that doesn't seem to be the case (`-r` is not marked experimental). Differential Revision: https://phab.mercurial-scm.org/D8295
-
- Mar 13, 2020
-
-
Martin von Zweigbergk authored
The caller always provides values for these arguments. Differential Revision: https://phab.mercurial-scm.org/D8291
-
- Feb 16, 2020
-
-
Matt Harbison authored
This too can get a tristate switch if desired. But if so, that needs to happen by having evolve add the option. Differential Revision: https://phab.mercurial-scm.org/D8138
-
Matt Harbison authored
For my use anyway, it's better to have a config knob that's always set than to try to remember a switch. But we can add a tristate switch if desired. Differential Revision: https://phab.mercurial-scm.org/D8137
-
Matt Harbison authored
I've had `alias.phabimport = $hg phabread --stack $1 | $hg import --bypass -` for a while now, and I suspect others do too. That's limited though, in that it can't use the information on Phabricator to restore it in the original location, so I'm making it a first class command. This doesn't do anything ambitious like that- this is mostly a simplification of `hg import` to get the equivalent of the alias mentioned above. The `--bypass` option is hardcoded to be enabled and the message about amending rejects dropped (rejects aren't created with `--bypass`), because editing patches on Phabricator seems like an unusual workflow. This will need other options, like `--obsolete` and `--secret`. I think these would be more useful as config settings, as I imagine the workflows are pretty fixed depending on roles. Reviewers who don't queue patches probably never want `--obsolete`, but may need `--secret`. Reviewers who do will want the former, but not the latter. I left `--stack` as an option, but that should probably be a config knob too (or at least default to on)- if the point of this is to avoid rejects, it doesn't make sense to skip dependencies in most cases. Evolve is going to need a fix to its wrapping of `cmdutil.tryimportone()`, as it currently assumes `opts` has an `obsolete` key. It's worked around for now. Differential Revision: https://phab.mercurial-scm.org/D8136
-
- Mar 12, 2020
-
-
Raphaël Gomès authored
Differential Revision: https://phab.mercurial-scm.org/D8274
-
- Dec 08, 2017
-
-
Jörg Sonnenberger authored
Consecutive revisions are often in the same phase, especially public revisions. This means that a dictionary keyed by the revision for the phase transitions is highly redundant. Build a list of (range, (old, new)) entries instead and aggressively merge ranges with the same transition. For the test case in issue5691, this reduces memory use by ~20MB. Differential Revision: https://phab.mercurial-scm.org/D8125
-
- Mar 11, 2020
-
-
Raphaël Gomès authored
Differential Revision: https://phab.mercurial-scm.org/D8273
-
- Mar 10, 2020
-
-
Matt Harbison authored
Since this was not needed, it ends up causing the test to end with an error saying that the output changed, but with no diff and a message at the end saying "no result code from test". Differential Revision: https://phab.mercurial-scm.org/D8269
-
- Feb 29, 2020
-
-
Pulkit Goyal authored
This introduces a new flag to pull command `--confirm` and also a config option named `pull.confirm` which if used will prompt user describing changes which are pulled and asking whether to accept them or not. Differential Revision: https://phab.mercurial-scm.org/D8200
-
Pulkit Goyal authored
We have a list of summary callbacks which are run after the transaction is closed to show what has changed and what not. This patch makes it possible to register those callbacks as transaction validators so that we can show summary before committing the transaction and prompt user to accept the changes. The goal of this is to implement `pull --confirm`. Differential Revision: https://phab.mercurial-scm.org/D8199
-
Pulkit Goyal authored
This will help us in adding more validators which can aggregate data from transaction and prompt user whether to commit the transaction or not. The current target is to use this to implement `pull --confirm`. Differential Revision: https://phab.mercurial-scm.org/D8198
-
- Mar 04, 2020
-
-
Pulkit Goyal authored
httppeer (and maybe others too) does not have a store attribute. This was causing `hg pull` being broken on a hg repository when the extension is enabled. localpeer.local() does returns a non-None value but I am not sure if it matters. Differential Revision: https://phab.mercurial-scm.org/D8217
-
- Mar 06, 2020
-
-
Raphaël Gomès authored
This change makes use of the newly added logging infrastructure to trace the execution time of some important calls. This approach is very much complementary to using a profiler and will not guard against out-of-order execution or other kinds of compiler optimizations. That said, it is useful to get a rough high-level idea of where time is spent. Differential Revision: https://phab.mercurial-scm.org/D8253
-
Raphaël Gomès authored
This change adds the `log` crate, the community-approved logging facade backed by Rust core developers as well as the logging-consumer crate `simple_logger` to build a foundation for logging from Rust. Using this setup allows us to choose how to log depending on the way `hg-core` is used: if it's within the context of `hg-cpython`, we might not want to use it the same way as with a direct cli for example. Differential Revision: https://phab.mercurial-scm.org/D8252
-
Raphaël Gomès authored
Using `rayon` for this task ensures that we are using the same work-stealing threadpool for everything. This change introduces `crossbeam` as an explicit dependency, although it is already a dependency of `rayon`. It provides better structures for multi-threaded tasks than the stdlib. Differential Revision: https://phab.mercurial-scm.org/D8251
-
Raphaël Gomès authored
Differential Revision: https://phab.mercurial-scm.org/D8250
-
Raphaël Gomès authored
Differential Revision: https://phab.mercurial-scm.org/D8249
-
- Feb 19, 2020
-
-
Raphaël Gomès authored
I have looked into traversing the working directory in parallel either by a recursive or an iterative algorithm. The recursive approach won quite decisively both in terms of performance and code readability. You can look at my experiment here: https://heptapod.octobus.net/Alphare/rayon-recursive-traversal The chance of a stack overflow happening because the directories get too nested seems slim. This change does not yet do anything in parallel. Differential Revision: https://phab.mercurial-scm.org/D8215
-
- Mar 04, 2020
-
-
Raphaël Gomès authored
The usual recommendation for using `RwLock` or `Mutex` is that if there are about as many write as there are reads, use `Mutex`, and if there are more reads than writes, use `RwLock`. If after the main bottleneck (i.e. parallel traversal) is removed this shows up on profiles, we should investigate using the `parking_lot` since we don't need a poisoning API, or maybe move to different types of caches entirely. Differential Revision: https://phab.mercurial-scm.org/D8213
-
Raphaël Gomès authored
I forgot this when rewriting this logic during the review process. Differential Revision: https://phab.mercurial-scm.org/D8212
-
Raphaël Gomès authored
Right now, splitting with a max of 1 parts is useless. Differential Revision: https://phab.mercurial-scm.org/D8211
-
- Mar 05, 2020
-
-
Raphaël Gomès authored
Differential Revision: https://phab.mercurial-scm.org/D8226
-