Wed, 14 Jan 2015 19:39:13 -0800 namespaces: make the constructor into named args
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Jan 2015 19:39:13 -0800] rev 23872
namespaces: make the constructor into named args None of the arguments are truly optional but this makes adding future arguments more robust and perhaps optional.
Thu, 15 Jan 2015 20:36:03 -0800 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 15 Jan 2015 20:36:03 -0800] rev 23871
dispatch: only check compatibility against major and minor versions (BC) Extensions can declare compatibility with Mercurial versions. If an error occurs, Mercurial will attempt to pin blame on an extension that isn't marked as compatible. While all bets are off when it comes to the internal API, my experience has shown that a monthly/patch release of Mercurial has never broken any of the extensions I've written. I think that expecting extensions to declare compatibility with every patch release of Mercurial is asking a bit much and adds little to no value. This patch changes the blame logic from exact version matching to only match on the major and minor Mercurial versions. This means that extensions only need to mark themselves as compatible with the major, quarterly releases and not the monthly ones in order to stay current and avoid what is almost certainly unfair blame. This will mean less work for extension authors and almost certainly fewer false positives in the blame attribution.
Thu, 15 Jan 2015 20:03:48 -0800 test-extension: use a realistic Mercurial version
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 15 Jan 2015 20:03:48 -0800] rev 23870
test-extension: use a realistic Mercurial version Mercurial doesn't define the 3rd "patch" version field for major releases. Don't use it in tests.
Thu, 15 Jan 2015 19:47:06 -0800 test-extension: improve test readability
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 15 Jan 2015 19:47:06 -0800] rev 23869
test-extension: improve test readability There was a mountain of text in this file that made reading the tests difficult. Inserting some line breaks greatly improves the situation.
Thu, 18 Dec 2014 19:14:01 -0800 bundle2: enforce parttype as alphanumerical
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Dec 2014 19:14:01 -0800] rev 23868
bundle2: enforce parttype as alphanumerical The binary format description has always stated that the parttype should be simple, but it was never really enforced. Recent discussions have convinced me we want to keep the part type simple and easy to debug. There is enough extensibility in the rest of the format.
Wed, 14 Jan 2015 22:40:39 -0500 tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com> [Wed, 14 Jan 2015 22:40:39 -0500] rev 23867
tests: conditionalize test-tools.t for Windows support I still get the following diff on Windows 7 with NTFS. I'm not sure if it is expected and we should wildcard the link count, or if something needs to be fixed. @@ -58,7 +58,7 @@ $ ln bar baz $ f bar -n baz -l --hexdump -t --sha1 --lines=9 -B 20 - bar: file, links=2, newer than baz, sha1=612ca68d0305c821750a + bar: file, links=0, newer than baz, sha1=612ca68d0305c821750a\r (esc) 0000: 31 0a 32 0a 33 0a 34 0a 35 0a 36 0a 37 0a 38 0a |1.2.3.4.5.6.7.8.| 0010: 39 0a |9.|
Wed, 14 Jan 2015 01:15:26 +0100 dirstate: ignore negative debug.dirstate.delaywrite values - they crashed it
Mads Kiilerich <madski@unity3d.com> [Wed, 14 Jan 2015 01:15:26 +0100] rev 23866
dirstate: ignore negative debug.dirstate.delaywrite values - they crashed it Sleep can only travel forward in time, not back.
Wed, 14 Jan 2015 17:21:09 -0800 linkrev: use the right manifest content when adjusting linrev (issue4499)
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 14 Jan 2015 17:21:09 -0800] rev 23865
linkrev: use the right manifest content when adjusting linrev (issue4499) When the manifest revision is stored as a delta against a non-parent revision, '_adjustlinkrev' could miss some file update because it was using the delta only. We now use the 'fastread' method that uses the delta only when it makes sense. A test showcasing on the of possible issue have been added.
Wed, 14 Jan 2015 16:57:00 -0800 unpacker: fix missing arg for py2.4
Matt Mackall <mpm@selenic.com> [Wed, 14 Jan 2015 16:57:00 -0800] rev 23864
unpacker: fix missing arg for py2.4
Wed, 14 Jan 2015 01:15:26 +0100 branchcache: make _rbcrevslen handling more safe
Mads Kiilerich <madski@unity3d.com> [Wed, 14 Jan 2015 01:15:26 +0100] rev 23863
branchcache: make _rbcrevslen handling more safe self._rbcrevslen is used to keep track of the number of good records on disk. It should thus not be updated before the records actually have been written to disk.
Wed, 14 Jan 2015 01:15:26 +0100 branchcache: add debug output whenever cache files use truncate
Mads Kiilerich <madski@unity3d.com> [Wed, 14 Jan 2015 01:15:26 +0100] rev 23862
branchcache: add debug output whenever cache files use truncate The cache files are usually append only but will automatically be truncated and recover in exceptional situations. Add a debug notice when such exceptional situations are encountered.
Wed, 14 Jan 2015 01:15:26 +0100 tests: rework revision branch cache tests
Mads Kiilerich <madski@unity3d.com> [Wed, 14 Jan 2015 01:15:26 +0100] rev 23861
tests: rework revision branch cache tests The tests that were added with the revision branch cache in 678f53865c68 had suffered from bit rot in the development iterations. They were no longer that "good". Now, the tests are rewritten and reworked to be more readable and maintainable and relevant for the actual implementation. This also utilizes the new 'f' helper tool for keeping an eye the cache files.
Wed, 14 Jan 2015 01:15:26 +0100 tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com> [Wed, 14 Jan 2015 01:15:26 +0100] rev 23860
tests: add 'f' tool for cross platform file operations in the tests This tool is like the collection of tools found in a unix environment but are cross platform and stable and suitable for our needs in the test suite. The main reason it is "needed" now is for hexdump of revision branch cache to keep an eye on how it changes and make sure the format is stable. It is a very generic tool that can end up being used a lot in tests, so I gave it very generic name.
Wed, 14 Jan 2015 01:15:26 +0100 run-tests: include testdir in $PATH so tests easily can use helper tools
Mads Kiilerich <madski@unity3d.com> [Wed, 14 Jan 2015 01:15:26 +0100] rev 23859
run-tests: include testdir in $PATH so tests easily can use helper tools The testdir is already added to $PYTHONPATH - I think it makes sense and is convenient to add it to $PATH too. The following binaries are invoked from tests using full path with $TESTDIR/ - they can now be used without specifying path: dumbhttp.py dummyssh filterpyflakes.py generate-working-copy-states.py get-with-headers.py hghave histedit-helpers.sh killdaemons.py md5sum.py notcapable printenv.py readlink.py revlog-formatv0.py run-tests.py svn-safe-append.py svnxml.py tinyproxy.py
Mon, 12 Jan 2015 15:29:36 -0500 filelog: use censored revlog flag bit to quickly check if a node is censored
Mike Edgar <adgar@google.com> [Mon, 12 Jan 2015 15:29:36 -0500] rev 23858
filelog: use censored revlog flag bit to quickly check if a node is censored
Mon, 12 Jan 2015 14:41:25 -0500 revlog: verify censored flag when hashing added revision fulltext
Mike Edgar <adgar@google.com> [Mon, 12 Jan 2015 14:41:25 -0500] rev 23857
revlog: verify censored flag when hashing added revision fulltext When receiving a delta via exchange, three possible storage outcomes emerge: 1. The delta is added directly to the revlog. ("fast-path") 2. A freshly-computed delta with a different base is stored. 3. The new revision's fulltext is computed and stored outright. Both (2) and (3) require materializing the full text of the new revision by applying the delta to its base. This is typically followed by a hash check. The new flags argument allows callers to _addrevision to signal that they expect that hash check to fail. We can use this opportunity to verify that expectation. If the hash fails, require the flag be set; if the hash passes, require the flag be unset. Rather than simply eliding the hash check, this approach provides some assurance that the censored flag is not applied to valid revisions. Read more at: http://mercurial.selenic.com/wiki/CensorPlan
Mon, 12 Jan 2015 14:30:24 -0500 revlog: add flags argument to _addrevision, update callers use default flags
Mike Edgar <adgar@google.com> [Mon, 12 Jan 2015 14:30:24 -0500] rev 23856
revlog: add flags argument to _addrevision, update callers use default flags For revlog index flags to be useful to other parts of Mercurial, they need to be settable when writing revisions. The current use case for revlog index flags is the censorship feature: http://mercurial.selenic.com/wiki/CensorPlan While the censor flag could be inferred in _addrevision by interrogating the text/delta being added, that would bury the censorship logic and inappropriately couple it to all revision creation.
Mon, 12 Jan 2015 14:01:52 -0500 revlog: define censored flag for revlogng index
Mike Edgar <adgar@google.com> [Mon, 12 Jan 2015 14:01:52 -0500] rev 23855
revlog: define censored flag for revlogng index This flag bit will be used to cheaply signal censorship presence to upper layers (exchange, verify). It indicates that censorship metadata is present but does not attest to the verifiability of that metadata. For the censorship design, see: http://mercurial.selenic.com/wiki/CensorPlan
Sun, 11 Jan 2015 01:32:36 +0100 localrepo: remove all internal uses of localrepo.wopener
Angel Ezquerra <angel.ezquerra@gmail.com> [Sun, 11 Jan 2015 01:32:36 +0100] rev 23854
localrepo: remove all internal uses of localrepo.wopener It has been replaced with localrepo.wvfs.
Sun, 11 Jan 2015 00:21:58 +0100 localrepo: remove all internal uses of localrepo.sopener
Angel Ezquerra <angel.ezquerra@gmail.com> [Sun, 11 Jan 2015 00:21:58 +0100] rev 23853
localrepo: remove all internal uses of localrepo.sopener It has been replaced with localrepo.svfs.
Sat, 10 Jan 2015 23:02:52 +0100 localrepo: remove all internal uses of localrepo.opener
Angel Ezquerra <angel.ezquerra@gmail.com> [Sat, 10 Jan 2015 23:02:52 +0100] rev 23852
localrepo: remove all internal uses of localrepo.opener It has been replaced with localrepo.vfs. In the future we may split the vfs into different vfs objects to access different elements of the repository.
Wed, 14 Jan 2015 15:46:21 -0500 sslutil: drop defunct ssl version constants
Augie Fackler <augie@google.com> [Wed, 14 Jan 2015 15:46:21 -0500] rev 23851
sslutil: drop defunct ssl version constants Nobody outside sslutil should be using these constants anyway.
Wed, 14 Jan 2015 15:46:00 -0500 sslutil: use saner TLS settings on Python 2.7.9
Augie Fackler <augie@google.com> [Wed, 14 Jan 2015 15:46:00 -0500] rev 23850
sslutil: use saner TLS settings on Python 2.7.9 Asking for TLSv1 locks us out of TLSv1_2 etc. This is at least less bad. Ideally we'd use ssl.create_default_context(), but that causes more mayhem in the testsuite than I really want to deal with right now.
Wed, 14 Jan 2015 15:31:16 -0500 sslutil: drop support for clients of sslutil specifying a TLS version
Augie Fackler <augie@google.com> [Wed, 14 Jan 2015 15:31:16 -0500] rev 23849
sslutil: drop support for clients of sslutil specifying a TLS version We really just want to support the newest thing possible, so we may as well consolidate that knowledge into this module. Right now this doesn't change any behavior, but a future change will fix the defaults for Python 2.7.9 so we can use slightly better defaults there (which is the only place it's possible at the moment.)
Wed, 07 Jan 2015 00:07:29 -0800 discovery: run discovery on filtered repository
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 07 Jan 2015 00:07:29 -0800] rev 23848
discovery: run discovery on filtered repository We have been running discovery on unfiltered repository for quite some time. This was aimed at two things: - save some bandwith by prevent the repushing of common but hidden changesets - allow phases changes on secret/hidden changeset on bare push. The cost of this unfiltered discovery combined with evolution is actually really high. Evolution likely create thousand of hidden heads, and the discovery is going to try to discovery if each of them are common or not. For example, pushing from my development mercurial repository implies 17 discovery round-trip. The benefit are rare corner cases while the drawback are massive. So we run the discovery on a filtered repository again. We add some hack to detect remote heads that are known locally and adds them to the common set anyway, so the good behavior of most of the corner case should remains. But this will not work in all cases. This bring my discovery phase back from 17 round-trips to 1 or 2.
Sat, 10 Jan 2015 23:18:11 +0900 revset: check for collisions between alias argument names in the declaration
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 10 Jan 2015 23:18:11 +0900] rev 23847
revset: check for collisions between alias argument names in the declaration Before this patch, collisions between alias argument names in the declaration are ignored, and this silently causes unexpected alias evaluation. This patch checks for such collisions, and aborts (or shows a warning) when collisions are detected. This patch doesn't add a test to "test-revset.t", because a doctest is enough to test the collisions detection itself.
Sat, 10 Jan 2015 23:18:11 +0900 revset: parse alias declaration strictly by _parsealiasdecl
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 10 Jan 2015 23:18:11 +0900] rev 23846
revset: parse alias declaration strictly by _parsealiasdecl Before this patch, alias declaration is parsed by string base operations: matching against "^([^(]+)\(([^)]+)\)$" and splitting by ",". This overlooks many syntax errors like below (see the previous patch introducing "_parsealiasdecl" for detail): - un-closed parenthesis causes being treated as "alias symbol" - symbol/function name aren't examined whether they are valid or not - invalid argument list causes unexpected argument names To parse alias declaration strictly, this patch replaces parsing implementation by "_parsealiasdecl". This patch tests only one typical declaration error case, because error detection itself is already tested in the doctest of "_parsealiasdecl". This also removes class property "args" and "error", because these are certainly initialized in "revsetalias.__init__".
Sat, 10 Jan 2015 23:18:11 +0900 revset: introduce "_parsealiasdecl" to parse alias declarations strictly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 10 Jan 2015 23:18:11 +0900] rev 23845
revset: introduce "_parsealiasdecl" to parse alias declarations strictly This patch introduces "_parsealiasdecl" to parse alias declarations strictly. For example, "_parsealiasdecl" can detect problems below, which current implementation can't. - un-closed parenthesis causes being treated as "alias symbol" because all of declarations not in "func(....)" style are recognized as "alias symbol". for example, "foo($1, $2" is treated as the alias symbol. - alias symbol/function names aren't examined whether they are valid as symbol or not for example, "foo bar" can be treated as the alias symbol, but of course such invalid symbol can't be referred in revset. - just splitting argument list by "," causes overlooking syntax problems in the declaration for example, all of invalid declarations below are overlooked: - foo("bar") => taking one argument named as '"bar"' - foo("unclosed) => taking one argument named as '"unclosed' - foo(bar::baz) => taking one argument named as 'bar::baz' - foo(bar($1)) => taking one argument named as 'bar($1)' To decrease complication of patch, current implementation for alias declarations is replaced by "_parsealiasdecl" in the subsequent patch. This patch just introduces it. This patch defines "_parsealiasdecl" not as a method of "revsetalias" class but as a one of "revset" module, because of ease of testing by doctest. This patch factors some helper functions for "tree" out, because: - direct accessing like "if tree[0] == 'func' and len(tree) > 1" decreases readability - subsequent patch (and also existing code paths, in the future) can use them for readability This patch also factors "_tokenizealias" out, because it can be used also for parsing alias definitions strictly.
(0) -10000 -3000 -1000 -300 -100 -50 -28 +28 +50 +100 +300 +1000 +3000 +10000 tip