GitHub PushEvent at 2014-10-17 19:23:13
Repository: hg
Actor: dscho
Payload: {"shas":[["b34a2831b55528a393ebeb034cb60abef3186379","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","revset: make __len__ part of the offical API\n\nIt is common for code to ask for the length of a revset. In fact, all but\ngeneratorset already implement it.","Pierre-Yves David",false],["0699739b709c8c84a48ab6c24264cbb3e116fd88","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","generatorset: implement __len__\n\nIt was the only smartset class without a `__len__` implementation.","Pierre-Yves David",false],["84fb8346d3ab6e43d6d87b550b8e59788b1a8a23","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","filteredset: drop __getitem__ implementation\n\nIt is expensive and not part of the official smartset API.","Pierre-Yves David",false],["e233c1a5b145fddd13c1619f75e765212a45bedc","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","_spanset: drop __getitem__ implementation\n\nIt is expensive and not part of the official smartset API.","Pierre-Yves David",false],["8a825d76218a1a9db6d924e6a4ca36ef0b8a5fe6","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","revset-only: use __nonzero__ to check if a revset is empty\n\nFor some smartsets, computing length is more expensive than checking if the set\nis empty.","Pierre-Yves David",false],["a005572a72f5f99f36c1c0431ee71b8829352746","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","pull: call the `b2x-transactionclose` hook when closing the transaction\n\nWe need a wider set of hooks to process all the changes that happened during the\npull transaction. We reuse the experimental `b2x-transactionclose` hook set\nfrom server's unbundle for consistency. This hook is experimental and will not\nremains as-is forever, but this will open the door for experimentation in 3.2.","Pierre-Yves David",false],["5686c2cefddc8824e8c7e55a27715101139ada15","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","bundle2: add a comment about addchangegroup source and url\n\n--HG--\nextra : rebase_source : 1b73120615129d050574a6a5274d7a83383bf36f","Pierre-Yves David",false],["62c09398e6a8619c0702c3a6bc52a43859eae274","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","obsstore: record data as floating point in fm0 format\n\nFor python struct module, \"d\" is double. But for python string\nformating, \"d\" is integer. We want to preserve the floating point\nnature of the data, so we store it in the metadata as floating\npoint. We use \"%r\" to make sure we get as many significant digitis as\nnecessary to restore the float to the exact same value on the other\nside.\n\nThe fm1 is transmitting the information as float. The lack of this made\nfm1-stored markers not survive a round-trip to fm0 leading to duplicated\nmarkers (or two markers very alike).\n\n--HG--\nextra : rebase_source : c696533208c0b653d661aa8a031e19a697ac3758","Pierre-Yves David",false],["05797c5cd45232dbcce6406be8f32dc2d7443801","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","revset-_ancestor: use & instead of filter\n\nThe & operation is more likely optimised.\n\n::10\nbefore) wall 0.028189 comb 0.030000 user 0.030000 sys 0.000000 (best of 100)\nafter)  wall 0.001050 comb 0.000000 user 0.000000 sys 0.000000 (best of 2326)\n\n::tip\nbefore) wall 0.081132 comb 0.080000 user 0.080000 sys 0.000000 (best of 100)\nafter)  wall 0.055418 comb 0.050000 user 0.050000 sys 0.000000 (best of 100)\n\n--HG--\nextra : rebase_source : 09f4d0d05d7eccd43edfb3e655b1badbce330d0c","Pierre-Yves David",false],["0d16c9624a4b8ee92dcbb9664250ef7360220697","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","revset-only: use `subset &` instead of filtering\n\nThe & version is more likely to be optimised.\n\nonly(.)\nbefore) wall 0.003216 comb 0.000000 user 0.000000 sys 0.000000 (best of 768)\nafter)  wall 0.001086 comb 0.000000 user 0.000000 sys 0.000000 (best of 2231)\n\nonly(default, stable)\nbefore) wall 0.018469 comb 0.020000 user 0.020000 sys 0.000000 (best of 138)\nafter)  wall 0.015888 comb 0.010000 user 0.010000 sys 0.000000 (best of 156)\n\n--HG--\nextra : rebase_source : 83f539ab3b87fe63716130b6871085c5dd63d673","Pierre-Yves David",false],["6592a138876cc55b9895127edb37bb70abe3ae1a","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","revset-node: speedup by a few hundred fold\n\nInstead of checking all elements of the subset against a single rev, just check\nif this rev is in the subset. The old way was inherited from when the subset was\na list.\n\nNon surprise, this provide massive speedup.\n\n\nid(\"d82e2223f132\")\nbefore) wall 0.008205 comb 0.000000 user 0.000000 sys 0.000000 (best of 302)\nafter)  wall 0.000069 comb 0.000000 user 0.000000 sys 0.000000 (best of 34518)\n\nrevset #1: public() and id(\"d82e2223f132\")\nbefore) wall 0.019763 comb 0.020000 user 0.020000 sys 0.000000 (best of 124)\nafter)  wall 0.000101 comb 0.000000 user 0.000000 sys 0.000000 (best of 20130)\n\n--HG--\nextra : rebase_source : 72df9aebb93dfbb6679b895ca95516bc8d31b30d","Pierre-Yves David",false],["e5466684b58959bed7b7306689aef5b0eadd049a","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","dagwalker: drop a useless intermediate variable\n\nThe variable used to contain revs.set() but as the `.set()` has been removed\nit is now useless.","Pierre-Yves David",false],["d762ff7c2300d1817a709c2d1c2faab112c4782e","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","bundle2: add a test for exceptions raised during the generation process\n\nWe would like exceptions raised during the generation process to be gracefully\nhandled on the receiver side. We add a test for it. It shows that we are not\ndoing it yet.\n\n--HG--\nextra : rebase_source : d1a83e122c32d6cc445680f0d17130e43a31bab1","Pierre-Yves David",false],["f576f82d00d38812b746d1f615a540c076d1c989","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","bundle2: extract processing of part into its own function\n\nThis is code movement only. This will be useful to have it separated for reuse\npurposes. We plan to introduce a new feature to the bundle format that allow\ninserting a part in the middle of another part payload. This will be useful to\ntransmit a exception raised during a part generation.","Pierre-Yves David",false],["766a7f69f55aa13aa71c89fc5d78d7dfb418e233","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","bundle2: change header size and make them signed (new format)\n\nWe are changing all integers that denote the size of a chunk to read to int32.\nThere are two main motivations for that.\n\nFirst, we change everything to the same width (32 bits) to make it possible for\na reasonably agnostic actor to forward a bundle2 without any extra processing.\nWith this change, this could be achieved by just reading int32s and forwarding\nchunks of the size read. A bit a smartness would be logic to detect the end of\nstream but nothing too complicated.\n\nSecond, we need some capacity to transmit special information during the bundle\nprocessing. For example we would like to be able to raise an exception while a\npart is being read if this exception happend while this part was generated.\nHaving signed integer let us use negative numbers to trigger special events\nduring the parsing of the bundle.\n\nThe format is renamed for B2X to B2Y because this breaks binary\ncompatibility. The B2X format support is dropped. It was experimental to\nallow this kind of things. All elements not directly related to the binary\nformat remain flagged \"b2x\" because they are still compatible.","Pierre-Yves David",false],["ef8a6b2f6b22aff71e8b711681dd9af0b40e0d39","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","bundle2: add an UnsupportedPartError\n\nWe need the BundleValueError for format errors not related to part support. So\nwe add a specific class for part-support errors.","Pierre-Yves David",false],["b6f8f563571c5e28d8557b22ffac9495872bb998","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","bundle2: detect and disallow a negative chunk size\n\nWe have no usage planned for 2/3 of them and the support for the planned\nusecase is not here yet. So we raise a BundleValueError when encountered\n\n--HG--\nextra : rebase_source : 642da94440842a2bf8a418c243409a75ec6d5784","Pierre-Yves David",false],["f9d25a0f11bdd60929b51a42f4941a1d3da49daa","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","changectx: wrap the `changeid` processing in a try/except\n\nWe are going to introduce more precise exception classes for filtered nodes. So\nwe will have to upgrade them to the `RepoLookupError` level here. We wrap the\nwhole thing into a try/except to ease this future catching. Some of the current\nexception catching will be moved in this one. But the current changeset focuses\non code movement only.","Pierre-Yves David",false],["bb39df874a1fd2915261eace32d6c1b1838276e5","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","changectx: move `IndexError` handling in the top level try except\n\nThis one can be handled by the top level catching.\n\n--HG--\nextra : rebase_source : f368a837f007e2018f3b81703cb37a3dcc5c32aa","Pierre-Yves David",false],["2a800fc19c05db6d53c51cc16551ebb98ead5427","4e23b39619ab6a738669bb49f44d4e3a649c3df3@fb.com","repoview: add a FilteredIndexError class\n\nThis exception is a more precise IndexError that will allow us to\nissue a special message when we end up accessing a filtered revision.\n\n--HG--\nextra : rebase_source : f2ff496efe132d6ae49a2a127b344fb005b82c56","Pierre-Yves David",false]],"size":33,"ref":"refs/heads/HEAD","head":"3a5e4a3b75bdfdb17e22a25cfec16c5830ea3e03"}