Submitter | Jun Wu |
---|---|
Date | March 13, 2017, 9:48 a.m. |
Message ID | <09a30f1a2da8d17d4781.1489398494@localhost.localdomain> |
Download | mbox | patch |
Permalink | /patch/19281/ |
State | Changes Requested |
Delegated to: | Jun Wu |
Headers | show
Return-Path: <mercurial-devel-bounces@mercurial-scm.org> X-Original-To: patchwork@mercurial-scm.org Delivered-To: patchwork@mercurial-scm.org Received: from localhost (localhost [127.0.0.1]) by mercurial-scm.org (Postfix) with ESMTP id DD61C2C1E7; Mon, 13 Mar 2017 05:49:07 -0400 (EDT) X-Virus-Scanned: Debian amavisd-new at mercurial-scm.org Received: from mercurial-scm.org ([127.0.0.1]) by localhost (mercurial-scm.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id lnrx8f3HI6FV; Mon, 13 Mar 2017 05:49:07 -0400 (EDT) Received: from mercurial-scm.org (localhost [IPv6:::1]) by mercurial-scm.org (Postfix) with ESMTP id 112892C1C9; Mon, 13 Mar 2017 05:49:06 -0400 (EDT) X-Original-To: mercurial-devel@mercurial-scm.org Delivered-To: mercurial-devel@mercurial-scm.org Received: from localhost (localhost [127.0.0.1]) by mercurial-scm.org (Postfix) with ESMTP id 44B332C1AD for <mercurial-devel@mercurial-scm.org>; Mon, 13 Mar 2017 05:49:04 -0400 (EDT) X-Virus-Scanned: Debian amavisd-new at mercurial-scm.org Received: from mercurial-scm.org ([127.0.0.1]) by localhost (mercurial-scm.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id tcm3Gqog5bmn for <mercurial-devel@mercurial-scm.org>; Mon, 13 Mar 2017 05:49:03 -0400 (EDT) Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) by mercurial-scm.org (Postfix) with ESMTPS id 46A3F2C1C3 for <mercurial-devel@mercurial-scm.org>; Mon, 13 Mar 2017 05:49:03 -0400 (EDT) Received: from pps.filterd (m0109334.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v2D9h7cR022608 for <mercurial-devel@mercurial-scm.org>; Mon, 13 Mar 2017 02:49:03 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=content-type : mime-version : content-transfer-encoding : subject : message-id : in-reply-to : references : date : from : to; s=facebook; bh=giQoCIauVSElnKdrA2EEpPKlJ0jKqKemnGj9D+TbQQQ=; b=bg5+Y/wMLG5QtopDZ/OArxULPE+fefj7+wycFbj1Qgt3W01OPtRddWiFRd+i3WLfFdY2 sGuqpct0VuPV7w3yau1/nd3IMSXwXSIWLPX1oPUyyw4Jj8GIjcKSKbV8RAgnIHy3TMNx fHGT44JTm2pUpbIoqHjJKlN6RoJLqIykmxU= Received: from maileast.thefacebook.com ([199.201.65.23]) by mx0a-00082601.pphosted.com with ESMTP id 294hdjvd3q-2 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT) for <mercurial-devel@mercurial-scm.org>; Mon, 13 Mar 2017 02:49:03 -0700 Received: from NAM03-BY2-obe.outbound.protection.outlook.com (192.168.183.28) by o365-in.thefacebook.com (192.168.177.33) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 13 Mar 2017 05:49:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=giQoCIauVSElnKdrA2EEpPKlJ0jKqKemnGj9D+TbQQQ=; b=PBkA8KqoShhOsZ3xr3IrgBCuoEShX1ZzB73aG95C1hNZUIDBsFA4L1M+3u1ToJdQoWr2PeSfdgM5LbHmb8G5dqCSSPX/Qybzvg4rkMCslfM525NS9Tc/kojof3RDTOxzOQOLmYO+7r5QNyh4Jj1t62jWJDex7Z1lS906KpxPWV4= Authentication-Results: mercurial-scm.org; dkim=none (message not signed) header.d=none; mercurial-scm.org; dmarc=none action=none header.from=fb.com; Received: from localhost.localdomain (69.181.140.208) by CY4PR15MB1509.namprd15.prod.outlook.com (10.172.161.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Mon, 13 Mar 2017 09:49:00 +0000 MIME-Version: 1.0 Subject: [PATCH 2 of 4 V2] obsolete: add a filteredmarkerdict class X-Mercurial-Node: 09a30f1a2da8d17d4781b1a66a282265138f4f29 X-Mercurial-Series-Index: 2 X-Mercurial-Series-Total: 4 Message-ID: <09a30f1a2da8d17d4781.1489398494@localhost.localdomain> X-Mercurial-Series-Id: <dec2b2328ef19c166f0e.1489398493@localhost.localdomain> In-Reply-To: <dec2b2328ef19c166f0e.1489398493@localhost.localdomain> References: <dec2b2328ef19c166f0e.1489398493@localhost.localdomain> User-Agent: Mercurial-patchbomb/4.1.1+3-86cd1f2cfff5 Date: Mon, 13 Mar 2017 02:48:14 -0700 From: Jun Wu <quark@fb.com> To: <mercurial-devel@mercurial-scm.org> X-Originating-IP: [69.181.140.208] X-ClientProxiedBy: BN6PR05CA0020.namprd05.prod.outlook.com (10.174.92.161) To CY4PR15MB1509.namprd15.prod.outlook.com (10.172.161.143) X-MS-Office365-Filtering-Correlation-Id: 3698aecf-03b3-487a-f6f4-08d469f62d56 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY4PR15MB1509; X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1509; 3:28+cJUuTwtAcjksTABXdH5IjvpvNNz+pOnN0IloXHyPkuRBERHAX4KM9rl7L16uGCzS7hUKjoTIjtpRok7lWSb08r6HrziL2mAgSwVnfuoTYZnIt3xaML0uWeI8Vj50lhOQSAVTYC/wT2elzhLjO8bsN3biQcJVAU/gSPLa90OoVU/N8gMmQ267QTgemh/Je46CCqdpnt8oLl/Kqyg/tcnWP8ZQ3KD3YxcK5z/UWBXRXaevi5tr8HVu1yOsd6y9CVe4leZiSLKa5CwtO/Ia8lQ==; 25:aYCDwLigVFLBgVoBjf+kZXHluLOtm85c70/w1AvKn+qg5NBbbpYgxKS87JB9whDOS+cyJMMMz+zcpUEGbSskqzIX03+RQsoeoy1+hBjyg/jFiuzDFgjixLiXNnbn2XvBd3kuGCpTfSpJb3CCWbyjo7+iuG0pHhOwVaNnS0BJCxthm7tCNNdhfxP1KvkyjzLHn7RVmeQpCUojZXhhW3wFs9XLW1ex/L3iCNS2DFNpOCZ9AR1e9+ouVKiBu58JTVuu/6SQbtpi6bHgl59k0zRcMJNPY5PVtE5F/EBPkEnVOoNumGE/897vlWgSs7rab4ThvMPQqE5ldvmBfhURc/wQuZW33P8i5N4HrizAnbsXk/5xjEZguz9tG+lGC0eJ8Lb5QWHVjJl+aeROPmYJ8cCruiSBKWIzZooJJw0OxZYspPpYxaclQCKi43ba04TCIhBC4TIig/2iJp7zT2pc2PvafQ== X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1509; 31:x/dqtfMy6wQUb6C30tJ7legXy5+iX1rYgxxRvrpsJRZ9RN6FzHgGKuhHiU/oj369W8gGj53R83wGypN0izg/g+8BSX1HxsZbSW5op0teR3yuusH1zJvtGY26ySvQbKGXZpA0NGZrdAxjvUdG6G+qol1X5MpNHeskQVk4klyawY/56DtFMMCucurNAZCLMcakskPijkUoGlXVicxVs9W7w15jtMNPT0GBpm+aN6Zye4ChRMpedrUWLaPfPlOnVRogr8jgk7aAOxqenCjlVvpjLw==; 20:3s2rTM7F2mSXfPGUCXi3fPutxHArXZiM7GCpZ7HMZsow7RTbtapch27j8paW6s07dASMy0JlfwJj1Tic4NnNclF87/bq9M1VG1qCo6Qdvs+NdBBHPCMafcPRAbdRU9Elu+G2hRmjlt5Ldsl+rBUYuuYw/ri3DYXaBPFaCOo+Ll+Fo/rtnUgb2Le9UZ6alwaM+4GQjGaefII3gzFLAFOgo04bzWrQtKEQxg/gK8itMUSw9XQlPK6fxC/rm1WoNmzIBH7WNbIdR3UcCv+KPXa3HKSWp3T6dmEeSAG0vvst+QXsPSCgH9BVNTiKY6CARlhQY97GOZxmDD5bbAGWvO0ZRc878fiOZ0cldG9NriFVeviGyLs6FGBLg5SRZA8wYzwAY+bJWwNS6xJaQEVH+mbYwF5/QomvjJNt+EIAiSd/ID/C280YUpfwUG+ZsPRPI0votc3bFsDmMYCFm6DLHmp99HCEC5UrQdtxMMKYIWy9pww91HJskDOw0Cmr+RzyYKHS X-Microsoft-Antispam-PRVS: <CY4PR15MB1509420FBBB911B843178F63CD250@CY4PR15MB1509.namprd15.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:(67672495146484)(63843785518722); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123560025)(20161123564025)(20161123558025)(20161123562025)(20161123555025)(6072148); SRVR:CY4PR15MB1509; BCL:0; PCL:0; RULEID:; SRVR:CY4PR15MB1509; X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1509; 4:FitRWVqXdxsZKFlphqoNJwPusy3H0FIhY4XO+qPbh6XOe19oAlqwl/MgDzhNUCm15PXzKX2QDmSjDF+vE/B3nkRJyJt1zn2yGtPpkl+IDyPehwvp8RkPpSwfSggqDo/y0GiaqKMv388EZRfj5znDBmepocf9cGPXZCoLbzR73nvGUCo9vXeSaEAH34tEQ+inLV1DfZnt0CVGKZvtuH5evckpKBfzcWKhXMMabZ/R79sqyyHDs4LVyhLLpTkLI9bxgqPFEb3Hum8c3+ZESacegeVg0OGfx+ajnq7QB4YqI52maT9sz9dS0I5Re194rSvQ412C/0y1cE+zPrLhBbRl5mHNI4wiibKZYJIcI0H4bXOGAW+B13lTUP57EDoEdccRmfoz2QUx+bNq4FQzjGrrydDNpFlTTHcXlnam8ByDa/eGnJm6rKPNs15g2KPuMadTpdlMV8aJvb3og2myLNYSNMxMYBIPG93gtmT3yIOHuCnktoZ9lUgXBF7rHQy6EAFuoygtLxGSpIjcV2PXJxKk90fBbrh8kD/O/u7On6v9SRsM+rGu8rGsiGtk98WaRkyrxcv4XzD/dqf93j7cxjZzY4fjIYbVyTaRU/h8kCcHVqJBmJlY2v9dHMG/Oewsshy6ly9CJ3yb1e2nFrsFR6GMdjPykBwcq723ojTB32ekgz61AiGyGZHglXwmxQXtXq8d X-Forefront-PRVS: 0245702D7B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(6069001)(39450400003)(39830400002)(230700001)(53936002)(97756001)(38730400002)(6916009)(86362001)(110136004)(42186005)(50986999)(575784001)(2351001)(76176999)(3846002)(6116002)(23726003)(189998001)(54356999)(8676002)(6666003)(81166006)(6306002)(33646002)(9686003)(2950100002)(305945005)(25786008)(6506006)(55016002)(2906002)(66066001)(61506002)(5660300001)(47776003)(7736002); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR15MB1509; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR15MB1509; 23:jUm2ZydbguzxliC3ODCYqoWpczfJQ2PAAWW8FiFft?= =?us-ascii?Q?tkk3EVEmdyTRtej9w6PYRekYn5qVo915cTbm6gszpMmnQ1ZZBhIKpqwKs+x4?= =?us-ascii?Q?1jj/lm8TLEpf/ytQb+vBUAtkLmOvqSEZ6KhyGcmDRhgzNYedNj8WJz7L7bI6?= =?us-ascii?Q?JTEqAa96FBtHeiHnFp0bkI8IRbpO3py6Jxn8ZTEyEG/LMN6MCBqpzDHUyz4i?= =?us-ascii?Q?nLFpGINQEIpEJWi8gNlSMz6EHFT3sD7UQ7BX3GirZuKoxsvTjrU6ZISa5/2z?= =?us-ascii?Q?o6PS8EqRwxwP1zFt90hVHx7iNI/98XLh7vpgiuV94vb3fjyih0oueD4OBPkE?= =?us-ascii?Q?F4BqV26kXb4cPtqrAmVszYCtPsSbwcZ6BSWTVOFiPXk0IcMazcLmliyDqBFq?= =?us-ascii?Q?PIKW5zN+2R0yUKoAQaN3NCrISebTCERzJg0U3bJK/Lwlm+Wj9i6Afv79Y4+z?= =?us-ascii?Q?KFMMOIJL7mpYIBsUWQYkpixLwLLYADUPbeTfgCsR/z6E4J0KnnYUe7H/rVUP?= =?us-ascii?Q?Z/S8PeX2RYwV91NTyQSiGusTS/uEhG1HgjwXH8H57F6CMw0WvdMzQYfcXhJl?= =?us-ascii?Q?gY2wdupfy4v7sHWOubGDX4MTZF0UIDFh25IXOHLaSylIi4PEGkPrCe7vtZHv?= =?us-ascii?Q?laPBnddlbazYYnOGKksmSLD1P30qhIS0vLvdFKQ1ZBI5csxLJOqmB7Znzu7A?= =?us-ascii?Q?7aoKHW8V0eyJU+oPzb04sMHdHe0iCqQPbjXRpwz99JtYhfpAJMyH7p5+PEt8?= =?us-ascii?Q?kYoIApYcPMx7hGvkhf63bPZfpBbXwQv38gNZyPZ6FRO3HiJFmG2iSAvLwVMN?= =?us-ascii?Q?1TJ/JmYRGkhZgzomWkm1MlMW4i/nXHN23shQkg4xFUzlipi+7Jn3RJqavNLg?= =?us-ascii?Q?1YHMIHWW1QEXxDl8V9rXSaJnu8w0kSu3SAqhMbjlXHimJeSn+IydSUH4+KLV?= =?us-ascii?Q?V8hxISlRYK1QDdWQ097rHHXxzMQ8p/j3q4mxw5EWg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1509; 6:189J2HWeDQMBQnqlz1s9k5Cm4lWvuZBnjKCp0ctXjzTM0gdJnfstLvszTZNarneLYMJkNBVDztRgDb1l64RjBIn4909PxXnk64oFXATUZBkbqWzYMUqftCv34H5rFU7nyfJ3Nq9fJ6f7p180HxADFGJO0sigfEvQuZspE8zR8qFNS9M5RbXbnjfTGUOpiFD8TcXeBIWx4PHPVLSyWoHvJmD1+nFsvoMbsRLCgWfzBth75dr4ozFa/CO3SLoZ/08y+ZuPjRntViDMK9d8pFbHuz0JBBH1PKR3SnfK9AC0mYQO+YaTdma1GaRkGWZKSAXRT5crFbztr3UXq+fEY1bZ+GmJFsCK++MaXv9TbktwlBvc+ztMTHWqZMmgXe+SBw55CWLFs5ply5EYE7LehVUTnA==; 5:foTNPnCkiteaeIx0Pun93idRo3W2rZCevSyzgezTHUkM7Gwb+hMsoM4NmUPP3iRqJvbylEfux58mBschbMugxB53uo0xza5dvAvKCX67KzJ03Bpqk3QBB7Db6Sl7huIxYeOwSGxL9GGv48Nd2tK6Mg==; 24:+8d9rg+my9K8Lo1l3ESF+bvHngrGj+7ILGjQeLK3st52BBsQ+LfHPgGPR/OwgXPooLsoq5FcEPRjl2VUcOyehHJgWifqPzhuHQC57DtH0lE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1509; 7:UFDPc+TmfwViVRGK5zFRXhSnO7E0KOC0ZNK/fj8BS2UvmSLXgn55mvJHFqSMYknq87ZLujDlER6TPRpvApaUoodBLc97BGuF+3vOyxBPK7kPq5WrZYIsntF1fmdRezwDGtjLcBwmxSaWL3WdJExkvohm9Hj0iJrCwJxBpaabgCwSd0dm+FuI3aBlyfGGFeZJhHboGD3LhBNdIcTX/YfO5iaJ8HBg8UbU7AtSZWdiP8dUF5KIHwTq6ymFZoqzFBwufiaHEQGX8VkrTwHL0ekljRYloLiZBCdWBjHa4H30mmIwsVJXdDz3eh4SnZhDjb5yqU2GivKtYrxZxKu9tf1UPQ==; 20:3g5EoiDgGzRCaCr8CeIbK57MD+06ulHNZH4n6GibTB9ZGM/PtQWvC0KXVfRPOrtoWKQBQYfjlRjtCjRTzuR/Thp49L3DioGqXG99PxGtSXTNqmaO1KZDf4vVJsEOwLcjDbM19jyecAynfqakO4RByU7jA0XeK/pAhE+R53YGeDw= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2017 09:49:00.4143 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR15MB1509 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-03-13_06:, , signatures=0 X-BeenThere: mercurial-devel@mercurial-scm.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <mercurial-devel.mercurial-scm.org> List-Unsubscribe: <https://www.mercurial-scm.org/mailman/options/mercurial-devel>, <mailto:mercurial-devel-request@mercurial-scm.org?subject=unsubscribe> List-Archive: <http://www.mercurial-scm.org/pipermail/mercurial-devel/> List-Post: <mailto:mercurial-devel@mercurial-scm.org> List-Help: <mailto:mercurial-devel-request@mercurial-scm.org?subject=help> List-Subscribe: <https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel>, <mailto:mercurial-devel-request@mercurial-scm.org?subject=subscribe> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: mercurial-devel-bounces@mercurial-scm.org Sender: "Mercurial-devel" <mercurial-devel-bounces@mercurial-scm.org> |
Comments
Jun Wu - March 13, 2017, 9:48 a.m.
Patch
diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py --- a/mercurial/obsolete.py +++ b/mercurial/obsolete.py @@ -517,4 +517,41 @@ def _checkinvalidmarkers(markers): 'invalid successors nullid')) +class filteredmarkerdict(dict): + """a dict where its values (markers) are filtered when accessed + + Markers with date <= _nodeversions.get(precursor, -1) will be filtered. + """ + + def __init__(self, nodeversions): + self._nodeversions = nodeversions + + def get(self, key, default=None): + self._filter(key) + return super(filteredmarkerdict, self).get(key, default) + + def __contains__(self, key): + self._filter(key) + return super(filteredmarkerdict, self).__contains__(key) + + def _filter(self, key): + markers = super(filteredmarkerdict, self).get(key, None) + if markers is None: + return + filtered = [] + for m in markers: + prec = m[0] + pver = self._nodeversions.get(prec, -1) + date = m[4][0] + if date <= pver: + filtered.append(m) + if not filtered: + return + # We can mutate the set, because nodeversions can only be updated with + # newer dates. The items being removed won't be revived later. + if len(filtered) == len(markers): + del self[key] + return + self[key] = set(x for x in markers if x not in filtered) + class obsstore(object): """Store obsolete markers