Yuya Nishihara <yuya@tcha.org> [Sat, 22 Mar 2014 00:46:08 +0900] rev 20799
clone: add doctest for default destination
Durham Goode <durham@fb.com> [Thu, 20 Mar 2014 09:55:44 -0700] rev 20798
scmutil: fix revrange when multiple revs are specified
revrange was trying to add a list to a revset class, but revset classes only
support adding with other revset classes. So wrap the lists in basesets.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 20 Mar 2014 00:01:59 -0400] rev 20797
parsers: fix compiler errors on MSVC 2008
This broke in
3681de20b0a7.
Matt Mackall <mpm@selenic.com> [Wed, 19 Mar 2014 18:04:03 -0500] rev 20796
check-code: check for argument passing py2.6ism
Matt Mackall <mpm@selenic.com> [Wed, 19 Mar 2014 16:21:53 -0500] rev 20795
merge with stable
Siddharth Agarwal <sid0@fb.com> [Tue, 18 Mar 2014 13:40:03 -0700] rev 20794
sshpeer: only print out 'running ssh' messages in debug mode (BC)
Previously, if another command was run with --verbose, and for whatever reason
that invoked sshpeer, we'd get a 'running ssh' message from sshpeer. This extra
line would interfere with that command's output and cause dumb parsers to
break.
For example, hg annotate can be run with --verbose to get full usernames. This,
combined with the third-party remotefilelog extension which can cause ssh
connections to be created, leads to an extra 'running ssh' line that breaks
most parsers.
This patch is (BC) because hg pull --verbose will no longer print out exactly
what ssh command it is running.
No tests are affected by this change.
Mads Kiilerich <madski@unity3d.com> [Wed, 19 Mar 2014 00:19:54 +0100] rev 20793
tests: small refactoring of run-tests' handling of tests list
Mads Kiilerich <madski@unity3d.com> [Fri, 28 Feb 2014 02:26:03 +0100] rev 20792
merge: mark mergestate as dirty when resolve changes _state
Correctness - no visible difference so far.
Mads Kiilerich <madski@unity3d.com> [Mon, 24 Feb 2014 22:42:14 +0100] rev 20791
backout: improve confusing 'cannot backout change on a different branch' abort
These days 'branch' usually refer to a named branch.
Instead, abort with 'cannot backout change that not is an ancestor'.
Mads Kiilerich <madski@unity3d.com> [Wed, 19 Mar 2014 02:45:14 +0100] rev 20790
config: set a 'source' in most cases where config don't come from file but code
Some extensions set configuration settings that showed up in 'hg showconfig
--debug' with 'none' as source. That was confusing.
Instead, they will now tell which extension they come from.
This change tries to be consistent and specify a source everywhere - also where
it perhaps is less relevant.
Mads Kiilerich <madski@unity3d.com> [Wed, 19 Mar 2014 02:45:14 +0100] rev 20789
config: don't set source when no source is specified - don't overwrite with ''
This prevents ui.fixconfig from overwriting the source of paths and it will
thus show up in showconfig --debug.
Mads Kiilerich <madski@unity3d.com> [Wed, 19 Mar 2014 02:45:04 +0100] rev 20788
config: give a useful hint of source for the most common command line settings
'hg showconfig --debug' will instead of:
none: ui.verbose=False
give the better hint:
--verbose: ui.verbose=False
Mads Kiilerich <madski@unity3d.com> [Wed, 19 Mar 2014 01:59:15 +0100] rev 20787
config: backout
77f1f206e135 -
743daa601445 removed the only use of overlay
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 20 Mar 2014 00:10:45 +0900] rev 20786
mq: omit ".hgsubstate" from qnew/qrefresh target list for consistent node hash
Before this patch, even if specified file patterns and -I/-X options
cause listing ".hgsubstate" up in the target list, qnew/qrefresh put
".hgsubstate" into the target list individually and forcibly.
This changes how many times ".hgsubstate" appear in the target list
according to run-time conditions, and causes inconsistent node hash,
even though revision content is same, because node hash calculation
uses the specified target list directly (without duplication check or
so).
This patch always omits ".hgsubstate" from qnew/qrefresh target list
for consistent node hash.
This omitting doesn't miss including ".hgsubstate" changes, because:
- "localrepository.commit()" puts ".hgsubstate" into the target list
for "commitctx()" forcibly if needed
- "mq.putsubstate2changes()" puts ".hgsubstate" into the target list
for "patch.diff()" if it is not yet listed up
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 20 Mar 2014 00:10:45 +0900] rev 20785
qnew: omit meaningless and harmful putting subrepositories into target list
Before this patch, qnew puts updated subrepositories into target list
forcibly, if any of -I, -X or patterns are specified.
But this is meaningless and harmful, because:
- putting subrepositories into target list doesn't affect the result
of "localrepository.status()"
"dirstate.status()" invoked via "localrepository.status()" always
omits subrepositories from the result of it
- any -I/-X opts and empty "pats" causes unexpected failure
when any -I/-X opts are specified, "inclsubs" are always added to
"pats", even if "pats" is empty.
but this changes meaning of "pats" from "including all to be
included" to "including only listed subrepositories"
this may exclude ".hgsub" and cause unexpected exception raising
("can't commit subrepos without .hgsub" ).
- qnew at other than repository root (with -I, -X or any patterns)
causes unexpected failure
"scmutil.match()" treats pattern without syntax type as 'relpath'
type (= one rooted at cwd).
but qnew puts subrepository paths rooted at the repository root,
and it causes unexpected exception raising ("SUBREPO not under
root ROOT" in "pathutil.canonpath()"), if "hg qnew" is executed at
other than repository root with -I, -X or any patterns.
This patch omits meaningless and harmful putting subrepositories into
target list.
This omitting doesn't miss including updated subrepositories, because
subrepositories are specified to "scmutil.matchfiles()" directly, to
get "match" object for "localrepository.commit()".
Mads Kiilerich <madski@unity3d.com> [Wed, 19 Mar 2014 00:19:54 +0100] rev 20784
convert: more clear documentation of the 'include' default of a 'include .'
At first glance it can be confusing that adding a superfluous include directive
will exclude more files.
Matt Mackall <mpm@selenic.com> [Tue, 18 Mar 2014 18:57:19 -0500] rev 20783
config: mention edit options and config topic in help
Matt Mackall <mpm@selenic.com> [Tue, 18 Mar 2014 18:49:30 -0500] rev 20782
config: add --global and --local flags
These start an editor on the system-wide or repository-level config files.
Matt Mackall <mpm@selenic.com> [Tue, 18 Mar 2014 17:56:27 -0500] rev 20781
revrange: pass repo to revset parser
This allows handling of hyphenated symbols for command-line revsets.
Matt Mackall <mpm@selenic.com> [Tue, 18 Mar 2014 17:54:42 -0500] rev 20780
revset: try to handle hyphenated symbols if lookup callback is available
Formerly an expression like "2.4-rc::" was tokenized as 2.4|-|rc|::.
This allows dashes in symbols iff the whole symbol-like string can be
looked up. Otherwise, it's tokenized as a series of symbols and
operators.
No attempt is made to accept dashed symbols inside larger symbol-like
string, for instance foo-bar or bar-baz inside foo-bar-baz.
Matt Mackall <mpm@selenic.com> [Tue, 18 Mar 2014 17:19:44 -0500] rev 20779
revset: pass a lookup function to the tokenizer
Matt Mackall <mpm@selenic.com> [Tue, 18 Mar 2014 17:17:23 -0500] rev 20778
parser: allow passing a lookup function to a tokenizer
This will allow us to dynamically handle hyphenated symbols in revsets.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 15 Mar 2014 18:11:51 -0700] rev 20777
benchmark-revset: add full version of benchmarked revset
All revsets added to benchmark so far are aimed to show an improvement of
performance from laziness. We had more wider version to track impact of laziness
on them.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 14 Mar 2014 00:02:05 -0700] rev 20776
localrepo: rename capability set to lower case.
This is not C and they are not even constant.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 12 Mar 2014 14:46:41 -0700] rev 20775
wireproto: move wireproto capabilities computation in a subfunction
It will help people that need to add capabilities (in a more subtle was that
just adding some to the list) in multiple way:
1. This function returns a list, not a string. Making it easier to look at,
extend or alter the content.
2. The original capabilities function will be store in the dictionary of wire
protocol command. So extension that wrap this function also need to update
the dictionary entry.
Both wrapping and update of the dictionary entry are needed because the
`hello` wire protocol use the function itself. This is specifically sneaky for
extension writer as ssh use the `hello` command while http use the
`capabilities` command.
With this new `_capabilities` function there is one and only one obvious
place to wrap when needed.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 11 Mar 2014 01:38:02 -0700] rev 20774
wireproto: extract capabilities list in outside the wireproto function
Before that it was over complicated to add capabilities from an extension.
This mimic was is done for capabilities in localrepo.
Matt Mackall <mpm@selenic.com> [Tue, 18 Mar 2014 14:25:28 -0500] rev 20773
merge with stable
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 17 Mar 2014 14:57:13 -0400] rev 20772
commit: propagate --secret option to subrepos (
issue4182)
Before this patch, `hg commit --secret` was not getting propagated
correctly, and subrepos were not getting the commit in the secret
phase. The problem is that subrepos get their ui from the base repo's
baseui object and ignore the ui object passed on to them. This sets
and restores both ui objects with the appropriate option.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 19 Mar 2014 01:07:41 +0900] rev 20771
amend: save commit message into ".hg/last-message.txt"
Before this patch, commit message (may be manually edited) for "commit
--amend" is never saved into ".hg/last-message.txt", because it uses
"localrepository.commitctx()" instead of "localrepository.commit()":
saving into ".hg/last-message.txt" is executed only in the latter.
This patch saves commit message for "commit --amend" into
".hg/last-message.txt" just after user editing.
This is the simplest implementation to fix on stable. Editing and
saving commit message for memctx should be centralized into the
framework like "localrepository.commit()" with "editor" argument or so
in the future.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 19 Mar 2014 01:07:41 +0900] rev 20770
histedit: save manually edited commit message into ".hg/last-message.txt"
Before this patch, manually edited commit message for "fold" command
in histedit-ing is never saved into ".hg/last-message.txt", because it
uses "localrepository.commitctx()" instead of
"localrepository.commit()": saving into ".hg/last-message.txt" is
executed only in the latter.
This patch saves manually edited commit message for "fold" command in
histedit-ing into ".hg/last-message.txt" just after user editing.
This is the simplest implementation to fix on stable. Editing and
saving commit message for memctx should be centralized into the
framework like "localrepository.commit()" with "editor" argument or so
in the future.