- Mar 19, 2019
- Mar 16, 2019
-
-
Matt Harbison authored
This path covers interactive mode for commit, amend, and shelve, as well as the deprecated record extension. Since shelf creation uses commit without -S in the non-interactive case, aborting here should be OK. (I didn't check what happens to non interactive shelve creation if `ui.commitsubrepos=True` is set.) subrepoutil.precommit() will abort on a dirty subrepo if the config option isn't set, but the hint recommends using --subrepos to commit. Since only the commit command currently supports that option, the error has to be raised here to omit the hint. Doing the check before asking about all of the hunks in the MQ test seems like an improvement on its own. There's probably an additional check on this path that can be removed.
-
- Mar 17, 2019
-
-
Yuya Nishihara authored
I don't think the exact error message is important here. On Debian sid, ECONNRESET is raised, and "[SSL] tlsv13 alert certificate required" on NetBSD.
-
Yuya Nishihara authored
This mostly fixes the test failure on Debian sid where TLS 1.0 and 1.1 are disabled by default. https://sources.debian.org/patches/openssl/1.1.1a-1/Set-systemwide-default-settings-for-libssl-users.patch/ $OPENSSL_CONF could be set by run-tests.py, but the other tests should work without a "legacy" TLS, so I decided to not.
-
- Feb 23, 2019
-
-
Manuel Jacob authored
-
- Feb 24, 2019
-
-
Pierre-Yves David authored
To reduce the instability in the bundle binary content, we force it to contains delta against p1 in all cases. In the previous changeset, we already stabilized the processing of the bundle. So we don't see any output change in the test itself.
-
Pierre-Yves David authored
The point of the test is to check the strategy sparse-revlog uses to pick delta base. If we trust the bases used in the bundle, we no longer fully test this logic. In order to force this computation we have to use the side effect of a legacy format configuration `format.generaldelta`. The lack of a more official way to do so will be fixed in a later changeset.
-
Pierre-Yves David authored
This test is skipped unless a large artefact is pre-build. It seems like nobody ran it in a while. Changeset 3764330f76a6 changed the expected output but nobody noticed. This changeset focus on the first and simpler step: putting the expected output back to what one would get by running this test. However this test changes highlight a couple of deeper issues: 1) Even if the revision content did not changed, a change in the delta contained in the bundle affected the delta stored in the final revlog, changing the test result. Since we are testing the delta computation strategy with sparse, we should not blindly reuse the delta-base from the bundled delta. 2) A change in the format of the repository used to generate the bundle changed the delta stored in the bundle. We should get a more stable output to avoid future instabilities of this test. 3) The test is it not run by CI or developer. We'll try to address all this issues in the coming changesets.
-
- Feb 21, 2019
-
-
Matt Harbison authored
-
- Feb 07, 2019
-
-
Yuya Nishihara authored
Matt Harbison pointed out that Windows had some weird path syntax. Fortunately it's rejected appropriately by pathauditor, so we're safe. Let's test the behavior as we have a special handling for Windows drive letters. This patch includes a basic example. Maybe we'll need to extend the test case further, but writing such tests on Linux isn't easy.
-
Mathias De Mare authored
Differential Revision: https://phab.mercurial-scm.org/D5877
-
Mathias De Mare authored
rc detection on CentOS failed without this change, resulting in upgrades from 4.9rc to 4.9 not working (4.9rc was considered more recent than 4.9). Differential Revision: https://phab.mercurial-scm.org/D5876
-
- Feb 06, 2019
-
-
Matt Harbison authored
Subrepo paths are not normalized for the OS, so what was happening in the subsequent root path check was: root -> $TESTTMP\issue1852a\sub/repo util.expandpath(...) -> $TESTTMP\issue1852a\sub/repo os.path.realpath(...) -> $TESTTMP\issue1852a\sub\repo
-
- Feb 01, 2019
- Jan 08, 2019
-
-
Yuya Nishihara authored
In addition to the previous patch, this prohibits '~', '$nonexistent', etc. for any subrepo types. I think this is safer, and real-world subrepos wouldn't use such (local) paths.
-
Yuya Nishihara authored
It's probably wrong to expand path at localrepo.*repository() layer, but fixing the layering issue would require careful inspection of call paths. So, this patch adds add a validation to the subrepo constructor. os.path.realpath(util.expandpath(root)) is what vfsmod.vfs() would do.
-
Yuya Nishihara authored
While reviewing patches for the issue 5739, "$foo in repository path expanded", I realized that subrepo paths can also be cheated. This patch includes various subrepo paths which are potentially unsafe. Since an expanded subrepo path isn't audited, this bug allows symlink check bypass. As a result, a malicious subrepository could be checked out to a sub tree of e.g. $HOME directory. The good news is that the destination directory must be empty or nonexistent, so the existing ~/.bashrc wouldn't be overwritten. See the last part of the tests for details.
-
- Jan 31, 2019
-
-
Anton Shestakov authored
Differential Revision: https://phab.mercurial-scm.org/D5779
-
- Jan 24, 2019
-
-
Boris Feld authored
We are getting user report where the delta code tries to use `sparse-revlog` logic on repository where `generaldelta` is disabled. This can't work so we ensure the two booleans have a consistent value. Creating this kind of repository is not expected to be possible the current bug report point at a clonebundle related bug that is still to be properly isolated (Yuya Nishihara seems to a have done it). Corrupting a repository to reproduce the issue is possible. A test using this method is included in this fix.
-
- Jan 30, 2019
-
-
Boris Feld authored
This was overlooked when this graduated from experimental.
-
- Jan 23, 2019
-
-
Georges Racinet authored
The Graph implementation of hg-cpython returns the appropriate error upon encounter with the working directory special revision number, and this gives us in particular a code path to test from test-rust-ancestors.py In the current implementation, the exception is actually raised from the iterator instantiation; we are nonetheless consuming the iterator in the test with `list()` in order not to depend on implementation details.
-
Georges Racinet authored
This introduces WorkingDirectoryUnsupported as an enum variant of GraphError in the core and converts it to the expected `mercurial.error.WdirUnsupported`.
-
Georges Racinet authored
This introduces the constant, but does not use it anywhere yet.
-
- Jan 24, 2019
-
-
Yuya Nishihara authored
This is at least faster than ui.write() of 4.8.2. $ HGRCPATH=/dev/null hg files -R mozilla-central --time >/dev/null 4.8.2: time: real 2.340 secs (user 2.310+0.000 sys 0.020+0.000) 4.9rc0: time: real 2.580 secs (user 2.550+0.000 sys 0.020+0.000) this: time: real 2.230 secs (user 2.210+0.000 sys 0.020+0.000) Maybe the formatter should own a resolved write() function because it will just call dest.write(msg) most of the time, but that would be too much for stable.
-
Yuya Nishihara authored
I'll remove redundant conditions later in this series.
-
Yuya Nishihara authored
I'll remove redundant conditions later in this series.
-
- Nov 28, 2018
-
-
Yuya Nishihara authored
This was spotted while making fastannotate faster again after ditching its own formatter. Since I'm going to inline _write() into ui.write(), I decided to include this patch in this series. Here, the cost of '(self.label(a, label) for a in args)' was significant in hot loops.
-
- Jan 23, 2019
-
-
Boris Feld authored
Changeset 1d30be90c9dc move the update of the `undecided` set within the `partialdiscovery` object in order to clarify the API. The update to the `undecided` set was unconditional in 1d30be90c9dc and the first access to the `self.undecided` property triggered the initial computation of the set of undecided revisions. As a result, the set was computed much earlier, at a time where less information is available, immediately followed by an update of this set to remove common revisions. To fix this regression, we ignore the `undecided` related logic in `addcommons` when that `undecided` set has not been computed yet. Code that actually needs to know the `undecided` set will trigger its computation later. The change has no effects on semantic because the initial computation `undecided` set takes all knowns `common` into account. Example performance running `hg debugdiscovery` from a pypy repo missing 10 changesets: 870a89c6909d: 52.3ms (regression parent) 1d30be90c9dc: 72.0ms (regression) 5a5f504a7175: 64.8ms (this fix parent) this fix: 52.6ms
-
- Jan 21, 2019
-
-
Yuya Nishihara authored
This partially backs out cecf3f8bccd3, "revlog: always process opener options." My understanding is that if there's no "revlog1" nor "revlog2" in .hg/requires, the repository should stick to the v0 format. The reasoning is briefly described in 31a5973fcf96, "revlog: get rid of defversion." Maybe we can drop support for missing opener options, but I didn't do that in this patch.
-
- Jan 20, 2019
-
-
Yuya Nishihara authored
If hg is compiled with rust support, 'only(wdir())' crashed as "rustext.GraphError: ('ParentOutOfRange', 2147483647)", which should instead say "abort: working directory revision cannot be specified."
-
Yuya Nishihara authored
It appears not easy to fix only() to support wdir(), so this patch works around the issue by getlatesttags(). The "+1" after len(changes) doesn't matter since ctx never changes while sorting. It's just for clarity.
-
Yuya Nishihara authored
It's probably broken since fb672eac2702, "templatekw: choose {latesttag} by len(changes), not date (issue5659)". only() doesn't support wdir.
-
- Jan 19, 2019
-
-
Martin von Zweigbergk authored
Using --addremove when committing in an old repo (before we started keeping .hg/narrowspec.dirstate) results in a crash. The test case modified in this patch would crash like this: abort: $ENOENT$ The issue is that when the dirstateguard is aborted, it tries to restore the backup of .hg/narrowspec.dirstate. However, since we were in an old repo, that file did not get created when the dirstateguard was created. Note that the dirstateguard is not used unless --addremove is passed. This patch fixes the bug by making restorewcbackup() not fail if the backup doesn't exist. I also made clearwcbackup() safe, just in case. Differential Revision: https://phab.mercurial-scm.org/D5634
-
- Jan 18, 2019
-
-
Boris Feld authored
In 24a1f67bb75a, we aligned "%d" behavior on "%ld" one, invalid revisions got silently ignored. However, soon after in 8aca89a694d4 and 26b0a7514f01, a side effect changed the behavior of "%ld" to no longer silently filter invalid revisions. After discussion on the mailing list, it was decided to align on the new %ld behavior: https://www.mercurial-scm.org/pipermail/mercurial-devel/2019-January/127291.html This changeset introduce a '_rev()' predicated that keep the benefit from 24a1f67bb75a while enforcing a more strict checking on the inputs.
-
Boris Feld authored
There have been concrete and theoretical issues raised, this will need more work during the next cycle.
-
Boris Feld authored
There have been concrete and theoretical issues raised, this will need more work during the next cycle.
-
- Jan 19, 2019
-
-
Matt Harbison authored
-
Matt Harbison authored
-