Yuya Nishihara <yuya@tcha.org> [Sat, 11 Nov 2017 16:46:41 +0900] rev 35032
dispatch: add option to not strip command args parsed by _earlygetopt()
This allows us to parse the original args later by full-blown getopt() in
order to verify the result of the faulty early parsing. Still we need the
'strip=True' behavior for shell aliases.
Note that this series is RFC because it seems to change too much to be
included in stable release.
Yuya Nishihara <yuya@tcha.org> [Tue, 14 Nov 2017 00:25:59 +0900] rev 35031
dispatch: fix early parsing of short option with value like -R=foo
Before, -R=foo was parsed as '-R' 'foo', which disagrees with the standard
getopt behavior.
Yuya Nishihara <yuya@tcha.org> [Sat, 11 Nov 2017 14:02:41 +0900] rev 35030
dispatch: abort if early boolean options can't be parsed
Perhaps we'll need to restrict the parsing rules of --debugger and --profile,
where this patch will help us know why the --debugger option doesn't work.
I have another series to extend this feature to --config/--cwd/-R, but even
with that, shell aliases can be used to get around the restriction.
Yuya Nishihara <yuya@tcha.org> [Fri, 10 Nov 2017 22:27:26 +0900] rev 35029
dispatch: stop parsing of early boolean option at "--"
Yuya Nishihara <yuya@tcha.org> [Fri, 10 Nov 2017 22:22:39 +0900] rev 35028
dispatch: extract stub function to peek boolean command option
We should at least stop parsing at "--". The 'name' argument is passed for
future extension.
Yuya Nishihara <yuya@tcha.org> [Sat, 11 Nov 2017 12:09:19 +0900] rev 35027
dispatch: do not drop unpaired argument at _earlygetopt()
Before, "hg log -R" just worked.
Yuya Nishihara <yuya@tcha.org> [Sat, 04 Nov 2017 20:07:40 +0900] rev 35026
amend: update .hgsubstate before committing a memctx (
issue5677)
This is a minimal copy of localrepo.commit(). As the current amend() function
heavily depends on the wctx API, it wasn't easy to port it to use a separate
status tuple. So for now, wctx._status is updated in-place.
Yuya Nishihara <yuya@tcha.org> [Sat, 04 Nov 2017 19:21:39 +0900] rev 35025
subrepo: extract preprocess of repo.commit() to free function
No code change other than extracting a function. Maybe we should stop mutating
the status argument, but that's out of the scope of stable changes.
Yuya Nishihara <yuya@tcha.org> [Sat, 04 Nov 2017 18:54:57 +0900] rev 35024
tests: demonstrate that .hgsubstate isn't updated on amend
Loosely based on test-amend.t and test-subrepo.t
Yuya Nishihara <yuya@tcha.org> [Sat, 04 Nov 2017 23:48:19 +0900] rev 35023
amend: do not drop missing files (
issue5732)
samefile() can be wrong since wctx.manifest() does not include missing files,
whereas missing files should be preserved on commit.
Yuya Nishihara <yuya@tcha.org> [Sat, 04 Nov 2017 23:45:59 +0900] rev 35022
amend: do not take untracked files as modified or clean (
issue5732)
fctx.exists() shouldn't be used here as it checks if a file physically exists,
which may disagree with the dirstate.
Yuya Nishihara <yuya@tcha.org> [Sat, 04 Nov 2017 23:40:26 +0900] rev 35021
tests: add more complete test for status changes on amend
This demonstrates that missing/untracked files are handled incorrectly. The
correct outputs are suppressed by (false !), and wrong outputs are added with
(true !) instead.
The setup code is copied from test-status-rev.t.
Anton Shestakov <av6@dwimlabs.net> [Fri, 10 Nov 2017 19:14:06 +0800] rev 35020
hgweb: add missing semicolons to followlines.js
Minor stylistic issues caught by jshint.
Anton Shestakov <av6@dwimlabs.net> [Fri, 10 Nov 2017 18:50:44 +0800] rev 35019
gitweb: apply styles from annotate tooltip to followlines popup
These new colors and styles are already used in the tooltip that gets shown
when user hovers over line numbers on annotate page. The old styles, replaced
in this patch, look completely unrelated to gitweb or any other hgweb theme.
Anton Shestakov <av6@dwimlabs.net> [Fri, 10 Nov 2017 18:45:43 +0800] rev 35018
paper: apply styles from annotate tooltip to followlines popup
These new colors and styles are already used in the tooltip that gets shown
when user hovers over line numbers on annotate page. The old styles, replaced
in this patch, look completely unrelated to paper or any other hgweb theme.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 10 Nov 2017 09:44:49 -0800] rev 35017
pull: clarify that -u only updates linearly
Differential Revision: https://phab.mercurial-scm.org/D1355
Mark Thomas <mbthomas@fb.com> [Wed, 08 Nov 2017 09:27:14 -0800] rev 35016
dirstate: don't remove normallookup files from nonnormalset
The dirstate typically tries to keep the nonnormalset and otherparentset
up-to-date when making changes to the dirstate. In the case of files marked
normallookup, however, it erroneously removes the file from the nonnormalset,
after _addpath had just added it.
This doesn't seem to matter at the moment, as nothing relies on the
nonnormalset being correct at this point, however a future re-implementations
of the dirstate map will require this to be kept up-to-date correctly.
Differential Revision: https://phab.mercurial-scm.org/D1339
Mark Thomas <mbthomas@fb.com> [Wed, 08 Nov 2017 09:23:53 -0800] rev 35015
dirstate: clear map cached properties when clearing the map
dirstatemap.clear should remove all record of the files in the map. This
includes removing caches of values derived from these.
Differential Revision: https://phab.mercurial-scm.org/D1338
Mark Thomas <mbthomas@fb.com> [Wed, 08 Nov 2017 09:18:18 -0800] rev 35014
util: add util.clearcachedproperty
This utility function allows clearing of the cached value set up
@propertycache, if there is one.
Differential Revision: https://phab.mercurial-scm.org/D1337
Augie Fackler <augie@google.com> [Fri, 10 Nov 2017 17:12:04 -0500] rev 35013
merge with stable
Kyle Lippincott <spectral@google.com> [Wed, 08 Nov 2017 18:24:43 -0800] rev 35012
changegroup: use any node, not min(), in treemanifest's generatemanifests
This is fixing quadratic behavior, which is probably not noticeable in the
common case, but if a very large directory gets added here, it can get pretty
bad. This was noticed because we had some pushes that spent >25s in changegroup
generation calling min() here, according to profiling.
The original reasoning for min() being used in
829d369fc5a8 was that, at that
point in the series, we were adding almost everything to tmfnodes during the
first iteration through the loop , so we needed to avoid sending child
directories before parents. Later changes made it so that the child directories
were added only when we visited the parent directory (not all of them on the
first iteration), so this is no longer necessary - there won't be any child
directories in tmfnodes before the parents have been sent.
This does mean that the manifests are now exchanged unordered, whereas
previously we would essentially do [a, b, b/c, b/c/d, e], we now can send a, b,
and e in any order; b/c must still follow b, and b/c/d must still follow b/c.
Differential Revision: https://phab.mercurial-scm.org/D1351
Durham Goode <durham@fb.com> [Tue, 07 Nov 2017 10:16:53 -0800] rev 35011
bundle: allow bundlerepo to support alternative manifest implementations
With our treemanifest logic, the manifests are no longer transported as part of
the changegroup and are no longer stored in a revlog. This means the
self.manifestlog line in bundlerepo.filestart no longer calls
_constructmanifest, and therefore does not consume the manifest portion of the
changegroup, which means filestart is not populated and we result in an infinite
loop.
The fix is to make filestart aware that self.manifestlog might not consume the
changegroup part, and consume it manually if necessary.
There's currently no way to test this in core, but our treemanifest extension
has tests to cover this.
Differential Revision: https://phab.mercurial-scm.org/D1329
Boris Feld <boris.feld@octobus.net> [Thu, 19 Oct 2017 12:35:47 +0200] rev 35010
obsfate: makes successorsetverb takes the markers as argument
Right now, successorsetverb only needs successors to compute the verb. But we
will want use additional information (effect-flags and operation) in the near
future to compute a better verb.
Add the markers parameter now so extensions (like Evolve) could wrap the
function and start experimenting around better obsfate verbs.
As successorsetverb now takes both successorset and markers parameters, rename
it to obsfateverb, successorsetandmarkersverb was too long.
Differential Revision: https://phab.mercurial-scm.org/D1191
Mark Thomas <mbthomas@fb.com> [Fri, 03 Nov 2017 09:27:36 -0700] rev 35009
scmutil: don't try to delete origbackup symlinks to directories (
issue5731)
When origbackuppath is set, when looking to see if a file we are backing up
conflicts with a directory in the origbackuppath, we incorrectly match on
symlinks to directories. This means we try to call vfs.rmtree on the
symlink, which fails.
Differential Revision: https://phab.mercurial-scm.org/D1311
Mark Thomas <mbthomas@fb.com> [Fri, 03 Nov 2017 09:27:35 -0700] rev 35008
tests: add a test demonstrating
issue5731
If origbackups are in use, a symlink to a valid directory is backed up, and an
update is made that attempts to backup a file or link over that symlink, we
abort with a bad error message instead of successfully updating.
Differential Revision: https://phab.mercurial-scm.org/D1310
Ryan McElroy <rmcelroy@fb.com> [Tue, 07 Nov 2017 13:48:33 -0800] rev 35007
cmdutil: create dirs for templated cat file output
Previously, the caller was responsible for creating the directory structure of
files written out using a path template. This is onerous, especially if the
exact filenames are not known upfront, but are being accessed via a matcher.
This patch changes things so that hg will attempt to create the appropriate
directories before writing the output file.
Differential Revision: https://phab.mercurial-scm.org/D1332
Ryan McElroy <rmcelroy@fb.com> [Tue, 07 Nov 2017 13:46:15 -0800] rev 35006
cat: test output path behvaior when target path does not exist
In the next patch, we will change the behavior of the cat command to create
output file parent directories before attempting to write the output file.
This patch documents the current unfortunate behavior.
Differential Revision: https://phab.mercurial-scm.org/D1331
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:06:49 +0530] rev 35005
py3: handle keyword arguments in hgext/shelve.py
Differential Revision: https://phab.mercurial-scm.org/D1324
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:06:23 +0530] rev 35004
py3: handle keyword arguments in hgext/uncommit.py
Differential Revision: https://phab.mercurial-scm.org/D1323
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:05:04 +0530] rev 35003
py3: handle keyword arguments in hgext/releasenotes.py
Differential Revision: https://phab.mercurial-scm.org/D1322
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:04:47 +0530] rev 35002
py3: handle keyword arguments in hgext/rebase.py
Differential Revision: https://phab.mercurial-scm.org/D1321
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:04:30 +0530] rev 35001
py3: handle keyword arguments in hgext/keyword.py
Differential Revision: https://phab.mercurial-scm.org/D1320