{"push_id":546681689,"size":14,"distinct_size":0,"ref":"refs/heads/HEAD","head":"edf794c7c78677f076d1a12fa8aa406a94bf8efd","before":"5a81196a76e710eb10af744941b4b46f191c551b","commits":[{"sha":"b1d07cceda5456454f802650be82247d6a8a0433","author":{"email":"8e148d70c1748d8ca8826c7dbddc450a1e69a991@gmail.com","name":"Alex Orange"},"message":"https: support tls sni (server name indication) for https urls (issue3090)\n\nSNI is a common way of sharing servers across multiple domains using separate\nSSL certificates. As of Python 2.7.9 SSLContext has been backported from\nPython 3. This patch changes sslutil's ssl_wrap_socket to use SSLContext and\ntake a server hostname as and argument. It also changes the url module to make\nuse of this argument.\n\nThe new code for 2.7.9 achieves it's task by attempting to get the SSLContext\nobject from the ssl module. If this fails the try/except goes back to what was\nthere before with the exception that the ssl_wrap_socket functions take a\nserver_hostname argument that doesn't get used. Assuming the SSLContext\nexists, the arguments to wrap_socket at the module level are emulated on the\nSSLContext. The SSLContext is initialized with the specified ssl_version. If\ncertfile is not None load_cert_chain is called with certfile and keyfile.\nkeyfile being None is not a problem, load_cert_chain will simply expect the\nprivate key to be in the certificate file. verify_mode is set to cert_reqs. If\nca_certs is not None load_verify_locations is called with ca_certs as the\ncafile. Finally the wrap_socket method of the SSLContext is called with the\nsocket and server hostname.\n\nFinally, this fails test-check-commit-hg.t because the \"new\" function\nssl_wrap_socket has underscores in its names and underscores in its arguments.\nAll the underscore identifiers are taken from the other functions and as such\ncan't be changed to match naming conventions.\n\n--HG--\nextra : rebase_source : 40d582ff434f3fdca4f78655503bb177388dda66","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/b1d07cceda5456454f802650be82247d6a8a0433"},{"sha":"2718f2ba45b0db76e4ffda66edcfefa33f073dd9","author":{"email":"5a6f9085fda6a4d31222bf252dd4a8a0976a36fe@fb.com","name":"Durham Goode"},"message":"bundles: do not overwrite existing backup bundles (BC)\n\nPreviously, a backup bundle could overwrite an existing bundle and cause user\ndata loss. For instance, if you have A<-B<-C and strip B, it produces backup\nbundle B-backup.hg. If you then hg pull -r B B-backup.hg and strip it again, it\noverwrites the existing B-backup.hg and C is lost.\n\nThe fix is to add a hash of all the nodes inside that bundle to the filename.\nFixed up existing tests and added a new test in test-strip.t","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/2718f2ba45b0db76e4ffda66edcfefa33f073dd9"},{"sha":"0b43dfa874510b4a3014d261cfb852d821012d25","author":{"email":"bd23204d9950829f6c3018b48e936c59d4d7504b@gmail.com","name":"Sean Farley"},"message":"namespaces: add revset for 'named(namespace)'\n\nThis patch adds functionality for listing all changesets in a given namespace\nvia the revset language.","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/0b43dfa874510b4a3014d261cfb852d821012d25"},{"sha":"1f465bf090593c5d84b4eb774598426e28b1db4d","author":{"email":"50ca5bc5fa98db65e44d8956b02ffbbbdec04521@yahoo.com","name":"Matt Harbison"},"message":"largefiles: enable subrepo support for forget","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/1f465bf090593c5d84b4eb774598426e28b1db4d"},{"sha":"51661dadafca13030a5e8cf21e937eb3788b9a1c","author":{"email":"50ca5bc5fa98db65e44d8956b02ffbbbdec04521@yahoo.com","name":"Matt Harbison"},"message":"forget: don't report rejected files as forgotten as well\n\nIt seems like a mistake to report a file as forgotten and rejected.  The\nforgotten list doesn't seem to be used by anything in core, so no test changes.","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/51661dadafca13030a5e8cf21e937eb3788b9a1c"},{"sha":"5999951d5f8e949fc4863a72262f6eb46c7cdf4e","author":{"email":"0977e2e643699805d6e78a9b764fdc7c1ae35e87@unity3d.com","name":"Mads Kiilerich"},"message":"debugdirstate: simplify date handling after e7ed5d07cc4c used fixed format","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/5999951d5f8e949fc4863a72262f6eb46c7cdf4e"},{"sha":"ab56dc86ad5e8e3a50058dc5ba4d6b6ceef36f79","author":{"email":"0977e2e643699805d6e78a9b764fdc7c1ae35e87@unity3d.com","name":"Mads Kiilerich"},"message":"debugdirstate: don't hide date field with --nodate, just show 'set'/'unset'\n\nThe value of the dirstate date field cannot be used in tests and we thus have\nto use debugdirstate with --nodate. It is however still very helpful to be able\nto see whether the date field has been set or still is unset. The absence of\nthat information made it hard to debug some largefile dirstate issues.\n\nThis change _could_ make the test suite more unstable ... but that would be\nplaces where the test suite or the code should be made more stable. (Note:\n'unset' with the magic negative sizes is reliable. 'unset' for normal sizes\nwould probably not be reliable, but there is no such occurrences in the test\nsuite and it should thus be reliable.)\n\nThis output wastes more horizontal space in the --nodate output, but it also\nmakes things simpler that the output format always is the same. It is just a\ndebug command so let's keep it simple.","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/ab56dc86ad5e8e3a50058dc5ba4d6b6ceef36f79"},{"sha":"3e1165cdfc786ab9cc71cd37907dd569be9ad13e","author":{"email":"0977e2e643699805d6e78a9b764fdc7c1ae35e87@unity3d.com","name":"Mads Kiilerich"},"message":"largefiles: make linear update set unsure largefiles normal if unchanged\n\n'hg update' would hash all 'unsure' largefiles before performing the merge. It\nwould update the standins but not detect the very common case where the\nlargefile never had been changed by the user but just had been marked with an\ninvalid dirstate mtime to make sure any changes done by the user in the same\nsecond would be detected. The largefile would remain in that state and would\nhave to be hashed again next time even though it still not had been changed.\nSad trombone.\n\nInstead, for largefiles listed as 'unsure' or 'modified', after updating the\nstandin with the actual hash, mark the largefile as normal if it turns out to\nnot be modified relative to the revision in the parent revision. That will\nprevent it from being hashed again next time.","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/3e1165cdfc786ab9cc71cd37907dd569be9ad13e"},{"sha":"315fb4a3fa69c6c141e7ab4060535462844c6d2f","author":{"email":"a55988307f5577592e51a240bbcba722aa00a69b@lares.dti.ne.jp","name":"FUJIWARA Katsunori"},"message":"revset: make tokenize extensible to parse alias declarations and definitions\n\nBefore this patch, \"tokenize\" doesn't recognize the symbol starting\nwith \"$\" as a valid one.\n\nThis prevents revset alias declarations and definitions from being\nparsed with \"tokenize\", because \"$\" may be used as the initial letter\nof alias arguments.\n\nBTW, the alias argument name doesn't require leading \"$\" itself, in\nfact. But we have to assume that users may use \"$\" as the initial\nletter of argument names in their aliases, because examples in \"hg\nhelp revsets\" uses such names for a long time.\n\nTo make \"tokenize\" extensible to parse alias declarations and\ndefinitions, this patch introduces optional arguments \"syminitletters\"\nand \"symletters\". Giving these sets can change the policy of \"valid\nsymbol\" in tokenization easily.\n\nThis patch keeps original examination of letter validity for\nreviewability, even though there is redundant interchanging between\n\"chr\"/\"ord\" at initialization of \"_syminitletters\" and \"_symletters\".\nAt most 256 times examination (per initialization) is cheaper enough\nthan revset evaluation itself.\n\nThis patch is a part of preparation for parsing alias declarations and\ndefinitions more strictly.\n\n--HG--\nextra : rebase_source : cfe631b574d5224bcee596c832c7620a1024d5ba","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/315fb4a3fa69c6c141e7ab4060535462844c6d2f"},{"sha":"746d944e8e7e72ed2226b12ef54b307fc55e7f41","author":{"email":"a55988307f5577592e51a240bbcba722aa00a69b@lares.dti.ne.jp","name":"FUJIWARA Katsunori"},"message":"revset: factor out composing error message for ParseError to reuse\n\nThis patch defines the composing function not in \"ParseError\" class but\nin \"revset\" module, because:\n\n  - \"_()\" shouldn't be used in \"ParseError\", to avoid adding \"from\n    i18n import _\" i18n\" to \"error\" module\n\n  - generalizing message composition of\"ParseError\" for all code paths\n    other than revset isn't the purpose of this patch\n\n    we should also take care of showing \"unexpected leading\n    whitespace\" for some code paths, to generalize widely.\n\n--HG--\nextra : rebase_source : 252c706a7504b1916a9e282a5b2192ea4b4ef3ff","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/746d944e8e7e72ed2226b12ef54b307fc55e7f41"},{"sha":"9b9ed4841e99fc8e536355c183edae8870f33cc3","author":{"email":"a55988307f5577592e51a240bbcba722aa00a69b@lares.dti.ne.jp","name":"FUJIWARA Katsunori"},"message":"revset: store full detail into revsetalias.error for error source distinction\n\nBefore this patch, any errors in the declaration of revset alias\naren't detected at all, and there is no information about error source\nin the error message.\n\nAs a part of preparation for parsing alias declarations and\ndefinitions more strictly, this patch stores full detail into\n\"revsetalias.error\" for error source distinction.\n\nThis makes raising \"Abort\" and warning potential errors just use\n\"revsetalias.error\" without any message composing.\n\n--HG--\nextra : rebase_source : 2bb42a0aad0c325999823d11c7b544f9528595c2","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/9b9ed4841e99fc8e536355c183edae8870f33cc3"},{"sha":"617c170fd621e70e9eba6012ae772aa2135a0eb1","author":{"email":"a55988307f5577592e51a240bbcba722aa00a69b@lares.dti.ne.jp","name":"FUJIWARA Katsunori"},"message":"revset: introduce \"_parsealiasdecl\" to parse alias declarations strictly\n\nThis patch introduces \"_parsealiasdecl\" to parse alias declarations\nstrictly. For example, \"_parsealiasdecl\" can detect problems below,\nwhich current implementation can't.\n\n  - un-closed parenthesis causes being treated as \"alias symbol\"\n\n    because all of declarations not in \"func(....)\" style are\n    recognized as \"alias symbol\".\n\n    for example, \"foo($1, $2\" is treated as the alias symbol.\n\n  - alias symbol/function names aren't examined whether they are valid\n    as symbol or not\n\n    for example, \"foo bar\" can be treated as the alias symbol, but of\n    course such invalid symbol can't be referred in revset.\n\n  - just splitting argument list by \",\" causes overlooking syntax\n    problems in the declaration\n\n    for example, all of invalid declarations below are overlooked:\n\n    - foo(\"bar\")     => taking one argument named as '\"bar\"'\n    - foo(\"unclosed) => taking one argument named as '\"unclosed'\n    - foo(bar::baz)  => taking one argument named as 'bar::baz'\n    - foo(bar($1))   => taking one argument named as 'bar($1)'\n\nTo decrease complication of patch, current implementation for alias\ndeclarations is replaced by \"_parsealiasdecl\" in the subsequent\npatch. This patch just introduces it.\n\nThis patch defines \"_parsealiasdecl\" not as a method of \"revsetalias\"\nclass but as a one of \"revset\" module, because of ease of testing by\ndoctest.\n\nThis patch factors some helper functions for \"tree\" out, because:\n\n  - direct accessing like \"if tree[0] == 'func' and len(tree) > 1\"\n    decreases readability\n\n  - subsequent patch (and also existing code paths, in the future) can\n    use them for readability\n\nThis patch also factors \"_tokenizealias\" out, because it can be used\nalso for parsing alias definitions strictly.\n\n--HG--\nextra : rebase_source : a2eba5d8543460661f00adc6f5665bab4a78e468","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/617c170fd621e70e9eba6012ae772aa2135a0eb1"},{"sha":"09924c7e6670139db87f8f760e5b04a89e3ecd7f","author":{"email":"a55988307f5577592e51a240bbcba722aa00a69b@lares.dti.ne.jp","name":"FUJIWARA Katsunori"},"message":"revset: parse alias declaration strictly by _parsealiasdecl\n\nBefore this patch, alias declaration is parsed by string base\noperations: matching against \"^([^(]+)\\(([^)]+)\\)$\" and splitting by\n\",\".\n\nThis overlooks many syntax errors like below (see the previous patch\nintroducing \"_parsealiasdecl\" for detail):\n\n  - un-closed parenthesis causes being treated as \"alias symbol\"\n  - symbol/function name aren't examined whether they are valid or not\n  - invalid argument list causes unexpected argument names\n\nTo parse alias declaration strictly, this patch replaces parsing\nimplementation by \"_parsealiasdecl\".\n\nThis patch tests only one typical declaration error case, because\nerror detection itself is already tested in the doctest of\n\"_parsealiasdecl\".\n\nThis also removes class property \"args\" and \"error\", because these are\ncertainly initialized in \"revsetalias.__init__\".\n\n--HG--\nextra : rebase_source : 6956d6861e86c8f36cef16eac18a92d8e5c9aeff","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/09924c7e6670139db87f8f760e5b04a89e3ecd7f"},{"sha":"edf794c7c78677f076d1a12fa8aa406a94bf8efd","author":{"email":"a55988307f5577592e51a240bbcba722aa00a69b@lares.dti.ne.jp","name":"FUJIWARA Katsunori"},"message":"revset: check for collisions between alias argument names in the declaration\n\nBefore this patch, collisions between alias argument names in the\ndeclaration are ignored, and this silently causes unexpected alias\nevaluation.\n\nThis patch checks for such collisions, and aborts (or shows a warning) when\ncollisions are detected.\n\nThis patch doesn't add a test to \"test-revset.t\", because a doctest is\nenough to test the collisions detection itself.\n\n--HG--\nextra : rebase_source : 4c7d9ad4622e4a820a84551807b293bb67fb6ba1","distinct":false,"url":"https://api.github.com/repos/dscho/hg/commits/edf794c7c78677f076d1a12fa8aa406a94bf8efd"}]}