Submitter | Jun Wu |
---|---|
Date | Jan. 9, 2017, 11:12 p.m. |
Message ID | <483eabc8ccbbdfabed7f.1484003544@x1c> |
Download | mbox | patch |
Permalink | /patch/18156/ |
State | Accepted |
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 1F4AE2C1D0; Mon, 9 Jan 2017 18:13:20 -0500 (EST) 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 pWF-vKNinaxn; Mon, 9 Jan 2017 18:13:19 -0500 (EST) Received: from mercurial-scm.org (localhost [IPv6:::1]) by mercurial-scm.org (Postfix) with ESMTP id A32CF2C1D1; Mon, 9 Jan 2017 18:13:16 -0500 (EST) 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 4694C2C1D1 for <mercurial-devel@mercurial-scm.org>; Mon, 9 Jan 2017 18:13:15 -0500 (EST) 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 EZGjbEy5oXif for <mercurial-devel@mercurial-scm.org>; Mon, 9 Jan 2017 18:13:14 -0500 (EST) Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) by mercurial-scm.org (Postfix) with ESMTPS id AB1AB2C1CD for <mercurial-devel@mercurial-scm.org>; Mon, 9 Jan 2017 18:13:14 -0500 (EST) Received: from pps.filterd (m0044008.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.17/8.16.0.17) with SMTP id v09N8bKq006200 for <mercurial-devel@mercurial-scm.org>; Mon, 9 Jan 2017 15:13:14 -0800 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=eDn2wsd/RSLASSWSH6FZWMGEKjG4Ka2Fo/IOz/TJFwc=; b=VcyvNM/8IqKSnSRkZ/IqKTxd5fY+tkdSgmYOTzFTbcx9+k/NqMinuHbAUyYTjbc1z4nJ 9IxV3zw7kKObNyoCzn4rXwYUbEYPwfkZ5NBSCKoSfeo9OxEIf49RANxDBbrAFYDDCuw3 Jb1mGEw+GySbsliuNZCoSQOnsadvBQsuhKY= Received: from mail.thefacebook.com ([199.201.64.23]) by mx0a-00082601.pphosted.com with ESMTP id 27vj4bgrks-2 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT) for <mercurial-devel@mercurial-scm.org>; Mon, 09 Jan 2017 15:13:14 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (192.168.54.28) by o365-in.thefacebook.com (192.168.16.18) with Microsoft SMTP Server (TLS) id 14.3.294.0; Mon, 9 Jan 2017 15:13:13 -0800 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=7TCOsu/MbNNj9f18RWfSckAbj4kWE9wmT3hxdLq3x/w=; b=IjY6QvzDygApvVPNumwMMcS+XdNeehpYB4jZP+EgR5TooJHsR5TyO0kPBWVnqIuvUGHdpawC3wNdVdJi5Sx+tWrLK6iqRg2MbjpWtPm8ncTJFrWDh0R1MJdsKabvbLQ5pSgOTt05q71gvepXFtlxLGjSFiWdW+zPh3fRQztmM6s= Received: from [10.0.2.15] (199.201.67.130) by CY4PR15MB1512.namprd15.prod.outlook.com (10.172.161.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.817.10; Mon, 9 Jan 2017 23:12:59 +0000 MIME-Version: 1.0 Subject: [PATCH 4 of 8] chgserver: make S channel support pager request X-Mercurial-Node: 483eabc8ccbbdfabed7f0f0abd74fb131adcd3c3 X-Mercurial-Series-Index: 4 X-Mercurial-Series-Total: 8 Message-ID: <483eabc8ccbbdfabed7f.1484003544@x1c> X-Mercurial-Series-Id: <25760899b0ad12660b6a.1484003541@x1c> In-Reply-To: <25760899b0ad12660b6a.1484003541@x1c> References: <25760899b0ad12660b6a.1484003541@x1c> User-Agent: Mercurial-patchbomb/4.0.1+3-7817df5585db Date: Tue, 10 Jan 2017 07:12:24 +0800 From: Jun Wu <quark@fb.com> To: <mercurial-devel@mercurial-scm.org> X-Originating-IP: [199.201.67.130] X-ClientProxiedBy: SG2PR0302CA0002.apcprd03.prod.outlook.com (10.170.129.12) To CY4PR15MB1512.namprd15.prod.outlook.com (10.172.161.146) X-MS-Office365-Filtering-Correlation-Id: ea4deeaa-32f0-4982-5e1e-08d438e50e66 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY4PR15MB1512; X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1512; 3:RsxZlQx2TNHDdz2sMJSaeq0KQ2Z57hoG52IOzgmCC88tmnmUSZ0DmKdnIqTVLG7Vr0KAtntf1GobvDAtU4UFzy21osAoT0qqVRmgPP7oGPXxmKKr090YJl3YlsYcdfJBCixAgaKuJkNaDpWH14ypunfS//p4oHGyDuL3OGfNUprWlQEXePqPUPh9nfnmek2NWehRxni/cUdA4ikab1N9gFOUlwOr/5orYkH/uXnGjV+ftQ+cRE/uC3Iqlu//tg6UQKAN8mxEL/pzUpSoWGxPvQ==; 25:IdTIhgGI1Z0E8ue4kPQJN4PD6OzGBxHKk/yg3APEm9D3YA94peB0ourF3xe/C2EJypRsZVqaZNv9g0rsDIx15lI+vixa6McPSqWxAiS24XB8leDI5cT8+d4DFT1D3sOCUCZ+sNz5SF+DC/Y4vY6bxMIFd8Yy9j3ZQssAX4RpQQyh+pcRUVBPsnKSoZAsvDQCwskD13weOpPbjHMwZrHIKJsyV9MuwRuybtVUo6AJb+6WeFEdt6cHi2JnPjNlWrKT5Ky2qkf6v8T+mjj/yhtRTZuRg/230sdWgNPKoK+qWjatA2WkKEX+m8hrHLy6Ywhi0P+b7qFCf/bqnpGAqS4oU8K0gHpXKGbH+nkRqMqRjsrnX7VpvOQKoPWUqG6EXhWujH/Q4Jq3zNPj8yixsWmGkVIgcc1pRm9kjnB5SakRrV1e/XY799LGPrVPiEGLURKcC24aQGQ0IADoFcGOUzkA1w== X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1512; 31:OYGC4MLCJTdiBiEVzErv8S9ZSf9ROkWJ2+QcKjNADblKefv1Q/kljaYXiTUkblSJs2wxFqJxJVeSO+lXHRtS0dfWRIqGdH1DZj34Y3+UMFmk9sAIPxymg9YRWFCTe4PqcLwGcpaUqzrtzoY2Qi6/x73Mq6aZahExInZIDJYUShUuBmd0bhewrD6FRtrKxYVOGuRZpB0oimpBBZZXOHs++qh1INABkx+t74kE0M4lksvz/Y/p/IaXZj6c1yPSi/uFp8avpN0Iev98FO4ptYJqiUFcjOv4L+DCcJpUNL4fQPc=; 20:nKDYZF00UXTgLGTQwV0kbLz9UijP3rgTXlYOZfdK0LlJfS9YgoHACIdOFo3e6rgYp4WQ6UyH1hL1dPAKiOiaxiq0F6YGg9WMHZUlmGa97dLN77jYB/rFR9X3nbhVJkKYb5PWyEwmjjEsPbjvpjf1/wIFpDC8x+BCOBvm2jWT/tcx03+7q6qoMRjYj7f1R3EEVtUgPJTRbMK5Cg3MHrlQ3WRDL8kxuIZhjFptN/aLUvmSIrE8GPyk7Jhg8NcvwUshXRu7oJaYfkMtsKSzq7HcPILNHixaNk1LNuf0z0qj5TkTvuViqF719qDett0yJoJXMUFPEpn5TKMpeoAake8FebRk9YDZbvTX+mlgi6UDgDLFI9GReVLGFd50gZ+Oi2muXkuMTySywT8R1KFiHbOgEo3TpqAfRAUKT9hag1eA88Tro5DezLoUNrRxU8Kn7Zz7j65ORf5c1mNfWbZ87EYCgurIJBqf5m6TUtt+LK7IhXHCyJk0C9uxp94HDwQrE8Q9 X-Microsoft-Antispam-PRVS: <CY4PR15MB151281FAEC453A0E7ABD61D5CD640@CY4PR15MB1512.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)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(6072148); SRVR:CY4PR15MB1512; BCL:0; PCL:0; RULEID:; SRVR:CY4PR15MB1512; X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1512; 4:A019lAW8a+U/NCebUIH3RETfsYvZZ285cbMoKZIU2RzaqRGROZXxTHusIeCN8XIM7tsR2Wh3UwuwQyzPe6onPXboyGXXbJ+k1tnkkC+YyCGf+RQD57zr9VGHHDQI9GjjsnQEm7QItJacVnkkB959VMo79HJ0AELMIw/eNpEhaksUoTuGwKxnO9cmMvmezgdjtIDet9yapCFgQ346Vsl17yQJbmer3X0pY2hGyLL5+6M1fWr1BuGXBXqqXc9EBIphSs5zvIQ1QZeizcyAS6dSlnLdsp7v3ocaBp+qKTdtkK/D4vpXdFUF503D4h0aU+HW2aAXwHMpwfvXkK+6h/ZRYgxIeGhMw5liRdDYGQZCX6N4tFVNcrNDUMoRbsTvoF3oESXY5b15VKa/KyaQec3DnlG/zupCmZtLWB4Ho/fZBwGeVdRABr1D+e2TnKV0YMrUQhM9vVooecyJfgRjUVMLPVXAJzj58FWVvfpajw1lR45ePIykZWho9KJr8y3Ye3Ln8OqpUMvQlDtPkmveZeZUN4hY+/MqscIJFLgOwTsVpySkCIKmkWrTD2G+H7O45GsSZKYdtFHSBbsGOFD6Toc5HEnhy4SsTVGe7ZHSYDUl9aKwZz68JgcasRqOO93ADTWmYo9rZFyCAhvI7nwRGA4r7Q== X-Forefront-PRVS: 0182DBBB05 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(39410400002)(39450400003)(39830400002)(199003)(189002)(33716001)(50466002)(97736004)(4001350100001)(189998001)(107886002)(46406003)(68736007)(450100001)(575784001)(5660300001)(86362001)(33646002)(5890100001)(110136003)(105586002)(2351001)(106356001)(42186005)(38730400001)(7736002)(3846002)(6116002)(47776003)(2906002)(23726003)(81156014)(97756001)(54356999)(83506001)(76176999)(77096006)(50986999)(81166006)(25786008)(2950100002)(6916009)(6486002)(6666003)(90366009)(305945005)(92566002)(6306002)(101416001)(66066001)(9686003)(230700001)(8676002); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR15MB1512; 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; CY4PR15MB1512; 23:9sopEkxHlpE8GYdCpQq7nsIGYyrtm4uev6vKPs89h?= =?us-ascii?Q?iVr6ppJV4HaBqfn8Z0Bx1QwlcwUNV2CjMS+7Z3trBdBjozkGc5ZvBZdAXHz6?= =?us-ascii?Q?UBbk6f6Rg2qR5E9JzEV7TPW4WweLQtOrkCKWmmp25bk15QTXDQHJu5/6RARW?= =?us-ascii?Q?N5WdA1jFs0ucooP7/eQOuEkLHP11g+POyN6Xrn398DPMYcR8N971voViLpN9?= =?us-ascii?Q?IFChpkcx061sl/3bCH71Byb24TmjKWMKakFpLNs+lKmyTeVwLQ7dW4HPLorf?= =?us-ascii?Q?VFhdpfe0+KuUS7HLMB9xlqdd81jHUYYGG73sTHKkFZTCsB7ntYiXP8Cki2n/?= =?us-ascii?Q?AYrntzCpENDwTX5QXOfkrqUcke5YqW1RD7Z2whvfN6RzVNk48BMa7CnFXvMG?= =?us-ascii?Q?6xR2d8tMscoaDbjSp+LFz5abSjI+h2zwkCAkEHShN5ayVW+tgWnfqiITSROX?= =?us-ascii?Q?OPnXP4Vc7C6qeA5UmXBTdyXzNP1g9gK6oLU/UuIfT0SrAlbbj5EdK/tkscbB?= =?us-ascii?Q?4Bk094Uf7sNdBEpUPHqoOR4Dkv2/Cb45suDVR3/rJQzcNrqZZJ7PJ17bVprh?= =?us-ascii?Q?qTl8078F6zuuLDMhKvnZ01cDAQRv+8eyC6cGnhhrCzAcQJ1VcrevmxZ9EnU5?= =?us-ascii?Q?KrxBvPkBF+lWOjou4LUHM5Dh2yS3ZVRyGqSuQQC7MehY5yk11bnX9Azm2s5S?= =?us-ascii?Q?SGKVqpFhZHGkW3AF7XQzWKGVUCWzpACJ1Ulp0Wur/Fb1krPgr55mRQ5DGQkt?= =?us-ascii?Q?m/wUQtNX2Au/UyZeB2S1RoGd6bU1ycqEKK+SWTgfXZj4u8F4Oq4MvQ3TClID?= =?us-ascii?Q?mfJJf2tyxJTkSPOamVkfL8U3pQNBXaxt1HHzBDdCKTQ0SNPSzhf6gAg+3YYm?= =?us-ascii?Q?J0Zh1wQ8L82Xxyg+6bKiv8mc2lbkOmY0xNyNP2IOzt6QPX7tUZ+EyxolM5my?= =?us-ascii?Q?YilZbFc4RW9P5wxlN7gv0fwhsggjKI1kjxhbymcuHnmLjaR/KTnoaXaOX2n8?= =?us-ascii?Q?1g95ZiPJF3YIOoUuberQLVIs07QMAFTEdGKyEVOtEmd9SoL9vsIJSoLv1cXr?= =?us-ascii?Q?M51WZRBCNkLtrvQl0QGoc0uYfJDKbeC3KTYMg/h7ZSLXVOpKHaM6Ri3Qav8U?= =?us-ascii?Q?VKFgqiLVF6CY0D3+Cbf6W/P27W06Qi7K21U5H8DNGzAqkqqxM42/s7DJjTEi?= =?us-ascii?Q?a3x4U/OWQTLY2NuQ50+p23+Yao7+6bUixiYririd+THTrEROMbrcKFJCQcdX?= =?us-ascii?Q?mUWN99hdMEU/V4ETK3DBy5l2gPesXPqBJtTGyWSRMqKx+qhwRl0hk/xV1psA?= =?us-ascii?Q?isU21MhOW2z/ZGrNjlCLqoUFZq26OIqT35wS+5GOhHCuRKrPPrd15e7fYa1Z?= =?us-ascii?Q?lhnbxGQh+de4hDscugHiLpDQ6A=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1512; 6:XESLmndohq3Q/tFQQZiDZkpgua3MkMSwPCx04CmGlK/wpKmUJqXm5XD93D8oL03AUn50IN7rzBCO0W2tYZi5C/DRVoSTvNhSuGjFAc1tZH8VZm7hIuafUhb84up0dsZqvIJ/+09yOHc1n4Kg0rA2hokEdh7xn9Rg9DCSbk1evmvMOrtZO647D1pizldXPQGmRX7m0GarzTS3Vsvg4I4aODOg0eYLHinTt8OYL3o7ps/cFXcPcH/cOJGeFCMP2cGtCdHHAWdxpfTlz5HrEWPCiwdgk+ZpTEZcD/5D9BbKkBMVBdcfzZVHVY3mysjhTTRmiyJBHYt37dfkGerd32iwO+cSSsKFp6YGNDr7MhJ0yXZVdYoz2bIgd1vtbwxfnI9TRT5YxuVLcatlp0UGKpxZtGQuPgIej866ARd3i1D8CCg=; 5:dO2SiQdcX7no9KyXYwFm1QAsKaH508aJnrN1ziORYhZFnZJU97ZjCSCaNFRYyNLxannttfXOkI5ITCO+dOISqjbFmZufZ0aRkS5Dq4Vp7RH+EI3FRBUBXVj3/ZpKJxuwS9oq4tzB/KRf5+lDx+4yug==; 24:9UzLZgM2zExKj3LV0OueAngLOsItqdcCZWh5yEA1r0sbuaoV3hb4qNwHZK+0MqbVBz9UijpGY/880iSFSCyVS+gF6mWd0I0tkrKv8tXhh9I= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR15MB1512; 7:912h/++BLVmOI9JNRXj7FhSRMZ76QKBZ3zVjvAWEdgkeLuQJGI2OU1gUoMcr7pWcRPb9r8HfV3zwptcdxaAn4kGhjjqrTS8Aehx+Fg4ohzKC3qfr6LHO42sudNoMjNp9vMTSpOaGhyUUR7eWrjucwBcEKE6gQIsetiLMGWw8/pKolo41WQoM+2chbCdAq4U81LEebAINuOGuWFA6udJxA4J8hvWBXx27LE5157BwWsY8l1pxmueTJKgsgXv5LuLbnNcxIgT682HCra2jR2o+2HlwGATNdN2ccZMEssZReywSadgdZVvqsUBGxPqctETGozxGdxuVDuWM47llRmBj2aiPZXAtatowGfDnuMhXnX9QniJXG29YDtkOhPIVCuJypUdMpJxYvxkzP6pGjJtFPHb9PoIPEfjNl65HqfYr4AKqB8HlIPSWWUjdWCT7tkrVx+h9kfQCQPNKFL1ku0LKng==; 20:m9Rfc/a3fXgtUU68RT5RZPGTYsIRC7cAaXghXTTJvPuceuL3qMumt0I5gzUk7TuuNt4iNtTLHGNviOBHcr+RJXH9h/WerzYyCDzZexFbKKhvRtJZj2bOuUBiAQBP4psTdyL5f6bQD0ag36wePneWa35pVo6VyioVgnU1R7zJixA= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2017 23:12:59.6880 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR15MB1512 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-01-09_16:, , 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 - Jan. 9, 2017, 11:12 p.m.
Patch
diff --git a/mercurial/chgserver.py b/mercurial/chgserver.py --- a/mercurial/chgserver.py +++ b/mercurial/chgserver.py @@ -288,4 +288,8 @@ class channeledsystem(object): exitcode length (unsigned int), exitcode (int) + + if type == 'pager', repetitively waits for a command name ending with '\n' + and executes it defined by cmdtable, or exits the loop if the command name + is empty. """ def __init__(self, in_, out, channel): @@ -294,5 +298,5 @@ class channeledsystem(object): self.channel = channel - def __call__(self, cmd, environ, cwd, type='system'): + def __call__(self, cmd, environ, cwd=None, type='system', cmdtable=None): args = [type, util.quotecommand(cmd), os.path.abspath(cwd or '.')] args.extend('%s=%s' % (k, v) for k, v in environ.iteritems()) @@ -309,4 +313,14 @@ class channeledsystem(object): rc, = struct.unpack('>i', self.in_.read(4)) return rc + elif type == 'pager': + while True: + cmd = self.in_.readline()[:-1] + if not cmd: + break + if cmdtable and cmd in cmdtable: + _log('pager subcommand: %s' % cmd) + cmdtable[cmd]() + else: + raise error.Abort(_('unexpected command: %s') % cmd) else: raise error.ProgrammingError('invalid S channel type: %s' % type)