- Nov 07, 2017
-
-
Augie Fackler authored
-
Gregory Szorc authored
We change subrepos.allowed from a list of allowed subrepo types to a combination of a master switch and per-type boolean flag. If the master switch is set, subrepos can be disabled wholesale. If subrepos are globally enabled, then per-type options are consulted. Mercurial repos are enabled by default. Everything else is disabled by default.
-
- Nov 06, 2017
-
-
Augie Fackler authored
-
- Nov 05, 2017
-
-
Yuya Nishihara authored
We have a security issue with git subrepos. I'm not sure if svn subrepo is vulnerable, but it seems not 100% safe to allow writing arbitrary data into a metadata directory. So for now, only hg subrepo is enabled by default. Maybe we should improve the help to describe why git/svn subrepos are disabled.
-
Yuya Nishihara authored
This allows us to minimize the behavior change introduced by the next patch. I have no idea which config style is preferred in UX POV, but I decided to get things done. a) list: 'allowed = hg, git, svn' b) sub option: 'allowed.hg = True' or 'allowed:hg = True' c) per-type action: 'hg = allow', 'git = abort'
-
Yuya Nishihara authored
This is an alternative workaround for the issue5730. Perhaps this is the simplest way of disabling subrepo operations. It does nothing clever, but just aborts if Mercurial starts accessing to a subrepo. I think Greg's patch is more useful since it allows us to at least check out the parent repository. However, that would be confusing if the default is flipped to checkout=False and subrepos are silently ignored. I don't like the config name 'allowed', but I couldn't get any better name.
-
- Nov 03, 2017
-
-
Yuya Nishihara authored
It wasn't easy to extend the pathauditor to check symlink traversal across subrepos because pathauditor._checkfs() rejects a directory having ".hg" directory. That's why I added the explicit islink() check. No idea if this patch is necessary after we've fixed the issue5730 by splitting submerge() into planning and execution phases.
-
Yuya Nishihara authored
Also adds a couple of tests where the auditor does work as expected.
-
- Nov 06, 2017
-
-
Gregory Szorc authored
These config items control share behavior that is implemented in core. Since the functionality is implemented in core, extensions may leverage it. Mozilla has one such extension. And, it needs to access share.pool. Before this patch, a devel warning regarding accessing an unregistered config option would be issued unless the share extension were loaded. Moving the registration of the config options to core fixes this.
-
- Nov 05, 2017
-
-
Matt Harbison authored
Previously, if there were unresolved files and the CWD drive was different from the repo drive, `hg status -v` would page the normal status, followed by the exception header. A stacktrace was waiting when the pager exited. The underlying cause was the same as f445b10dc7fb. Unfortunately, I don't see any reasonable way to write a test this [1]. [1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-November/107401.html
-
- Nov 04, 2017
-
-
Matt Harbison authored
This is a followup to f445b10dc7fb. Since there's no way to ensure that more drive letters than C: exist, this seems like the only way to test it. This is enough to catch the f445b10dc7fb scenario, as well as CWD outside of the repo when the path isn't prefixed with path/to/repo.
-
- Nov 03, 2017
-
-
Matt Harbison authored
This had the same problem as f445b10dc7fb. Banning os.path.relpath() is tempting, but the hint it provides is useful here.
-
Matt Harbison authored
os.path.relpath() exploded if the 'root' and 'cwd' directories had different drive letters. I noticed this in TortoiseHg when typing a fileset into the filter, and it kept complaining until the closing '()' was typed. This was reproducible on the command line with: $ cd /d $ hg -R /c/Users/Matt/Projects/hg files 'set:e' Traceback (most recent call last): ... File "mercurial\pathutil.pyc", line 182, in canonpath File "ntpath.pyc", line 529, in relpath ValueError: path is on drive c:, start on drive d:
-
- Nov 01, 2017
-
-
Kevin Bullock authored
-
Kevin Bullock authored
-
Jun Wu authored
When cwd is removed and `hg` is executed, some shells may run `getcwd` before forking and executing, some may not do it, some may print a different error message. The test should be shell-independent so let's just avoid checking the error message. Differential Revision: https://phab.mercurial-scm.org/D1282
-
Kevin Bullock authored
-
Kevin Bullock authored
-
Augie Fackler authored
-
Wagner Bruna authored
-
Matt Harbison authored
-
- Oct 31, 2017
-
-
Yuya Nishihara authored
The original condition was a bit harsh for extension authors since third-party extensions need to preserve compatibility with older Mercurial versions, where no defaults would be loaded from the configtable. So let's silence the warning if the given default value matches, which should be harmless.
-
- Oct 26, 2017
-
-
Kostia Balytskyi authored
After a refactoring, _toolstr stopped having default="" as one of it's args, therefore when called without a default it returns None and not "". This causes concatenation to fail.
-
- Oct 31, 2017
-
-
Pulkit Goyal authored
`hg log -r children()` returns `hg: parse error: missing argument`. Differential Revision: https://phab.mercurial-scm.org/D1269
-
- Oct 29, 2017
-
-
Yuya Nishihara authored
It appears that stderr is fully buffered on Windows. # no-check-commit because of log_message() function
-
- Oct 28, 2017
-
-
Yuya Nishihara authored
It wouldn't work between Windows client and Unix server.
-
- Oct 24, 2017
-
-
Siddharth Agarwal authored
We shouldn't ship a severe perf regression in hg update for 4.4. Differential Revision: https://phab.mercurial-scm.org/D1223
-
Siddharth Agarwal authored
We've found a severe perf regression in `hg update` caused by the path conflict checking code. The next patch will disable this by default. Differential Revision: https://phab.mercurial-scm.org/D1222
-
- Oct 20, 2017
-
-
Mark Thomas authored
When a dirstate backup is restored, it is possible that no actual changes to the dirstate have been made. In this case, the backup is still a hardlink to the original dirstate. Unfortunately, `os.rename` silently fails (nothing happens, and no error occurs) when `src` and `dst` are hardlinks to the same file. As a result, the backup is left lying around. Over time, these files accumulate. When restoring dirstate backups, check if the backup and the dirstate are the same file, and if so, just delete the backup. Differential Revision: https://phab.mercurial-scm.org/D1201
-
Mark Thomas authored
Differential Revision: https://phab.mercurial-scm.org/D1200
-
- Oct 21, 2017
-
-
Matt Harbison authored
I'm not sure why these weren't working on Windows. The failures were generally in the style of: - remote: phase-move: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b: 1 -> 0 + remote: "phase-move: $HG_NODE: $HG_OLDPHASE -> $HG_PHASE" and - abort: pretxnclose-bookmark.force-forward hook exited with status 1 - [255] + abort: pretxnclose-bookmark.force-public hook exited with status 255 + [255] These failures originated in ee5f0d047b41::f6d17075608f.
-
Matt Harbison authored
The '\n' characters were being translated on Windows, throwing off hg and git hashes, as well as the file content in the diff.
-
- Oct 20, 2017
-
-
Matt Harbison authored
Previously, the second last test (context.arbitraryfilectx(..)) returned True on Windows. I changed the repo setup sequence to import a patch, so that way the repo would have a proper symlink. That made the last test fail, since it is comparing files in wdir(), one of which is not the expected symlink. Apparently the (feature !) line matching doesn't work well with (no-eol), so I had to conditionalize the test instead of the output.
-
- Oct 28, 2017
-
-
Durham Goode authored
A recent refactor added a layer of abstraction to the dirstate which makes doing things like 'foo in dirstate' now require some extra Python attribute lookups. This is causing a 100ms slow down in hg status for mozilla-central. The fix is to hoist the inner dict's functions onto the main class once the lazy loading it complete, as well as store the actual functions before doing the status loop (as is done for other such functions). In my testing, it seems to address the performance regression, but we'll need to see the perf run results to know for sure. Differential Revision: https://phab.mercurial-scm.org/D1257
-
- Oct 26, 2017
-
-
Durham Goode authored
Before the recent refactor, we would not load the entire map until it was accessed. As part of the refactor, that got lost and even just trying to load the dirstate parents would load the whole map. This caused a perf regression (issue5713) and a regression with static http serving (issue5717). Making it lazy loaded again fixes both. Differential Revision: https://phab.mercurial-scm.org/D1253
-
Durham Goode authored
A future diff will move the lazy loading aspect of dirstate to the dirstatemap class. This means it requires a slightly different strategy of clearing than just reinstantiating the object (since just reinstantiating the object will lazily load the on disk data again later instead of remaining permanently empty). So let's give it it's own clear function. Differential Revision: https://phab.mercurial-scm.org/D1252
-
- Oct 27, 2017
-
-
Boris Feld authored
This explains the various usage and feature of the config register introduced in Mercurial 4.3 and 4.4.
-
Boris Feld authored
Gregory Szorc requested some clarification.
-
Boris Feld authored
The getbundle wireprotocol method has some extended documentation. We update it with the next parameters introduced for binary phases.
-
- Oct 28, 2017
-
-
Matt Harbison authored
The same applies to '?' if --quiet is used (or any of the other states if some of -marduic is specified), but I couldn't figure out how to express that clearly.
-