Siddharth Agarwal <sid0@fb.com> [Thu, 20 Mar 2014 19:38:17 -0700] rev 20816
subrepo: convert matched string to integer before comparing Git version
(1, '4') is greater than (1, 5) so the version check never actually worked.
Siddharth Agarwal <sid0@fb.com> [Thu, 20 Mar 2014 19:37:01 -0700] rev 20815
subrepo: only retrieve the first two components of the Git version
This makes the version detection compatible with Git versions like '1.9-rc0'.
We only cared about the first two components of the version anyway.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 18 Mar 2014 18:56:08 -0700] rev 20814
bundle2: force the first char of parameter to be an letter.
We need a case sensitive character to convey mandatory/advisory parameter
semantic in a later patches.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 18 Mar 2014 18:40:31 -0700] rev 20813
bundle2: refuse empty parameter name
The bundle2 now raise value error when seeing invalid parameter names. The first
introduced rules is: no empty parameter.
The test extension is improve to properly abort when ValueError are encountered.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 18 Mar 2014 17:43:08 -0700] rev 20812
bundle2: urlunquote stream parameter name and value during unbundling
Align to new escaping used during bundling.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 18 Mar 2014 17:38:11 -0700] rev 20811
bundle2: urlquote stream parameter name and value
This introduces support for arbitrary characters in stream parameters name and
value. The urlquote format has been chosen because it is:
- simple,
- standard,
- no-op on simple alphanumerical entry.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 18 Mar 2014 16:12:33 -0700] rev 20810
bundle2: support for unbundling parameter value
The unbundler now understand parameter value. introduced in the previous
changeset.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 18 Mar 2014 16:05:06 -0700] rev 20809
bundle2: support for bundling parameter value
Parameter can now have a value. We use a `<name>=<value>` form inspired from
capabilities.
There is still no kind of escaping in the name or value, yet.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 20 Mar 2014 13:18:34 -0700] rev 20808
bundle2: clarify stream parameter design in the documentation
Stream level parameter have very restricted use case. Clarify why we chosen a
textual format and point that applicative data goes in applicative parts.
Sean Farley <sean.michael.farley@gmail.com> [Tue, 18 Mar 2014 20:10:33 -0500] rev 20807
repoview: add non-global tags to candidate list for blocking hidden changesets
Previously, only bookmarks would be considered for blocking a changeset from
being hidden. Now, we also consider non-global tags. This is helpful if we have
local tags that might be hard to find once they are hidden, or tag that are
added by extensions (e.g. hggit or remotebranches).
David Soria Parra <davidsp@fb.com> [Thu, 13 Mar 2014 16:05:06 -0700] rev 20806
histedit: select the lowest rev when looking for a root in a revset (bc)
When we specify a revision or a revset we just get the last element from the
list. For revsets this can lead to unintended effects where you specify a
revset like only() but instead histedit selects the highest revision in the
set as root. Therefore we should always use the lowest revision number as
root.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 18 Mar 2014 15:56:24 -0700] rev 20805
bundle2: support for unbundling simple parameter
the unbundler now understand simple list of parameter.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 19 Mar 2014 14:52:03 -0700] rev 20804
bundle2: support bundling simple parameter
This changeset add bundling capacity for simple parameters, not value or any
special case are handled.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 18 Mar 2014 16:35:34 -0700] rev 20803
bundle2: make sure the unbundler refuse non bundle2 stream
We now make use of the magic string at the beginning of the file.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 18 Mar 2014 14:28:42 -0700] rev 20802
bundle2: a very first version of bundle2 unbundler
This changeset introduce an unbundler class to match the bundle2 bundler. It is
currently able to unbundle an empty bundle2 only and will gain more feature at
the same pace than the bundler.
It also comes with its special extension command in test.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 18 Mar 2014 14:00:50 -0700] rev 20801
bundle2: very first version of a bundle2 bundler
This changeset is the very first of a long series. It create a new bundle2
module and add a simple class that generate and empty bundle2 container.
The module is documented with the current state of the implementation. For
information about the final goal you may want to consult the mercurial wiki
page:
http://mercurial.selenic.com/wiki/BundleFormat2
The documentation of the module will be updated with later patches adding more and
more feature to the format.
This patches also introduce a test case. This test case build and use its own
small extension that use the new bundle2 module. Since the new format is unable
to do anything right now, we could not use real mercurial code to test it.
Moreover, some advanced feature of the bundle2 spec will not be used by core
mercurial at all. So we need to have them tested.
Yuya Nishihara <yuya@tcha.org> [Sat, 22 Mar 2014 00:46:12 +0900] rev 20800
clone: abort if default destination has no meaningful name (BC)
If source URL has no path, default destination is resolved as '.'. It is
surprising than useful, and perhaps an unexpected behavior.
This change does not solve
issue3880, but can avoid to clone into current
directory by accident.
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()".