Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Feb 2015 14:03:01 -0800] rev 24186
copies: calculate 'bothnew' from manifestdict.filesnotin()
In the same spirit as the previous change, let's now calculate the
'bothnew' variable using manifestdict.filesnotin().5D
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Feb 2015 14:02:30 -0800] rev 24185
copies: replace _nonoverlap() by calls to manifestdict.filesnotin()
Now that we have manifestdict.filesnotin(), we can write _nonoverlap()
in terms of that method instead, enabling future speedups when
filesnotin() gets optimized, and perhaps making the code a little
clearer at the same time.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Feb 2015 13:57:37 -0800] rev 24184
copies: move code into new manifestdict.filesnotin() method
copies._computeforwardmissing() finds files in one context that is not
in the other. Let's move this code into a new method on manifestdict,
so m1.filesnotin(m2) can be optimized for various types of manifests
(we expect more types of manifests soon).
Matt Harbison <matt_harbison@yahoo.com> [Fri, 27 Feb 2015 23:30:42 -0500] rev 24183
subrepo: warn when adding already tracked files in gitsubrepo
This follows normal Mercurial rules, and the message is lifted from
workingctx.add(). The file is printed with abs() to be consistent with how it
is printed in workingctx, even though that is inconsistent with how added files
are printed in verbose mode. Further, the 'already tracked' notifications come
after all of the files that are added are printed, like in Mercurial.
As a side effect, we now have the reject list to return to the caller, so that
'hg add' exits with the proper code. It looks like an abort occurs if git fails
to add the file. Prior to touching 'snake.python' in the test, this was the
result of attempting to add the file after a 'git rm':
fatal: pathspec 'snake.python' did not match any files
abort: git add error 128 in s (in subrepo s)
I'm not sure what happens when git is a deep subrepo, but the 'in s' and
'in subrepo s' from @annotatesubrepoerror are redundant here. Maybe we should
stat the files before invoking git to catch this case and print out the prettier
hg message? The other thing missing from workingctx.add() is the call to
scmutil.checkportable(), but that would need to borrow the parent's ui object.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 26 Feb 2015 15:53:54 -0500] rev 24182
subrepo: don't exclude files in .hgignore when adding to git
The previous test gave a false success because only an hg-ignored pattern was
specified. Therefore match.files() was empty, and it fell back to the files
unknown to git. The simplest fix is to always consider what is unknown to git,
as well as anything specified explicitly. Files that are ignored by git can
only be introduced by an explicit mention in match.files().
Mads Kiilerich <madski@unity3d.com> [Wed, 14 Jan 2015 01:15:26 +0100] rev 24181
dirstate: clarify comment about leaving normal files undef if changed 'now'
Clarify that they only are saved as undef if they were marked as normal and
changed in the same second.
Mads Kiilerich <madski@unity3d.com> [Sun, 18 Jan 2015 02:38:57 +0100] rev 24180
spelling: fixes from proofreading of spell checker issues
Mads Kiilerich <madski@unity3d.com> [Fri, 27 Feb 2015 21:42:58 +0100] rev 24179
merge-tools: configuration for Beyond Compare on OS X
Based on the Linux configuration entry.
Mads Kiilerich <madski@unity3d.com> [Wed, 21 Jan 2015 00:02:17 +0100] rev 24178
convert: when converting from monotone, use the number 1 for close in extras
Monotone used '1' for close while core Mercurial use 1. Now, for consistency,
use the same value everywhere. It will be stored as a string anyway and the
change will not make any real difference.
(The actual value of 'close' doesn't matter as long as extras has such a key.)
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 02 Mar 2015 15:07:18 -0800] rev 24177
hgweb: extract changeset template mapping generation to own function
Similar in spirit to
513d47905114, I want to write an extension to
make available extra template keywords so hgweb templates can include
extra data.
To do this today requires monkeypatching the templater, which I think is
the wrong place to perform this modification.
This patch extracts the creation of the templater arguments to a
standalone function - one that can be monkeypatched by extensions.
I would very much like for extensions to be able to inject extra
templater parameters into *any* template. However, I'm not sure the best
way to facilitate this, as hgweb commands invoke the templater before
returning and we want the extensions to have access to rich data
structures like the context instances. We need cooperation inside hgweb
command functions. The use case screams for something like internal-only
"hooks." This is exactly what my (rejected) "events" patch series
provided. Perhaps that feature should be reconsidered...
Matt Mackall <mpm@selenic.com> [Mon, 02 Mar 2015 17:32:37 -0600] rev 24176
merge with stable
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Wed, 25 Feb 2015 18:12:01 -0500] rev 24175
revrange: don't parse revset aliases as hash prefixes (
issue4553)
If a user has a revsetalias defined, it is their explicit wish for
this alias to be parsed as a revset and nothing else. Although the
case of the alias being short enough and only contain the letters a-f
is probably kind of rare, it may still happen.
Mathias De Maré <mathias.demare@gmail.com> [Tue, 24 Feb 2015 08:49:22 +0100] rev 24174
subrepos: support adding files in git subrepos
This support includes correct matching, so includes,
excludes and patterns are all supported.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 15 Feb 2015 17:29:10 -0500] rev 24173
subrepo: return only the manifest keys from hgsubrepo.files()
This is in line with the other subrepo classes (i.e. only the filenames are
returned). Archive iterates over the manifest keys, and since subrepo archive()
uses this method, it does too now. This will allow largefiles to override its
manifest keys to present the largefiles instead of the standins. Once in place,
we shouldn't need the copy/paste overrides of archive and subrepo archive in
largefiles, that don't quite behave like the core methods they are overriding.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 15 Feb 2015 17:21:48 -0500] rev 24172
archive: change the default prefix to '' from None
All current callers supply some sort of prefix, so the issue was hidden. But if
no parameter was specified, a crash occurred in the write() closure when
concatenating 'prefix' and 'name'.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 25 Feb 2015 11:39:14 -0800] rev 24171
debugsetparent: document one common caveat specifically
After calling debugsetparent, it's quite common that status is
incorrect. The command's help text already says that it should be used
with care, but let's describe this caveat explicitly since it's
probably the most common one.