Tue, 25 Sep 2012 15:25:12 +0400 merge with i18n stable
Alexander Sauta <demosito@gmail.com> [Tue, 25 Sep 2012 15:25:12 +0400] rev 17656
merge with i18n
Fri, 14 Sep 2012 23:52:33 +0400 i18n-ru: fix spelling of "unrecognized response" translation stable
Nikolaj Sjujskij <sterkrig@myopera.com> [Fri, 14 Sep 2012 23:52:33 +0400] rev 17655
i18n-ru: fix spelling of "unrecognized response" translation
Fri, 31 Aug 2012 02:06:29 +0900 localrepo: use "vfs" constructor/field for initialization around "store"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17654
localrepo: use "vfs" constructor/field for initialization around "store"
Fri, 31 Aug 2012 02:06:29 +0900 store: initialize "vfs" fields by "vfs" constructors
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17653
store: initialize "vfs" fields by "vfs" constructors For backwards compatibility, "opener" fields are still left as aliases for "vfs" ones.
Fri, 31 Aug 2012 02:06:29 +0900 store: rename "op" variables to "vfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17652
store: rename "op" variables to "vfs"
Fri, 31 Aug 2012 02:06:29 +0900 store: rename "openertype" argument to "vfstype"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17651
store: rename "openertype" argument to "vfstype"
Fri, 31 Aug 2012 02:06:29 +0900 localrepo: use "vfs" constructor instead of "opener" one
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17650
localrepo: use "vfs" constructor instead of "opener" one This patch also changes initialization order of "*opener" and "*vfs" fields: first, "*vfs" fields are initialized , and then, "*opener" ones are initialized.
Fri, 31 Aug 2012 02:06:29 +0900 scmutil: rename classes from "opener" to "vfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17649
scmutil: rename classes from "opener" to "vfs" For backwards compatibility, aliases for the old names are added, except for "abstractopener", "statichttpopener" and "_fncacheopener", because these are not used in Mercurial core implementation after this patch. "_fncacheopener" was only referred in "fncachestore" constructor, so this patch also renames from "_fncacheopener" to "_fncachevfs" there.
Mon, 13 Aug 2012 21:25:48 +0900 doc: add the tool to check section marks in help documents
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 13 Aug 2012 21:25:48 +0900] rev 17648
doc: add the tool to check section marks in help documents This patch adds "doc/check-seclevel.py" which checks below in help documents: - whether unknown or unavailable section marks are used or not - whether appropriate section mark is used at sub-sectioning It should be invoked in "doc" directory. It checks all help documents of Mercurial (topics, commands, extensions), if no file is specified by --file option. With --file option, it checks contents of the specified file as help document, for self testing purpose: -t/-c/-e/-C are used to specify what kind of help document contents of the specified file is. This checking is related to changeset 979b107eaea2.
Fri, 21 Sep 2012 19:27:22 +0200 histedit: replaces patching logic by merges
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 19:27:22 +0200] rev 17647
histedit: replaces patching logic by merges The old and fragile patching logic is replaced by smart merges (as rebase and graft do). This should prevents some conflicts and smoother human resolution. For this purpose the "foldchanges" function is renamed to "applychanges" and handle a single revision only.
Fri, 21 Sep 2012 19:13:25 +0200 histedit-test: ensure that non commute test will never commute
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 21 Sep 2012 19:13:25 +0200] rev 17646
histedit-test: ensure that non commute test will never commute The previous version would commute if using merge algorithm (to be accurate, merge will cleanly prompt the user during the merge). The new version create and initial commit with some content for all involved files en ensure all changes are a content changes of the first lines. This lead to guaranteed conflict when commuted.
Fri, 21 Sep 2012 19:25:19 +0200 histedit: display action being processed in debug mode
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 19:25:19 +0200] rev 17645
histedit: display action being processed in debug mode This is very useful when debugging histedit.
Fri, 21 Sep 2012 19:24:31 +0200 histedit: fold in memory
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 21 Sep 2012 19:24:31 +0200] rev 17644
histedit: fold in memory Update the folding code to works in memory instead of applying patches on the working directory. This is cleaner, faster and prepare the removal of the whole patching logic. This new collapse function will probably move into core sooner or later. A lot of other rewriting operation may benefit from it.
Fri, 21 Sep 2012 00:33:30 +0200 histedit: move makedesc function near other rules related function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 00:33:30 +0200] rev 17643
histedit: move makedesc function near other rules related function Having it in the middle of action logic is confusing
Fri, 21 Sep 2012 19:14:04 +0200 histedit: move `between function` outside the action logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 19:14:04 +0200] rev 17642
histedit: move `between function` outside the action logic Having this function in the middle of action and patching logic did not make sense
Fri, 21 Sep 2012 00:30:22 +0200 histedit document the makedest function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 00:30:22 +0200] rev 17641
histedit document the makedest function
Fri, 21 Sep 2012 00:30:07 +0200 histedit: documents the between function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 00:30:07 +0200] rev 17640
histedit: documents the between function
Mon, 24 Sep 2012 15:54:45 -0500 templatefilters: add parameterized date method
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:54:45 -0500] rev 17639
templatefilters: add parameterized date method
Mon, 24 Sep 2012 15:54:44 -0500 templatefilters: add parameterized fill function
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:54:44 -0500] rev 17638
templatefilters: add parameterized fill function
Mon, 24 Sep 2012 15:28:04 -0500 templater: pull in functions defined in templatefilters
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:28:04 -0500] rev 17637
templater: pull in functions defined in templatefilters
Mon, 24 Sep 2012 15:26:56 -0500 templater: add if/ifeq conditionals
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:26:56 -0500] rev 17636
templater: add if/ifeq conditionals
Mon, 24 Sep 2012 15:26:17 -0500 templater: add sub() function
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:26:17 -0500] rev 17635
templater: add sub() function
Mon, 24 Sep 2012 15:24:27 -0500 templater: correctly deal with r"" strings
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:24:27 -0500] rev 17634
templater: correctly deal with r"" strings
Sat, 22 Sep 2012 13:04:36 -0500 template: add join function
Matt Mackall <mpm@selenic.com> [Sat, 22 Sep 2012 13:04:36 -0500] rev 17633
template: add join function This allows: {join(files % "{files}", ", ") }\n to produce a properly comma-separated list
Sat, 22 Sep 2012 13:02:33 -0500 templater: factor out runtemplate method
Matt Mackall <mpm@selenic.com> [Sat, 22 Sep 2012 13:02:33 -0500] rev 17632
templater: factor out runtemplate method As a side-effect, this makes the output of runmap non-flattened
Fri, 21 Sep 2012 18:54:00 -0500 templating: make new-style templating features work with command line lists
Matt Mackall <mpm@selenic.com> [Fri, 21 Sep 2012 18:54:00 -0500] rev 17631
templating: make new-style templating features work with command line lists
Thu, 20 Sep 2012 23:30:59 -0400 formatter: improve implementation of data method
David M. Carr <david@carrclan.us> [Thu, 20 Sep 2012 23:30:59 -0400] rev 17630
formatter: improve implementation of data method This alternate syntax was proposed by Bryan O'Sullivan in a review of 772b3764d3e8. I haven't been able to measure any particular performance difference, but the new syntax is more concise and easier to read.
Wed, 19 Sep 2012 09:38:51 -0700 Merge with crew-stable
Bryan O'Sullivan <bryano@fb.com> [Wed, 19 Sep 2012 09:38:51 -0700] rev 17629
Merge with crew-stable
Tue, 18 Sep 2012 19:46:15 +0900 archival: add "extended-timestamp" extra block for zip archives (issue3600) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 18 Sep 2012 19:46:15 +0900] rev 17628
archival: add "extended-timestamp" extra block for zip archives (issue3600) Before this patch, zip archives created by "hg archive" are extracted with unexpected timestamp, if TZ is not configured as GMT. This patch adds "extended-timestamp" extra block to zip archives, and unzip will extract such archives with timestamp specified in added extra block, even though TZ is not configured as GMT. Please see documents below for detail about specification of zip file format and "extended-timestamp" extra block: http://www.pkware.com/documents/casestudies/APPNOTE.TXT http://www.opensource.apple.com/source/zip/zip-6/unzip/unzip/proginfo/extra.fld Original implementation of this patch was suggested by "Jun Omae <jun66j5@gmail.com>".
Tue, 18 Sep 2012 21:39:12 +0900 bookmarks: use "changectx.descendant()" for efficient descendant examination
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 18 Sep 2012 21:39:12 +0900] rev 17627
bookmarks: use "changectx.descendant()" for efficient descendant examination This patch uses "old.descendant(new)" expression instead of "new in old.descendants()" for efficiency.
Tue, 18 Sep 2012 21:39:12 +0900 context: add "descendant()" to changectx for efficient descendant examination
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 18 Sep 2012 21:39:12 +0900] rev 17626
context: add "descendant()" to changectx for efficient descendant examination This patch adds "descendant()", which uses "revlog.descendant()" for descendant examination, to changectx. This implementation is more efficient than "new in old.descendants()" expression, because: - "changectx.descendants()" creates temporary "changectx" objects, but "revlog.descendant()" doesn't "revlog.descendant()" checks only revision numbers of descendants. - "revlog.descendant()" stops scanning, when scanning of all revisions less than one of examination target is finished this can avoid useless scanning in "not descendant" case.
Tue, 18 Sep 2012 21:39:12 +0900 bookmarks: avoid redundant creation/assignment of "validdests" in "validdest()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 18 Sep 2012 21:39:12 +0900] rev 17625
bookmarks: avoid redundant creation/assignment of "validdests" in "validdest()"
Wed, 19 Sep 2012 14:00:23 +0200 store: add a fallback _pathencode Python function
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Sep 2012 14:00:23 +0200] rev 17624
store: add a fallback _pathencode Python function which does the equivalent of parsers.pathencode, so it can be used as a default
Wed, 19 Sep 2012 13:58:51 +0200 store: move _plainhybridencode and _dothybridencode higher up in the file
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Sep 2012 13:58:51 +0200] rev 17623
store: move _plainhybridencode and _dothybridencode higher up in the file no functional change
Wed, 19 Sep 2012 11:39:18 +0200 test-hybridencode: use store._dothybridencode(s)
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Sep 2012 11:39:18 +0200] rev 17622
test-hybridencode: use store._dothybridencode(s) and compare it with the result of store._hybridencode(s, True)
Wed, 19 Sep 2012 11:39:07 +0200 store: fix _hashencode call in _dothybridencode
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Sep 2012 11:39:07 +0200] rev 17621
store: fix _hashencode call in _dothybridencode Fixes 7840d81a80ec
Wed, 19 Sep 2012 12:29:12 +0200 check-code: catch yield inside try/finally (with tests)
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 19 Sep 2012 12:29:12 +0200] rev 17620
check-code: catch yield inside try/finally (with tests) This is not allowed in Python 2.4.
Tue, 18 Sep 2012 16:30:21 -0700 Merge with mpm
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 16:30:21 -0700] rev 17619
Merge with mpm
Tue, 18 Sep 2012 16:25:20 -0700 store: use native fncache encoding function if available
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 16:25:20 -0700] rev 17618
store: use native fncache encoding function if available This currently falls back to Python for hashed encoding.
Tue, 18 Sep 2012 16:09:02 -0700 tests: run test-hybridencode.py over both Python and C encoders
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 16:09:02 -0700] rev 17617
tests: run test-hybridencode.py over both Python and C encoders This ensures that the two always give the same answers.
Tue, 18 Sep 2012 15:42:19 -0700 store: implement fncache basic path encoding in C
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 15:42:19 -0700] rev 17616
store: implement fncache basic path encoding in C (This is not yet enabled; it will be turned on in a followup patch.) The path encoding performed by fncache is complex and (perhaps surprisingly) slow enough to negatively affect the overall performance of Mercurial. For a short path (< 120 bytes), the Python code can be reduced to a fairly tractable state machine that either determines that nothing needs to be done in a single pass, or performs the encoding in a second pass. For longer paths, we avoid the more complicated hashed encoding scheme for now, and fall back to Python. Raw performance: I measured in a repo containing 150,000 files in its tip manifest, with a median path name length of 57 bytes, and 95th percentile of 96 bytes. In this repo, the Python code takes 3.1 seconds to encode all path names, while the hybrid C-and-Python code (called from Python) takes 0.21 seconds, for a speedup of about 14. Across several other large repositories, I've measured the speedup from the C code at between 26x and 40x. For path names above 120 bytes where we must fall back to Python for hashed encoding, the speedup is about 1.7x. Thus absolute performance will depend strongly on the characteristics of a particular repository.
Tue, 18 Sep 2012 23:32:42 +0200 rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 18 Sep 2012 23:32:42 +0200] rev 17615
rebase: ensure rebase does not revive extinct revision Here, we exclude hidden changesets from a rebase operation. If we don't, a rewritten version of the hidden changesets will be created by rebase. Those rewritten versions won't be hidden and will likely conflict with other rewriting or revive pruned changeset. Moreover, rewriting hidden revisions will surprise the user. This change would not be necessary if changelog filtering were already in core. But it's fairly cheap and helps to increase the test-suite for such filtering. Once changelog level filtering is added, hidden changes will be automatically excluded or included according to the global --hidden flags. Plain ignoring them is good enough for now.
Tue, 18 Sep 2012 23:29:05 +0200 rebase: remove useless list around repo.revs
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 18 Sep 2012 23:29:05 +0200] rev 17614
rebase: remove useless list around repo.revs As repo.revs already returns a list.
Tue, 18 Sep 2012 23:42:27 +0200 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 18 Sep 2012 23:42:27 +0200] rev 17613
rebase: properly handle --collapse when creating obsolescence marker In collapse mode, that content of state is not suitable to compute obsolescence markers. We explicitly pass the resulting revision instead and use it as the successors for all elements of the rebased set.
Tue, 18 Sep 2012 23:13:31 +0200 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 18 Sep 2012 23:13:31 +0200] rev 17612
rebase: allow creation obsolescence relation instead of stripping When obsolescence feature is enabled we now create markers from the rebased set to the resulting set instead of stripping. The "state" mapping built by rebase holds all necessary data. Changesets "deleted" by the rebase are marked "succeeded" by the changeset they would be rebased one. That the best guess of "successors" we have. Getting a successors as meaningful as possible is important for automatic resolution of obsolescence troubles. In other word, emptied changeset will looks collapsed with their former parents. (see "empty changeset" section of the test if you are still confused)
Tue, 18 Sep 2012 22:58:12 +0200 rebase: extract final changesets cleanup logic in a dedicated function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 18 Sep 2012 22:58:12 +0200] rev 17611
rebase: extract final changesets cleanup logic in a dedicated function At the end of the rebase, rebased changesets are currently stripped. This behavior will be eventually dropped in favor of obsolescence marker creation. The main rebase function is already big and branchy enough. This changeset move the clean-up logic in a dedicated function before we make it more complex.
Tue, 18 Sep 2012 14:37:32 -0700 store: refactor hashed encoding into its own function
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 14:37:32 -0700] rev 17610
store: refactor hashed encoding into its own function
Tue, 18 Sep 2012 19:51:59 +0200 store: reuse direncoded path in _hybridencode
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 19:51:59 +0200] rev 17609
store: reuse direncoded path in _hybridencode For a netbeans clone on Windows 7 x64: Before: $ hg perffncacheencode ! wall 3.516000 comb 3.525623 user 3.525623 sys 0.000000 (best of 3) After: $ hg perffncacheencode ! wall 3.443000 comb 3.447622 user 3.447622 sys 0.000000 (best of 3)
Tue, 18 Sep 2012 19:51:48 +0200 store: extract functions _encodefname and _decodefname
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 19:51:48 +0200] rev 17608
store: extract functions _encodefname and _decodefname
Tue, 18 Sep 2012 11:44:16 +0200 store: use fast C implementation of encodedir() if it's available
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 11:44:16 +0200] rev 17607
store: use fast C implementation of encodedir() if it's available For a netbeans clone on Windows 7 x64: Encoding all paths in the fncache: Before: $ hg perffncacheencode ! wall 3.639000 comb 3.634823 user 3.634823 sys 0.000000 (best of 3) After: $ hg perffncacheencode ! wall 3.470000 comb 3.463222 user 3.463222 sys 0.000000 (best of 3) Writing fncache: Before: $ hg perffncachewrite ! wall 0.103000 comb 0.093601 user 0.093601 sys 0.000000 (best of 95) After: $ hg perffncachewrite ! wall 0.081000 comb 0.078001 user 0.062400 sys 0.015600 (best of 100)
Tue, 18 Sep 2012 11:43:30 +0200 pathencode: new C module with fast encodedir() function
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 11:43:30 +0200] rev 17606
pathencode: new C module with fast encodedir() function Not yet used (will be enabled in a later patch). This patch is a stripped down version of patches originally created by Bryan O'Sullivan <bryano@fb.com>
Tue, 18 Sep 2012 07:58:50 +0200 store: add multiline doctest case for encodedir()
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 07:58:50 +0200] rev 17605
store: add multiline doctest case for encodedir() a followup to 64c6a0d4d4bd
Mon, 17 Sep 2012 11:00:38 +0200 store: optimize fncache._load a bit by dirdecoding the contents in one go
Adrian Buehlmann <adrian@cadifra.com> [Mon, 17 Sep 2012 11:00:38 +0200] rev 17604
store: optimize fncache._load a bit by dirdecoding the contents in one go For a netbeans clone on Windows 7 x64: Before: $ hg perffncacheload ! wall 0.124000 comb 0.124801 user 0.124801 sys 0.000000 (best of 76) After: $ hg perffncacheload ! wall 0.096000 comb 0.093601 user 0.078001 sys 0.015600 (best of 97)
Tue, 18 Sep 2012 17:00:58 +0200 wireproto: workaround for yield inside try/finally incompatible with python2.4
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 18 Sep 2012 17:00:58 +0200] rev 17603
wireproto: workaround for yield inside try/finally incompatible with python2.4
Tue, 18 Sep 2012 16:19:56 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 18 Sep 2012 16:19:56 -0500] rev 17602
merge with stable
Sun, 09 Sep 2012 12:43:24 -0400 largefiles: delegate to the wrapped clone command stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 12:43:24 -0400] rev 17601
largefiles: delegate to the wrapped clone command This allows the wrapped command's validation code to run (which is currently only to ensure 'noupdate' and 'updaterev' aren't both specified), the copy/pasted unpacking of hg.clone() args to be removed, and any future changes to the base command (however unlikely) to be inherited by largefiles. Unfortunately, the command override can't be swapped entirely for an hg.clone() override because the extra --all-largefiles arg needs to be injected. It also isn't enough to call the wrapped clone command and leave the caching code after it, because the file caching code needs access to the destination repo, which is only available from hg.clone(). An alternative would be to use the dest path in the clone command override to re-obtain a reference to the repo. A slight deviation from the regular hg.clone() function is that the repo is NOT deleted if the caching fails, but that was also the previous behavior. Maybe it should for consistency?
Sun, 09 Sep 2012 12:09:53 -0400 largefiles: don't convert dest=None to dest=hg.defaultdest() in clone command stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 12:09:53 -0400] rev 17600
largefiles: don't convert dest=None to dest=hg.defaultdest() in clone command A status message is output if hg.clone() determines the default destination because None was provided. The previous code never passed None to hg.clone().
Sun, 09 Sep 2012 03:37:38 -0400 largefiles: restore caching of largefiles with 'clone -U --all-largefiles' stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 03:37:38 -0400] rev 17599
largefiles: restore caching of largefiles with 'clone -U --all-largefiles' This was broken when restoring normal -u and -U functionality.
Sat, 08 Sep 2012 13:31:06 -0400 largefiles: restore normal 'clone -u' and 'clone -U' functionality stable
Matt Harbison <matt_harbison@yahoo.com> [Sat, 08 Sep 2012 13:31:06 -0400] rev 17598
largefiles: restore normal 'clone -u' and 'clone -U' functionality Previously, tip would be checked out regardless of the -u or -U parameter. I'm not sure what the 'required for successful walkchangerevs' comment meant, but it appears to reference code which has since moved to downloadlfiles() in 7d6a660ca151. Perhaps it was to force caching when the -U parameter is given? The price of this change is that -U --all-largefiles won't cache anything. That will be fixed next. Note that X + Y in the 'X largefiles updated, n removed' and 'Y additional largefiles cached' lines do not add up to the same values in these tests, but all of the largefiles have been downloaded. The reason being that several largefiles have the same content (eb7338044 is pointed to by sub/large2, large3 and sub/large4). In the 'clone -u 1' operation, this largefile is cached to populate the working directory, even without --all-largefiles. That means the file isn't downloaded again and cached in the rev where large3 and sub/large4 both point to this file. Downloading that one file in that one rev seems to be counted twice with 'clone -u 0'. (Maybe it is also being downloaded twice?)
Sat, 15 Sep 2012 22:50:34 -0400 formatter: add base implementation of data method
David M. Carr <david@carrclan.us> [Sat, 15 Sep 2012 22:50:34 -0400] rev 17597
formatter: add base implementation of data method Previously, nothing was done with the passed in values, which clearly wasn't the intention.
(0) -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 +10000 +30000 tip