Submitter | Jun Wu |
---|---|
Date | June 30, 2016, 4:59 p.m. |
Message ID | <ae943c113c1b9f68313f.1467305941@x1c> |
Download | mbox | patch |
Permalink | /patch/15686/ |
State | Changes Requested |
Delegated to: | Yuya Nishihara |
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 5E4EE2C573; Fri, 1 Jul 2016 06:54:44 -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 ReJNw_njd12h; Fri, 1 Jul 2016 06:54:43 -0400 (EDT) Received: from mercurial-scm.org (localhost [IPv6:::1]) by mercurial-scm.org (Postfix) with ESMTP id 3444E2C5C1; Fri, 1 Jul 2016 06:53:11 -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 BF9592C590 for <mercurial-devel@mercurial-scm.org>; Fri, 1 Jul 2016 06:53: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 j2Z_PUkJobMB for <mercurial-devel@mercurial-scm.org>; Fri, 1 Jul 2016 06:53:04 -0400 (EDT) Received: from mx0a-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) by mercurial-scm.org (Postfix) with ESMTPS id 97D4A2C5A5 for <mercurial-devel@mercurial-scm.org>; Thu, 30 Jun 2016 13:16:53 -0400 (EDT) Received: from pps.filterd (m0001255.ppops.net [127.0.0.1]) by mx0b-00082601.pphosted.com (8.16.0.11/8.16.0.11) with SMTP id u5UHERls004840 for <mercurial-devel@mercurial-scm.org>; Thu, 30 Jun 2016 10:16:52 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fb.com; h=content-type : mime-version : content-transfer-encoding : subject : message-id : in-reply-to : references : date : from : to; s=facebook; bh=+IqhKqiSWri+UceFACf1KSjzsd7I/raIknIXd5UeZbs=; b=Z0s9oa2jwhNcd7nyWPUXBvCQAgQpKGGDkA5g0MMYbC5Wspfynt0nzkU05OfhJzGn3+0z A0v5DYAV3eYMsNrxNuW/O3Njvyl56Yz+CQJIgcoUrpWtf96egBZycUC/s+hvujK40Ayz DEGB19fY0OyH7aBHepTlZolFOKWM0YsfqOw= Received: from mail.thefacebook.com ([199.201.64.23]) by mx0b-00082601.pphosted.com with ESMTP id 23vm5gd4t1-3 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT) for <mercurial-devel@mercurial-scm.org>; Thu, 30 Jun 2016 10:16:52 -0700 Received: from NAM01-BN3-obe.outbound.protection.outlook.com (192.168.54.28) by o365-in.thefacebook.com (192.168.16.22) with Microsoft SMTP Server (TLS) id 14.3.294.0; Thu, 30 Jun 2016 10:16:47 -0700 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=o5lBB6F8Y4mdRV2i8QPHgwVHQjkFJrIEausGLh77KwM=; b=eb9tGGjG0nCA9KKf/25gJl0t9iGuAi3w9iWXfzosVzhQQHrCUyJLf/gTveAjdsf4nmegTZG8SQV+F3d5pjmn44qQ+/RMdXCcQ7GIIr7/GiMFlv4WH7KtHeodmMcLKbLvxxie2v/GZgv5rU0l/Zt6dHd6VN5xYWGbxq+Ol1ehgV4= Received: from [10.0.2.15] (199.201.66.3) by DM3PR15MB0862.namprd15.prod.outlook.com (10.164.201.136) with Microsoft SMTP Server (TLS) id 15.1.528.16; Thu, 30 Jun 2016 17:16:41 +0000 MIME-Version: 1.0 Subject: [PATCH 06 of 10] chgserver: wrap ui/extsetup to learn how to do confighash dynamically X-Mercurial-Node: ae943c113c1b9f68313f0dfd7304e07dad53be75 X-Mercurial-Series-Index: 6 X-Mercurial-Series-Total: 10 Message-ID: <ae943c113c1b9f68313f.1467305941@x1c> X-Mercurial-Series-Id: <8e7bc663d76a8ac51d95.1467305936@x1c> In-Reply-To: <8e7bc663d76a8ac51d95.1467305936@x1c> References: <8e7bc663d76a8ac51d95.1467305936@x1c> User-Agent: Mercurial-patchbomb/3.8.3+370-8b1ada3460ea Date: Thu, 30 Jun 2016 17:59:01 +0100 From: Jun Wu <quark@fb.com> To: <mercurial-devel@mercurial-scm.org> X-Originating-IP: [199.201.66.3] X-ClientProxiedBy: CY1PR04CA0030.namprd04.prod.outlook.com (10.166.187.40) To DM3PR15MB0862.namprd15.prod.outlook.com (10.164.201.136) X-MS-Office365-Filtering-Correlation-Id: 77b593c1-cd9a-47d5-3c49-08d3a10a4de4 X-Microsoft-Exchange-Diagnostics: 1; DM3PR15MB0862; 2:sYFsXGG2KnJVy6AyIhyt/mGm4s8iLAgT/oro2SkgiiAJTftgxg2hNd6egFYfeVSYxxP7NX27BcJKyAv4gU02pIf85c/HDcGz6bloiZQBipJc9LptwEQ6ELHAhnStXE4/J8OXj0QV51KQCMnbQW8CoAkgFppyCqADNBuFcEnPq5ds5nshvBuQ2PhxM4U442Z7; 3:nEXhXGnncSKejhBbtOFz/3XW8zCXTiCvjvklbRuCHtdWsyON54rhY77sNNUcJ0cWreQHHLIRsTWQrjVFYWsDVJDVrWIGCBBc9qYyYJaW/j6mFpELSrQY+KNN0QMGnK7w; 25:Xc47yckJUIJPopFnelZyuazL22fmTLNe3IMujSVHKJPQTPTlq4bZxA624A0NNvptlo6C1CsvczfKXENyzODZVkKHEyFk8u+AyRLkBv1Ndz20OQpWg2IUKBMvtCkWm6ovYzN42aB/vULXpA8ETUhoCZr8e7cU2n3depC5sem5BIBSrHtODt4IR0i9qDIWeaePEnfBeJmBC+oRqU9QBSNepCOijX3hKirIamX4Sd8euSc2a79rAc2EtiGPhCZnveqOeoUUsICGqAIftuS4GWRrVzKbzOiRHiAvkdANMTphbHebODahEoLgNkYjT0E+IeWzPwEY3I56oXGZGj43/TqPY8rlHLCRIcnN6sp1z1c3YtC97LM0nJO5GLjwy+QuPwm82wR4pOaO4FcuPvZT+t3/pVa8sv/A4KA90wMtcqHQncs=; 31:9fSpWS3HqcrTWv/FcdGKSn9+e7y7+6bE2nYtxtWcRF3o1tgKXPxpeveXDonsdgEc95R6pt4xD9GQLui9HZy8u54XOdYLgxL/YCpHqO55gVwD08H9SU1Yumlo2cBWdTYbFsMpqIywgD7mrWGQYMvMQCqQmO+cVsTp7/Y3VLJzGT/8qVExjwkQ2o9QdjK0gX66zkCvGBNHcN0sJUbPU9fV9g== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM3PR15MB0862; X-Microsoft-Exchange-Diagnostics: 1; DM3PR15MB0862; 20:wT6MKvvpChVteguOFpNHX7UvVY8Spg/NMe3AA1a8qQSnWhCtHDSolneVuGrOYR9eY6OhmE5IAazUKRqwNz884SWbjA2QbioZgmumzZtH6tFn9kAhD9oqKt54mgTnSdrt4AXWvVypjlCYmwah72HqBQbxwURdO81KH3UlLeeN5uw=; 4:pSMLPIqASKxjh6yOoGwBlsWO2U6YpxOmhtqVoQeZEiLMRAWi6AqRyr9p5zkQ6sk7fojsAPFuidlPsmuEVTumBoVOUt7y90+w5VqaB6a1VgGl1J84AP39EX8s9rR36Ldr1PkXF0xGzopGJqVb4p1AWvgLrukDDq76QxakR74kbfqmej22NgTRR2OArjCehpIHRvs0kizi25BQGqt/Jel9kbC0XV9pBC0lL00bJ4aWd7RXFrrDkb3zGkUIanqMX79X/ywNwckdDRAvnjICyCfIgT4N9c4FQUY3Npy77hTqZbFnD3T1iK59fDLTDcXd8E/nHlJoYcGYqlrChVqbvOrYO2oaoBPh1oZgUy52CcUB/6XOtb01PIZJA8AICf0a+2w2Z7tx+maIvkUz5N6ov6BcrfOPI5GvSvNlR6U/UAy1REo0ftR21ya6LzaE9x4D8SZV X-Microsoft-Antispam-PRVS: <DM3PR15MB0862B53822FC6271022562A3CD240@DM3PR15MB0862.namprd15.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:(67672495146484)(63843785518722); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001); SRVR:DM3PR15MB0862; BCL:0; PCL:0; RULEID:; SRVR:DM3PR15MB0862; X-Forefront-PRVS: 0989A7979C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(979002)(6009001)(6049001)(7916002)(199003)(189002)(575784001)(47776003)(101416001)(76176999)(54356999)(2351001)(50986999)(77096005)(19580405001)(19580395003)(86362001)(15975445007)(66066001)(97756001)(229853001)(42186005)(105586002)(33646002)(2950100001)(83506001)(2906002)(46406003)(106356001)(23726003)(9686002)(586003)(6116002)(3846002)(68736007)(7846002)(7736002)(450100001)(305945005)(81156014)(50466002)(8676002)(230700001)(92566002)(4001350100001)(81166006)(97736004)(189998001)(110136002)(107886002)(33716001)(16503001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM3PR15MB0862; H:[10.0.2.15]; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: fb.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM3PR15MB0862; 23:DZmpP0d4xgxkBVTRHf51l0/XfPpRdyV1LBQN7Q0jN?= =?us-ascii?Q?YuP/A8qXeUkfk1yMELmfFta9uQuFSpKVe0wO/wQsFzvqXNm2fbnijEcI3bos?= =?us-ascii?Q?84HBTs9YGJ8/pIbvS+oP0rwGyf9XF/HgSU/plbgbcK6AaxeUmTbwiJxqK3nJ?= =?us-ascii?Q?+Ion5jXz4aPqzC+NFYnhxck/+PsrNZ5oEhJChxVQOI3Isj91hP/kYVyjQ6CW?= =?us-ascii?Q?7zp7kjuoVbyvpaZ8O95m/wBfZnVNN30xK3UILdqdPpi2hKhcU3a3lLx6+Mf9?= =?us-ascii?Q?DMJsx8jtG9ZasYkrIh1u2Oo7fLl7W49rmQ5wWwVubEQ2csn50RYL46RnhPvK?= =?us-ascii?Q?p6lDkBwJcKuiZr7YfBoiWb2GXSDJmC6K6HienaJgoziqN0+drtnK8O7BPyn0?= =?us-ascii?Q?+4otWLpSrkdC8Ktr0IPeGuxk73eiZpraQm5kFRckxW3Ae0hnWPehdILgNU1x?= =?us-ascii?Q?QWXNfumC283UTo8TdyCy6GZqbNE0v9dcb9WhJAESdClJyHVOCagoE8uz4CMQ?= =?us-ascii?Q?45wbK/fyPYDFqdJiIG4nCyVxFMoFEYa85WyXoRKkDxiZ1QjSYg+A2dbi+ZwC?= =?us-ascii?Q?53t1/n4atT/QyWo9ScpZoXsEd+rROrH/1mJ1vDxuYrDMJM+uMcm4qwraAO0U?= =?us-ascii?Q?omogG3XNP9O9wfwQsz8XK098CzrY64rYmTY5G9HrWwEoHotBflP3P4zPPunx?= =?us-ascii?Q?nwyQQ8U5cHKvZTD72Z8wwPBeYn7mz+YxjAf9zMlklvkGvhbUEd/L+57/XNZV?= =?us-ascii?Q?nFfNDjwL9r+EOqfH5bniL5FB+zcWviahhuTX/G0nna3jWFUL/TOj1aeSiViq?= =?us-ascii?Q?h7bTO4nJ7Cy74hnn1jWWk4wybgKGbi7HpwL12CSLMAdWNV2HQfXWitQXzKXf?= =?us-ascii?Q?Q+ZmHRwlMYZWcwi+oX72DBTWOHirjVjt8ceZfE1xiXIWmCrdm6YLrK1iN7Sf?= =?us-ascii?Q?3u7xC3eJ6aKALbXa8bNaG6Wwx00aB+1y+CIvL/iTxf6l0IjIHp49Fa7xyS3k?= =?us-ascii?Q?y3SiGo7rGfIAYKqrgIE5FAEy7+WOcE2H2x3VhMJhjCkDg4htM1fQaIkuAU5V?= =?us-ascii?Q?rWU77c6nypVQ5G5FRgqteY7sGgZst9Orybqzd3CXZANP/I/YLT8ODq2H6FqK?= =?us-ascii?Q?EqB2BbS00DwBHbVr3Ik4CVHPJG6Aqi//boaipIp69Q6gQJHbWAzTOibW30DH?= =?us-ascii?Q?Fe4aKBOvojthiYgJjV+8VvaFlOVrJI1U8eHEBiM8j97P609h8TVww4WWqs+Q?= =?us-ascii?Q?Th9TFlw/14buy16f38nJQvZK8J8Qg9aWe9aPQHdLSC7ASWe16unirdlkQbnD?= =?us-ascii?Q?pGH/opkXqo5m6qVhFso9Bzq+o1W8SN3LPnJQ8EEp8sZEMQBdm8rUpKmJ0Oc7?= =?us-ascii?Q?zFw5SnyeW53+2eRgseVw92aXNQ=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM3PR15MB0862; 6:ubzO8GL+ymRiIgB6WmvjqTkX7G5oLOMZ+5cmEOEr7mYNQfNiwVLn6dRqvgwYccBPEqCFFjp0l3W4Pz637ZTgSPeXbh69WlZbN6tXib00gXd0Lw+q5Z+tQadjrv4VIUbATmnz0ATVkuisW9deSlGdbRMMB6vYMJrJJ5yaPNXC7ry4rJASrCVQoVZrQtToY5A4wsAI4n4dbdwl6+yxhe01oAQaRkx4aqAustIGFTQP1rlxIVeYQHTRNx82sJSj63wNvOnC33QtnaUS0Wxg9g/3o3cGCrwbx4BwY5bjE4ADm60=; 5:5Jj98wEC5WtcOppnuEGD59ukHBAk/p3b3TsKQUoVUq9mKO1pMf2jq4peJ6UNKt5TBmmk+/smnBdXFv9RG+ffDf0C0ZquEejHjikL+lM/5B6kFGwet1y2N4GrAqoCPH49flB3h5dp+Y5T+SfhnTyHQA==; 24:wPVExG1BPffVcxz8ECgZd96HzhPajPokNk0hhLltwPI7EJMm0LZcb11yXqmr0uNycWc2W2/vNggyCMu7LUYWia5OaBsyBV4ZsGCVPqNiDIY=; 7:kGt3Qq8KMDknYucZfGqP4QyZRe+uC8Kc4xc3DuWbllXTUyPuKFO2Km4m1LWw+Of+b90nulXUisYyd1iDijO+ROwVuq9uBuLn9zXnykvo9HELDP/5pFsl1UhZfWKjtvOrbOIsamPBHrMo/gyVkyZnqQC5pHa/qP2s+TvQO4IJvNIMEmRROM8yD4GB6pard0bItfgKSdyD2nNuogBezkTSAUhnDuWrLlSzMnrEjuAa2a+rQo1t8u62M5oxQx+Yr2Xu SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM3PR15MB0862; 20:kVGBtR34QSKU2/438GEUY2obqVA8JpUPuzGjuQTlGlu1jHFYH5+lNjrfwD9siiqTesnkqqFqLhbw9FcncD1eQYlzG1eOtBjhs9FG1FLcwaIvsZAcuy/EILH9G5bQXg4J1+uGb5gnZT1xMBmY1BZL5YHsqjgq2HIGMiSJgKG+rlE= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2016 17:16:41.2254 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR15MB0862 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2016-06-30_07:, , 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 - June 30, 2016, 4:59 p.m.
Patch
diff --git a/hgext/chgserver.py b/hgext/chgserver.py --- a/hgext/chgserver.py +++ b/hgext/chgserver.py @@ -763,3 +763,21 @@ class _learnconfighash(object): def __exit__(self, exc_type, exc_value, traceback): _unwrapfuncs(self._wraplist) self._ui = None + +def _wrappedsetup(orig, extname, ui): + if extname == 'chgserver': + # do not learn what chgserver accesses + if orig.__name__ == '_runextsetup': + # reach the last ui/extsetup, stop wrapping + _unwrapfuncs(_setupwraplist) + return orig(extname, ui) + with _learnconfighash(ui, extname): + return orig(extname, ui) + +# wrap before any uisetup or extsetup is called. usually, extensions should +# do these outside *setup functions. however, chgserver has to do the wrappings +# right here for now. it should be able to have a better place after we move +# chgserver.py to mercurial/. +_setupwraplist = [] +_wrapfunc(extensions, '_runuisetup', _wrappedsetup, _setupwraplist) +_wrapfunc(extensions, '_runextsetup', _wrappedsetup, _setupwraplist)