FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21046
util: enable "hooks" to return list of the values returned from each hooks
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21045
summary: separate checking incoming/outgoing and showing remote summary
This patch separates checking incoming/outgoing and showing remote
summary, as a preparation for refactoring in succeeding patches,
because:
- checking incoming/outgoing may be needed, even if "--remote" is
not specified for "hg summary"
- checking incoming/outgoing may not be needed simultaneously
"hg summary --large" without "--remote" is typical case for these.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21044
largefiles: reuse "findcommonoutgoing()" result at "hg push"
Before this patch, "hg push" invokes "findcommonoutgoing()" not only
in "exchange.push()" but also in "lfilesrepo.push()", when largefiles
is enabled. The latter is redundant.
This patch registers own "prepushoutgoinghook" function into
"prepushoutgoinghooks" of "localrepository" to reuse
"findcommonoutgoing()" result.
"prepushoutgoinghook" omits "changelog.nodesbetween()" invocation,
because "findcommonoutgoing()" invocation in "exchange.push()" takes
"onlyheads" argument and it considers "nodesbetween()".
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21043
localrepo: introduce "prepushoutgoinghooks" to extend outgoing check easily
This patch introduces "prepushoutgoinghooks" to extend outgoing check
before pushing changesets to remote easily.
This chooses the function returning "util.hooks" instead of the one to
be overridden.
The latter may cause problems silently, if one of overriders forgets
(or fails) to execute a kind of "super(xxx, self).overridden(...)". In
the other hand, the former can ensure that all registered functions
are invoked, unless one of them raises an exception.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 00:37:24 +0900] rev 21042
largefiles: centralize the logic to get outgoing largefiles
Before this patch, "overrides.getoutgoinglfiles()" (called by
"overrideoutgoing()" and "overridesummary()") and "lfilesrepo.push()"
implement similar logic to get outgoing largefiles separately.
This patch centralizes the logic to get outgoing largefiles in
"lfutil.getlfilestoupload()".
"lfutil.getlfilestoupload()" takes "addfunc" argument, because each
callers need different information (and it is useful for enhancement
in the future).
- "overrides.getoutgoinglfiles()" needs only filenames
- "lfilesrepo.push()" needs only hashes of largefiles
Matt Harbison <matt_harbison@yahoo.com> [Fri, 14 Mar 2014 21:32:05 -0400] rev 21041
cat: support cat with explicit paths in subrepos
The cat command with an explicit path into a subrepo is now handled by invoking
cat on the file, from that subrepo. The previous behavior was to complain that
the file didn't exist in the revision (of the top most repo). Now when the file
is actually missing, the revision of the subrepo is named instead (though it is
probably desirable to continue naming the top level repo).
The documented output formatters %d and %p reflect the path from the top level
repo, since the purpose of this is to give the illusion of a unified repository.
Support for the undocumented (for cat) formatters %H, %R, %h, %m and %r was
added long ago (I tested back as far as 0.5), but unfortunately these will
reflect the subrepo node instead of the parent context.
The previous implementation was a bit loose with the return value, i.e. it would
return 0 if _any_ file requested was cat'd successfully. This maintains that
behavior.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 13 Mar 2014 23:45:18 -0400] rev 21040
cat: move most of the implementation into cmdutils.cat()
This will allow access to the reusable parts from subrepos, similar to add(),
forget(), etc.
Kent Frazier <kentfrazier@gmail.com> [Tue, 15 Apr 2014 17:51:27 -0400] rev 21039
tests: mark test in tests/test-help.t as contingent on gettext being available
Kent Frazier <kentfrazier@gmail.com> [Tue, 15 Apr 2014 16:27:12 -0400] rev 21038
setup.py: fix C extension compilation issue with OS X 10.9 and Xcode 5.1
Sean Farley <sean.michael.farley@gmail.com> [Mon, 14 Apr 2014 18:21:26 -0500] rev 21037
color: add effect to the template symbol table
Previously, words like 'red' had to be protected by quotes before passing to
the label template function. Now, we add color effects to the symbol table so
that commands like,
$ hg log -r . -T "{label(red, node|short)}\n"
can work without the need for quoting.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 02:38:11 +0900] rev 21036
amend: invoke editor forcibly when "--edit" option is specified
422981492ace introduces "--edit" option into "hg commit", but it
doesn't work for "hg commit --amend", because
422981492ace prepares
for editor invocation only around "commitfunc()" internal function,
which is used only for temporary amend commit by "cmdutil.amend()".
Actual commit message editing is executed in "cmdutil.amend()".
This patch invokes editor forcibly when "--edit" option is specified
for "hg commit --amend", even if commit message is specified
explicitly by "--message" or "--logfile".
This patch also removes useless handling for commit message and editor
invocation around "commitfunc()" internal function.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 16 Apr 2014 02:04:41 +0900] rev 21035
commit: abolish useless "--force-editor" internal option for "hg commit"
"--force-editor" option for "hg commit" has been useless since
12721a20ed30, which makes "commands.tag()" invoke "cmdutil.commit()"
directly instead of "commands.commit()" with "--force-editor" internal
option.
This patch abolishes useless "--force-editor" internal option for "hg
commit".
Matt Mackall <mpm@selenic.com> [Tue, 15 Apr 2014 14:15:35 -0400] rev 21034
subrepo: return non-zero exit code when a subrepo push doesn't succeed
Matt Mackall <mpm@selenic.com> [Mon, 14 Apr 2014 23:27:31 -0400] rev 21033
debugrevlog: use unfiltered view for changelog
Mads Kiilerich <madski@unity3d.com> [Wed, 19 Mar 2014 00:13:38 +0100] rev 21032
debugrevlog: format columns (more) nicely when dumping index data
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 22 Mar 2014 17:14:37 -0700] rev 21031
branchmap: log events related to branch cache
The blackblox log will now contain log events when the branch caches are
updated and written.
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 14 Apr 2014 11:50:05 -0700] rev 21030
tags: log events related to tags cache
We now log when .hg/cache/tags data is built from scratch by reading
manifests and when the file is written.
Matt Mackall <mpm@selenic.com> [Mon, 14 Apr 2014 15:14:02 -0400] rev 21029
merge with stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 15 Apr 2014 03:21:59 +0900] rev 21028
histedit: save manually edited commit message into ".hg/last-message.txt"
Before this patch, manually edited commit message for "message"
command in histedit-ing is not saved into ".hg/last-message.txt" until
it is saved by "localrepository.savecommitmessage()" in
"localrepository.commit()".
This may lose such commit message, if unexpected exception is raised.
This patch saves manually edited commit message for "message" comand
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 should be centralized into the framework of
"localrepository.commit()" with "editor" argument in the future.
This patch uses repository wrapping class for exception raising before
saving commit message in "localrepository.commit()" easily and
certainly, because such exception requires corner case condition.
Mads Kiilerich <madski@unity3d.com> [Tue, 26 Nov 2013 03:18:56 +0100] rev 21027
rebase: tell when reopening a closed branch head
Give same 'reopening closed branch head X' message as commit gives.
Mads Kiilerich <madski@unity3d.com> [Sat, 27 Apr 2013 23:19:52 +0200] rev 21026
dirstate: inline local finish function
Having it as a local function adds no value.
Mads Kiilerich <madski@unity3d.com> [Tue, 08 Apr 2014 01:35:13 +0200] rev 21025
demandimport: make it possible to disable by setting HGDEMANDIMPORT=disable
Convenient for debugging weird problems that are caused by demandimport or
obfuscated by it.
This is an undocumented developer feature.
Mads Kiilerich <madski@unity3d.com> [Sun, 13 Apr 2014 19:01:00 +0200] rev 21024
spelling: fixes from spell checker
Mads Kiilerich <madski@unity3d.com> [Sun, 13 Apr 2014 19:01:00 +0200] rev 21023
tests: warn on invalid #if directive
Simon Heimberg <simohe@besonet.ch> [Mon, 25 Nov 2013 22:00:46 +0100] rev 21022
run-tests: test result shows when a failed test could not start a server
Failing to start a server happens regularly, at least on windows buildbot.
Such a failure often has nothing to do with the test, but with the environment.
But half the test output can change because some data is missing. Therefore this
is worth an extended error message.
Detect the server failure in the diff output because it is most reliable
there. Checking the output only does not show if the server failure was
expected.
Old failure message when server start failed:
Failed test-serve.t: output changed
New message:
Failed test-serve.t: serve failed and output changed
"Bradley M. Kuhn" <bkuhn@ebb.org> [Sun, 08 Sep 2013 19:02:08 -0400] rev 21021
commit: --edit/-e to force edit of otherwise-supplied commit message
The --edit/-e option for the 'commit' command forces editor, even when a
commit message has been provided already by other means, such as by the -m or
-l options.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Apr 2014 00:38:15 -0400] rev 21020
bundle2: directly feed part to readbundle
Now that part payload can be read like a stream, we can directly use it to feed
the unbundle10 process.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 16:05:22 -0400] rev 21019
bundle2: lazy unbundle of part payload
The `unbundle` part gains a `read` method to retrieve payload content.
This method behaves as a python file-like read method.
The bundle-processing code is updated to make sure a part is fully consumed before
another one is extracted.
Test output changes because the debug output is even more interleaved now.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 10 Apr 2014 22:10:26 -0700] rev 21018
util: support None size in chunkbuffer.read()
When no size is provided, read the whole buffer. This aligns with the usual
behavior of `read()` in python.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 15:02:26 -0400] rev 21017
bundle2: lazily iterate over bundle parts in the test
We used to create a list to know the number of parts in the bundle. This prevents
any lazy reading as planned for real usage.
The list creation is dropped. Some test output changed as debug output is
now interleaved with command output.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 15:47:38 -0400] rev 21016
bundle2: move unpackheader closure into the class
With the same argument as the other one, we move this closure into the
`unbundlepart` class.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 15:46:09 -0400] rev 21015
bundle2: move the fromheader closure into the class itself
The class is now directly related to this header data. We can sanely move it on
the class.
I do not like closures very much...
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 15:43:16 -0400] rev 21014
bundle2: add an unbundle part responsible from unbundling part
We have a new unbundle class and it is now responsible from extracting its own
data. The top level bundler only extracts the header (to detect an end of stream
marker) then leaves everything else to the `unbundlepart` class. The ultimate
goal is to have `unbundlepart` responsible for lazily extracting its payload.
This is mostly code movement.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 15:19:54 -0400] rev 21013
bundle2: extract stream/unpack logic in an unpackermixin
The coming `unbundlepart` will need the same kind of method than `unbundle20`
for unpacking data from the stream. We extract them into a mixin class before
the creation of `unbundlepart`.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 13 Apr 2014 12:21:09 -0400] rev 21012
exchange: restore truncated comment
The old version of this comment appeared to have been trunca
Takumi IINO <trot.thunder@gmail.com> [Mon, 31 Mar 2014 01:00:05 +0900] rev 21011
grep: highlight all matched words
"hg grep" highlights first matched word only.
This behavior is different from GNU grep.
This patch makes highlight all matched words.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 23 Jan 2014 14:09:53 -0800] rev 21010
phase: add a passing test for (
issue3575)
Apparently this issue was fixed along the way (If it ever existed at all…)
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 24 Mar 2014 22:12:37 -0700] rev 21009
run-tests: allow test paths in other directories
Previously, test paths were assumed to be in the same directory and
wouldn't have a directory component. If a path with a directory
component was specified, it would be filtered out. This change allow
paths to contain directories. This in turn allows tests from other
directories to be executed.
Executing tests in other directories may break assumptions elsewhere in
the testing code. However, on initial glance, things appear to "just
work." This approach of running tests from other directories is
successfully being used at
https://hg.mozilla.org/hgcustom/version-control-tools/file/
7085790ff3af/run-mercurial-tests.py
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 24 Mar 2014 21:52:28 -0700] rev 21008
run-tests: allow option parser to be extended
This patch moves the OptionParser population into its own function so
consumers may modify the OptionParser before arguments are evaluated.
This will allow consumers to add custom options, set different defaults,
etc.
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 24 Mar 2014 21:41:56 -0700] rev 21007
run-tests: use return values instead of sys.exit
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 24 Mar 2014 21:37:33 -0700] rev 21006
run-tests: Pass arguments into argument parser
Before, arguments were not passed into the optparse.OptionParser
instance and were coming from sys.argv. This patch enables consumers to
define the list of arguments to parse without having to adjust sys.argv.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 07:36:14 -0700] rev 21005
bundle2: rename part to bundlepart
We are going to introduce an `unbundlepart` dedicated to reading bundle. So we
need to rename the one used to create bundle. Even if dedicated to creation, this
is still used for unbundling until we get the new class.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 16:43:01 -0400] rev 21004
bundle2: comment to clarify why the handler call is where it is
The reason why it is here is not obvious. I'm the one who wrote it there in the
first place and almost moved it 2 weeks later.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Apr 2014 00:53:15 -0400] rev 21003
bundle2: use chunkbuffer for exchange.getbundle
We can use `util.chunkbuffer` instead.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Apr 2014 14:56:55 -0400] rev 21002
bundle2: lazily generate the changegroup part in exchange.getbundle
Now that we have lazy generation of parts, let's use it.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 08:04:16 -0700] rev 21001
bundle2: support chunk iterator as part data
When the `part.data` attribute is an iterator, we assume it is an iterator of
chunks and use it.
We use a chunkbuffer to yield chunks of 4096 bytes.
The tests are updated to use this feature.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 10 Apr 2014 12:33:20 -0700] rev 21000
bundle2: extract a _payloadchunks method for part
We are preparing streaming capability for part. So the generation of payload
chunk will becomes more complex. We extract this part in its own function before
any changes.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 10 Apr 2014 13:19:00 -0700] rev 20999
changegroup: move chunk extraction into a getchunks method of unbundle10
This code used to be in `writebundle` only. We needs to make it more broadly
available for bundle2. The "changegroup" bundle2 part has to retrieve the
binary content of changegroup stream. We moved the chunks retrieving code into
the `unbundle10` object directly and the `writebundle` code is now using that.
This split is useful for bundle2 purpose, we want to be able to easily stream
changegroup content in a part.
To keep thing simples, we kept compression out of the new methods. If it make
more sense in the future, compression may get included in this function too.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 25 Mar 2014 15:05:11 -0700] rev 20998
bundle2: use reply part to return result of addchangegroup
We now have an official way to return the result of addchangegroup. The tests are
updated to check that the return bundle is properly created. It will be used
when push is bundle2 enabled.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 04 Apr 2014 14:24:11 -0700] rev 20997
bundle2: produce a bundle2 reply
We do not know yet what kind of data future features and extensions will need to
exchange. To handle that, bundle2 allows to send arbitrary content to the
server. As a consequence, we need to be able to reply arbitrary content to the
client. And, we can use bundle2 to transmit those arbitrary data.
When a client will push a bundle2 to the server, the server will reply with a
bundle2 itself.
This changeset installs the first stone of this logic and test it.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 08:24:59 -0700] rev 20996
bundle2: add reply awareness to unbundlerecords
We need an efficient way to handle bundle replies. The unbundle records class is
extended to carry such data.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 00:07:17 -0700] rev 20995
bundle2: add an integer id to part
For sending response to a pushed bundle, we need to link reply parts to request
part. We introduce a part id for this purpose. This is a 32 bit unique
integer stored in the header.
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 23:10:20 +0200] rev 20994
largefiles: don't prompt when one side of merge was changed but didn't change
This can happen after backout or grafts or criss cross merges. We already do
the same (but slightly different) thing in manifestmerge and filemerge.
Sean Farley <sean.michael.farley@gmail.com> [Mon, 07 Apr 2014 15:37:27 -0500] rev 20993
color: fallback and test label as an effect
With this changeset, we can now send a color name directly to the label
function, e.g.
$ hg log -r . -T "{label('red', node|short)}\n"
Sean Farley <sean.michael.farley@gmail.com> [Mon, 07 Apr 2014 15:33:46 -0500] rev 20992
color: extract method for determining a valid effect
This patch is just setup work so that we can reduce code duplication and have
one place to define a valid effect.
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 23:17:51 +0200] rev 20991
revlog: use context ancestor instead of changelog ancestor
We want to move in this direction.
Mads Kiilerich <madski@unity3d.com> [Tue, 25 Feb 2014 20:31:53 +0100] rev 20990
copies: guard debug section with ui.debugflag
Mads Kiilerich <madski@unity3d.com> [Tue, 25 Feb 2014 20:31:51 +0100] rev 20989
copies: remove _checkcopies wrapper - it does no good
mergecopies might be doomed but it is not dead yet ...
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 23:17:51 +0200] rev 20988
transplant: use context ancestor instead of changelog ancestor
We want to move in this direction. ctx.ancestor is in a better position for
handling a situation with multiple ancestors.
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 23:17:51 +0200] rev 20987
commit: use revlog.commonancestors instead of .ancestor
This do probably not make any real difference but is slightly more correct and
we would like to get rid of flog.ancestor.
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 23:17:51 +0200] rev 20986
backout: don't limit heritage check to a single ancestor
This do probably not make any real difference but is slightly more correct and
we would like to get rid of changelog.ancestor.
Mads Kiilerich <madski@unity3d.com> [Thu, 20 Mar 2014 01:35:07 +0100] rev 20985
ancestor: remove unused genericancestor
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 23:17:48 +0200] rev 20984
context: remove unused filectx.ancestor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 09 Mar 2014 01:03:28 +0900] rev 20983
shelve: add "writebundle()" to invoke "writebundle()" with relative path and vfs