Thu, 27 Mar 2014 17:21:27 -0500 templater: raise error for unknown func stable
Sean Farley <sean.michael.farley@gmail.com> [Thu, 27 Mar 2014 17:21:27 -0500] rev 20857
templater: raise error for unknown func Previously, if a template '{foo()}' was given, the buildfunc would not be able to match it and hit a code path that would not return so it would error out later in the templater stating that NoneType was not iterable. This patch makes sure that a proper error is raised so that the user can be informed. Tests have been updated.
Tue, 18 Mar 2014 14:29:33 -0700 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 18 Mar 2014 14:29:33 -0700] rev 20856
bundle2: support bundling of empty part (with a type) Here start the work on bundle2 parts. Our first step is to be able to bundle a simplistic part that just have a type, no parameters, empty payload.
Wed, 26 Mar 2014 18:51:49 -0700 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Mar 2014 18:51:49 -0700] rev 20855
revsetbenchmark: add a summary at the end of execution The summary list timing per revset making it much more easier to compare revision to each other.
Wed, 26 Mar 2014 18:39:56 -0700 revsetbenchmark: retrieve the benchmark value in python
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Mar 2014 18:39:56 -0700] rev 20854
revsetbenchmark: retrieve the benchmark value in python We retrieve the output of the perf extension and print it ourself. This open the door to processing of this data in the script.
Wed, 26 Mar 2014 18:36:19 -0700 revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Mar 2014 18:36:19 -0700] rev 20853
revsetbenchmark: get revision to benchmark in a function And move it to proper subprocess call.
Wed, 26 Mar 2014 18:27:17 -0700 revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Mar 2014 18:27:17 -0700] rev 20852
revsetbenchmark: convert revision display to proper subprocesscall
Wed, 26 Mar 2014 18:26:18 -0700 revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Mar 2014 18:26:18 -0700] rev 20851
revsetbenchmark: convert performance call to proper subprocess call
Wed, 26 Mar 2014 18:14:15 -0700 revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Mar 2014 18:14:15 -0700] rev 20850
revsetbenchmark: convert update to proper subprocess call
Thu, 27 Mar 2014 16:52:24 -0500 revsetbenchmark: fix semicolon
Matt Mackall <mpm@selenic.com> [Thu, 27 Mar 2014 16:52:24 -0500] rev 20849
revsetbenchmark: fix semicolon
Wed, 26 Mar 2014 18:03:30 -0700 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Mar 2014 18:03:30 -0700] rev 20848
revsetbenchmark: simplify and convert the script to python The script is now in python. That translation is very raw, more improvement to comes: The "current code" and "base" entry have been dropped. This is trivial to get same result using a tagged revision or "." in the list of benchmarked revision.
Wed, 26 Mar 2014 16:38:08 -0700 revsetbenchmapi: fix template
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Mar 2014 16:38:08 -0700] rev 20847
revsetbenchmapi: fix template The revision description missed an \n
Wed, 26 Mar 2014 17:25:11 -0700 perf: unroll the result in perfrevset
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Mar 2014 17:25:11 -0700] rev 20846
perf: unroll the result in perfrevset With the new lazy revset implementation, we need to actually read all elements to trigger all the computations. Otherwise a no-op if of course much faster than the full work.
Thu, 20 Mar 2014 18:55:28 -0700 _addset: add a __len__ method
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 20 Mar 2014 18:55:28 -0700] rev 20845
_addset: add a __len__ method Back in the time where repo.revs(...) returned a list, calling `len(...)` on the result was quite common. We reinstall this on _addset. There is absolutely no easy way to test this from the command line. The commands using this in the evolve extension will eventually land into core.
Wed, 19 Mar 2014 17:53:45 -0700 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 19 Mar 2014 17:53:45 -0700] rev 20844
bundle2: implement the mandatory/advisory logic for parameter Parameter starting with an upper case are mandatory, the one starting with a lower case are advisory and may be ignored.
Wed, 19 Mar 2014 17:11:49 -0700 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 19 Mar 2014 17:11:49 -0700] rev 20843
bundle2: print debug information during unbundling The unbundler class is now feed with an ui object and use it to transmit data about the unbundling process.
Tue, 18 Mar 2014 19:07:10 -0700 bundle2: print debug information during bundling
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 18 Mar 2014 19:07:10 -0700] rev 20842
bundle2: print debug information during bundling The bundler class is now feed with an ui object and use it to transmit data about the bundling process.
Wed, 19 Mar 2014 02:36:21 -0700 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 19 Mar 2014 02:36:21 -0700] rev 20841
bundle2: add ability to write to a file to the test Next changesets are about improving debug output during bundling. We won't be able to simply bundle to stdin in this case. The bundle2 stream would be interleaved with debug output.
Fri, 21 Mar 2014 16:09:17 -0700 subrepo: factor out Git version check to add doctests
Siddharth Agarwal <sid0@fb.com> [Fri, 21 Mar 2014 16:09:17 -0700] rev 20840
subrepo: factor out Git version check to add doctests Followup to 6a2acb0d9352::e5641536e4d5.
Sat, 15 Feb 2014 19:51:20 +0900 contrib: add "hgperf" command to measure performance of commands easily
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 15 Feb 2014 19:51:20 +0900] rev 20839
contrib: add "hgperf" command to measure performance of commands easily Newly added "hgperf" command repeats "dispatch.runcommand()" for specified Mercurial command and measure performance of it in the same manner of "contrib/perf.py" extension. Users (mainly developers) can examine performance of the target command easily, without adding new entry for it to "contrib/perf.py" extension.
Sat, 15 Feb 2014 19:54:14 +0900 grep: exit loop immediately, if matching is found in the file for "hg grep -l"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 15 Feb 2014 19:54:14 +0900] rev 20838
grep: exit loop immediately, if matching is found in the file for "hg grep -l" Before this patch, internal function "display()" of "hg grep" is not efficient for "-l"/"--files-with-matches", because loop is continued, even after the first matching is found in the specified file. This patch exits loop immediately, if matching is found for "--files-with-matches". In this case, "before is None" is equal to "opts.get('files_with_matches')".
Sat, 15 Feb 2014 19:54:05 +0900 grep: use "found" instead of "filerevmatches" examination for efficiency
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 15 Feb 2014 19:54:05 +0900] rev 20837
grep: use "found" instead of "filerevmatches" examination for efficiency Before this patch, internal function "display()" of "hg grep" stores whether matching is already found or not into the dictionary "filerevmatches" by "(fn, rev)" tuple as the key. But this is redundant, because: - "filerevmatches" is local variable of "display()", so each "display()" invocations don't affect others - both "fn" and "rev" (gotten from "ctx" argument) are never changed in each "display()" invocations Then, "filerevmatches" should have only one entry at most, and "(fn, rev) in filerevmatches" should be equal to "found". This patch uses "found" instead of "filerevmatches" examination for efficiency.
Sat, 15 Feb 2014 19:52:36 +0900 grep: reuse the first "util.binary()" result for efficiency
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 15 Feb 2014 19:52:36 +0900] rev 20836
grep: reuse the first "util.binary()" result for efficiency Before this patch, to check whether the file in the specified revision is binary or not, "util.binary()" is invoked via internal function "binary()" of "hg grep" once per a line of "hg grep" output, even though binary-ness is not changed in the same file. This patch reuses the first "util.binary()" invocation result by annotating internal function "binary()" with "@util.cachefunc". Performance improvement measured by "hgperf grep -r 88d8e568add1 vfs mercurial/scmutil.py": before this patch: ! wall 0.024000 comb 0.015600 user 0.015600 sys 0.000000 (best of 118) after this patch: ! wall 0.023000 comb 0.015600 user 0.015600 sys 0.000000 (best of 123) Status of recent(88d8e568add1) "mercurial/scmutil.py": # of lines: 919 (may affect cost of search) # of bytes: 29633 (may affect cost of "util.binary()") # of matches: 22 (may affect frequency of "util.binary()")
Sat, 15 Feb 2014 19:52:26 +0900 util: add the code path to "cachefunc()" for the function taking no arguments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 15 Feb 2014 19:52:26 +0900] rev 20835
util: add the code path to "cachefunc()" for the function taking no arguments Before this patch, "util.cachefunc()" caches the value returned by the specified function into dictionary "cache", even if the specified function takes no arguments. In such case, "cache" has at most one entry, and distinction between entries in "cache" is meaningless. This patch adds the code path to "cachefunc()" for the function taking no arguments for efficiency: to store only one cached value, using list "cache" is a little faster than using dictionary "cache".
Wed, 26 Mar 2014 12:52:57 -0500 help: add examples to incoming
Matt Mackall <mpm@selenic.com> [Wed, 26 Mar 2014 12:52:57 -0500] rev 20834
help: add examples to incoming
Tue, 25 Mar 2014 16:10:07 -0700 revset: fix generatorset race condition
Durham Goode <durham@fb.com> [Tue, 25 Mar 2014 16:10:07 -0700] rev 20833
revset: fix generatorset race condition If two things were iterating over a generatorset at the same time, they could miss out on the things the other was generating, resulting in incomplete results. This fixes it by making it possible for two things to iterate at once, by always checking the _genlist at the beginning of each iteration. I was only able to repro it with pending changes from my other commits, but they aren't ready yet. So I'm unable to add a test for now.
Tue, 25 Mar 2014 23:07:52 +0100 tests: don't hardcode path to bash interpreter
Olle Lundberg <geek@nerd.sh> [Tue, 25 Mar 2014 23:07:52 +0100] rev 20832
tests: don't hardcode path to bash interpreter Use the env binary to figure out the correct bash to use. Certain systems ships with an ancient version of bash, but the user might have installed a newer one that is earlier in $PATH. For example the current version of Mac OS X ships version 3.2.51 of bash, which does not understand new fancy builtins such as readarray. A user might install a newer version of bash, use that as their shell and add that path before bin.
Wed, 26 Mar 2014 11:59:13 +0100 contrib: don't hardcode path to bash interpreter
Olle Lundberg <geek@nerd.sh> [Wed, 26 Mar 2014 11:59:13 +0100] rev 20831
contrib: don't hardcode path to bash interpreter Use the env binary to figure out the correct bash to use. Certain systems ships with an ancient version of bash, but the user might have installed a newer one that is earlier in $PATH. For example the current version of Mac OS X ships version 3.2.51 of bash, which does not understand new fancy builtins such as readarray. A user might install a newer version of bash, use that as their shell and add that path before bin.
Tue, 25 Mar 2014 23:10:15 +0100 contrib: explicitly enable perf extension for revset tests
Olle Lundberg <geek@nerd.sh> [Tue, 25 Mar 2014 23:10:15 +0100] rev 20830
contrib: explicitly enable perf extension for revset tests If a developer doesn't have the perf extension enabled the revset benchmarking will fail. This patch explicitly enables the perf extension when running the tests.
Tue, 25 Mar 2014 16:17:16 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 25 Mar 2014 16:17:16 -0500] rev 20829
merge with stable
Mon, 24 Mar 2014 20:00:18 -0700 revset: improve performance of _generatorset.__contains__ (issue 4201)
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 24 Mar 2014 20:00:18 -0700] rev 20828
revset: improve performance of _generatorset.__contains__ (issue 4201) _generatorset.__contains__ and __contains__ from child classes were calling into __iter__ to look for values. Since all previously-encountered values from the generator were cached and checked in __contains__ before this iteration, __contains__ was effectively performing iteration busy work which could lead to an explosion of redundant work. This patch changes __contains__ to be more intelligent. Instead of looking at all values via __iter__, __contains__ will instead go straight to "new" values from the underlying generator. On a clone of the Firefox repository with around 200,000 changesets, this patch decreases the execution time of the revset '::(200067)::' from ~100s to ~4s on the author's machine. Rebase operations (which use the aforementioned revset), speed up accordingly.
Sat, 22 Mar 2014 23:39:51 +0900 localrepo: omit ".hgsubstate" also from "added" files
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 22 Mar 2014 23:39:51 +0900] rev 20827
localrepo: omit ".hgsubstate" also from "added" files Before this patch, "localrepository.commit()" omits ".hgsubstate" from "modified" (changes[0]) and "removed" (changes[2]) file list before checking subrepositories, but leaves one in "added" (changes[1]) as it is. Then, "localrepository.commit()" adds ".hgsubstate" into "modified" or "removed" list forcibly, according to subrepository statuses. If "added" contains ".hgsubstate", the committed context will contain two ".hgsubstate" in its "files": one from "added" (not omitted one), and another from "modified" or "removed" (newly added one). How many times ".hgsubstate" appears in "files" changes node hash, even though revision content is same, because node hash calculation uses the specified "files" directly (without duplication check or so). This means that node hash of committed revision changes according to existence of ".hgsubstate" in "added" at "localrepository.commit()". ".hgsubstate" is treated as "added", not only in accidental cases, but also in the case of "qpush" for the patch adding ".hgsubstate". This patch omits ".hgsubstate" also from "added" files before checking subrepositories. This patch also omits ".hgsubstate" exclusion in "qnew"/"qrefresh" introduced by changeset d666da075b91, because this patch makes them meaningless. "hg parents --template '{files}\n'" newly added to "test-mq-subrepo.t" enhances checking unexpected multiple appearances of ".hgsubstate" in "files" of created/refreshed MQ revisions.
Fri, 07 Mar 2014 14:06:52 -0500 dispatch: only do __import__(debugger) when a debugger is requested stable
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 07 Mar 2014 14:06:52 -0500] rev 20826
dispatch: only do __import__(debugger) when a debugger is requested When having ui.debugger=somedebugger in one's ~/.hgrc, this then somedebugger would be imported for every hg command. With this patch, this import only happens if the --debugger parameter is passed.
Tue, 25 Mar 2014 19:34:17 +0900 hg: use "os.path.join()" to join path components which may be empty (issue4203) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 25 Mar 2014 19:34:17 +0900] rev 20825
hg: use "os.path.join()" to join path components which may be empty (issue4203) Changset 2d0ab571b822 rewriting "hg.copystore()" with vfs uses 'dstbase + "/lock"' instead of "os.path.join()", because target files given from "store.copyfiles()" already uses "/" as path separator But in the repository using revlog format 0, "dstbase" becomes empty ("data" directory is located under ".hg" directly), and 'dstbase + "/lock"' is treated as "/lock": in almost all cases, write access to "/lock" causes "permission denied". This patch uses "os.path.join()" to join path components which may be empty in "hg.copystore()".
Mon, 24 Mar 2014 21:27:40 -0400 revset: document the regular expression support for tag(name) stable
Matt Harbison <matt_harbison@yahoo.com> [Mon, 24 Mar 2014 21:27:40 -0400] rev 20824
revset: document the regular expression support for tag(name) This has been supported since 20f55613fb2a, in 2.3.
Sat, 22 Mar 2014 14:46:55 -0500 help: allow -k to find debug commands
Matt Mackall <mpm@selenic.com> [Sat, 22 Mar 2014 14:46:55 -0500] rev 20823
help: allow -k to find debug commands
Sat, 15 Mar 2014 16:14:04 +0100 help: let 'hg help debug' show the list of secret debug commands
Mads Kiilerich <madski@unity3d.com> [Sat, 15 Mar 2014 16:14:04 +0100] rev 20822
help: let 'hg help debug' show the list of secret debug commands The names of the debug commands are not easy to remember and they are not easy to find.
Fri, 28 Feb 2014 02:09:00 +0100 tests: add run-tests --changed option for running tests changed in revisions
Mads Kiilerich <madski@unity3d.com> [Fri, 28 Feb 2014 02:09:00 +0100] rev 20821
tests: add run-tests --changed option for running tests changed in revisions Convenient when polishing patches and changing details of how they change test output. This will probably break in weird ways for revsets with special quoting ... but it is good enough for run-tests. Usage example: yes | ./run-tests.py -li --changed qparent
Wed, 19 Mar 2014 00:18:30 +0100 repo: rephrase the "missing requirement" error message
Mads Kiilerich <madski@unity3d.com> [Wed, 19 Mar 2014 00:18:30 +0100] rev 20820
repo: rephrase the "missing requirement" error message Unknown requirements will now be reported as: abort: repository requires features unknown to this Mercurial: largefiles! (see http://mercurial.selenic.com/wiki/MissingRequirement for more information) Some features of this phrasing: * avoid double ':' in abort message * make it more clear who requires and knows what * don't quote the requirement names - it is not something the user entered or need the exact spelling of ... and it is "identifiers" that are unambiguous anyway * remove double hint by removing "(upgrade Mercurial)" comment * don't mention upgrading Mercurial without mentioning enabling the feature - instead, just refer to wiki page for both * don't just talk about "details", talk about "more information"
Thu, 20 Mar 2014 17:34:02 -0700 revpair: drop useless conditional
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 20 Mar 2014 17:34:02 -0700] rev 20819
revpair: drop useless conditional The `if not revs:` case is tested at the beginning of the function.
Fri, 21 Mar 2014 17:20:56 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 21 Mar 2014 17:20:56 -0500] rev 20818
merge with stable
Thu, 20 Mar 2014 19:39:05 -0700 subrepo: add trailing newlines to warnings stable
Siddharth Agarwal <sid0@fb.com> [Thu, 20 Mar 2014 19:39:05 -0700] rev 20817
subrepo: add trailing newlines to warnings
Thu, 20 Mar 2014 19:38:17 -0700 subrepo: convert matched string to integer before comparing Git version stable
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.
Thu, 20 Mar 2014 19:37:01 -0700 subrepo: only retrieve the first two components of the Git version stable
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.
Tue, 18 Mar 2014 18:56:08 -0700 bundle2: force the first char of parameter to be an letter.
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.
Tue, 18 Mar 2014 18:40:31 -0700 bundle2: refuse empty parameter name
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.
Tue, 18 Mar 2014 17:43:08 -0700 bundle2: urlunquote stream parameter name and value during unbundling
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.
Tue, 18 Mar 2014 17:38:11 -0700 bundle2: urlquote stream parameter name and value
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.
Tue, 18 Mar 2014 16:12:33 -0700 bundle2: support for unbundling parameter value
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.
Tue, 18 Mar 2014 16:05:06 -0700 bundle2: support for bundling parameter value
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.
Thu, 20 Mar 2014 13:18:34 -0700 bundle2: clarify stream parameter design in the documentation
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.
Tue, 18 Mar 2014 20:10:33 -0500 repoview: add non-global tags to candidate list for blocking hidden changesets
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).
Thu, 13 Mar 2014 16:05:06 -0700 histedit: select the lowest rev when looking for a root in a revset (bc)
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.
Tue, 18 Mar 2014 15:56:24 -0700 bundle2: support for unbundling simple parameter
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.
Wed, 19 Mar 2014 14:52:03 -0700 bundle2: support bundling simple 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.
Tue, 18 Mar 2014 16:35:34 -0700 bundle2: make sure the unbundler refuse non bundle2 stream
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.
Tue, 18 Mar 2014 14:28:42 -0700 bundle2: a very first version of bundle2 unbundler
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.
Tue, 18 Mar 2014 14:00:50 -0700 bundle2: very first version of a bundle2 bundler
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.
Sat, 22 Mar 2014 00:46:12 +0900 clone: abort if default destination has no meaningful name (BC)
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.
Sat, 22 Mar 2014 00:46:08 +0900 clone: add doctest for default destination
Yuya Nishihara <yuya@tcha.org> [Sat, 22 Mar 2014 00:46:08 +0900] rev 20799
clone: add doctest for default destination
Thu, 20 Mar 2014 09:55:44 -0700 scmutil: fix revrange when multiple revs are specified
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.
(0) -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 +10000 +30000 tip