From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Phil Sainty Newsgroups: gmane.emacs.devel Subject: Re: Emacs git repo mangled Date: Wed, 02 Nov 2022 15:11:06 +1300 Message-ID: <7be379b823dbdfe02ddf29c023b73d88@webmail.orcon.net.nz> References: <87v8o0hrk2.fsf@gmx.de> <88f2ba22-64c4-c835-294e-9367766161e5@gmail.com> <87bkprhw7r.fsf@gmx.de> <48c054670f70ff7b056a@heytings.org> <877d0eiywf.fsf@gmx.de> <48c054670f6a015a2cca@heytings.org> <8735b2itq8.fsf@gmx.de> <48c054670f81f5613f23@heytings.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_fee9230959486afcb8398fd52565daa1" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40415"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Orcon Webmail Cc: Michael Albinus , =?UTF-8?Q?Gerd_M=C3=B6llman?= =?UTF-8?Q?n?= , emacs-devel@gnu.org To: Gregory Heytings Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Nov 02 03:12:04 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oq3Ea-000AJv-2O for ged-emacs-devel@m.gmane-mx.org; Wed, 02 Nov 2022 03:12:04 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oq3Dy-0001xa-0m; Tue, 01 Nov 2022 22:11:26 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oq3Dw-0001xF-3N for emacs-devel@gnu.org; Tue, 01 Nov 2022 22:11:24 -0400 Original-Received: from smtp-3.orcon.net.nz ([60.234.4.44]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oq3Du-0007GI-94 for emacs-devel@gnu.org; Tue, 01 Nov 2022 22:11:23 -0400 Original-Received: from [10.253.37.70] (port=16168 helo=webmail.orcon.net.nz) by smtp-3.orcon.net.nz with esmtpa (Exim 4.90_1) (envelope-from ) id 1oq3Df-00019d-11; Wed, 02 Nov 2022 15:11:07 +1300 Original-Received: from ip-180-148-114-34.kinect.net.nz ([180.148.114.34]) via [10.253.37.253] by webmail.orcon.net.nz with HTTP (HTTP/1.1 POST); Wed, 02 Nov 2022 15:11:06 +1300 In-Reply-To: <48c054670f81f5613f23@heytings.org> X-Sender: psainty@orcon.net.nz X-GeoIP: -- Received-SPF: pass client-ip=60.234.4.44; envelope-from=psainty@orcon.net.nz; helo=smtp-3.orcon.net.nz X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: "Emacs-devel" Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:298988 Archived-At: --=_fee9230959486afcb8398fd52565daa1 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2022-11-02 05:47, Gregory Heytings wrote: > Eglot's merge (0186faf2a1) is the first case in Emacs' history in > which another root commit (1e5b753bf4) was added to the repository. > So at the moment there is only one such command to type when starting > a bisection: git bisect good 806734c1b1. > > Eli, what do you think of adding an admin/git-bisect script to do > that? In the future, if other similar merges are done, it would > suffice to add another such line in that file. As another opt-in alternative, the git bisect commands for starting and iterating on a bisection run a "git checkout" and so we can use the post-checkout git hook to automate this. I'm not aware of any better choice[1] of hook here, so we need it to first ascertain that the checkout is even involved in a git bisect, but I've attached a proof of concept which works for me. It's a bit fiddly in that it means the "git bisect good " runs before the triggering "git bisect start" command has finished (as can be observed in the output), but this appears to be ok in practice. The hook also has no idea when the bisect has been completed, as all the BISECT* files are still present when "git bisect reset" does its checkout; but because the hook adds to the bisect log, it can detect whether or not a NEW bisect has started, which is the important thing. Client-side git hooks must be installed manually by the user (they cannot be supplied automatically while cloning), so it would be up to individuals to follow some documentation to do this; but the benefit of a hook-based approach is that it should work regardless of how the "git bisect start" is triggered (rather than relying on people using the command line), which benefits people using Magit's bisect UI (to pick an obvious example). If we provide something like this, I suggest we also comment the file of known-good commits with all the details of each entry, and just grep out the comment lines when processing it. -Phil [1]: https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks --=_fee9230959486afcb8398fd52565daa1 Content-Transfer-Encoding: base64 Content-Type: text/x-shellscript; name=post-checkout Content-Disposition: attachment; filename=post-checkout; size=2073 IyEvYmluL3NoCgojIyBHZW5lcmFsIGluZm9ybWF0aW9uIG9uIEdpdCBwb3N0LWNoZWNrb3V0IGhv b2tzOgojCiMgVGhpcyBob29rIGlzIGludm9rZWQgd2hlbiBhIGdpdCBjaGVja291dCBpcyBydW4g YWZ0ZXIgaGF2aW5nIHVwZGF0ZWQKIyB0aGUgd29ya3RyZWUuIFRoZSBob29rIGlzIGdpdmVuIHRo cmVlIHBhcmFtZXRlcnM6IHRoZSByZWYgb2YgdGhlCiMgcHJldmlvdXMgSEVBRCwgdGhlIHJlZiBv ZiB0aGUgbmV3IEhFQUQgKHdoaWNoIG1heSBvciBtYXkgbm90IGhhdmUKIyBjaGFuZ2VkKSwgYW5k IGEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGNoZWNrb3V0IHdhcyBhIGJyYW5jaAojIGNo ZWNrb3V0IChjaGFuZ2luZyBicmFuY2hlcywgZmxhZz0xKSBvciBhIGZpbGUgY2hlY2tvdXQgKHJl dHJpZXZpbmcKIyBhIGZpbGUgZnJvbSB0aGUgaW5kZXgsIGZsYWc9MCkuIFRoaXMgaG9vayBjYW5u b3QgYWZmZWN0IHRoZSBvdXRjb21lCiMgb2YgZ2l0IGNoZWNrb3V0LgojCiMgSXQgaXMgYWxzbyBy dW4gYWZ0ZXIgZ2l0IGNsb25lLCB1bmxlc3MgdGhlIC0tbm8tY2hlY2tvdXQgKC1uKSBvcHRpb24K IyBpcyB1c2VkLiBUaGUgZmlyc3QgcGFyYW1ldGVyIGdpdmVuIHRvIHRoZSBob29rIGlzIHRoZSBu dWxsLXJlZiwgdGhlCiMgc2Vjb25kIHRoZSByZWYgb2YgdGhlIG5ldyBIRUFEIGFuZCB0aGUgZmxh ZyBpcyBhbHdheXMgMS4KIwojIFRoaXMgaG9vayBjYW4gYmUgdXNlZCB0byBwZXJmb3JtIHJlcG9z aXRvcnkgdmFsaWRpdHkgY2hlY2tzLAojIGF1dG8tZGlzcGxheSBkaWZmZXJlbmNlcyBmcm9tIHRo ZSBwcmV2aW91cyBIRUFEIGlmIGRpZmZlcmVudCwgb3Igc2V0CiMgd29ya2luZyBkaXIgbWV0YWRh dGEgcHJvcGVydGllcy4KCmhlYWRfb2xkPSQxCmhlYWRfbmV3PSQyCmZsYWc9JDMKCiMgV2UgYXJl IGludGVyZXN0ZWQgb25seSBpbiBicmFuY2ggY2hlY2tvdXRzLgppZiBbICIkZmxhZyIgIT0gIjEi IF07IHRoZW4KICAgIGV4aXQgMApmaQoKIyBuLmIuIHB3ZCB3aWxsIGJlIHRoaXMgd29ya2luZyBj b3B5J3Mgcm9vdCBkaXJlY3RvcnkuCnJvb3Q9JChwd2QpCgojIHByaW50ZiAiJDA6ICVzIC0gJXMg LSAlc1xuIiAiJEAiCiMgbHMgLWwgIiRyb290Ii8uZ2l0L0JJU0VDVCoKCmlmIFsgLWYgIiRyb290 Ly5naXQvQklTRUNUX0xPRyIgXTsgdGhlbgogICAgIyBDdXJyZW50bHkgYmlzZWN0aW5nLiAgSWYg dGhlIE9OTFkgdGhpbmcgd2hpY2ggaGFzIGhhcHBlbmVkIHNvCiAgICAjIGZhciBpcyB0aGUgImdp dCBiaXNlY3Qgc3RhcnQiIGNvbW1hbmQsIHRoZW4gbWFyayBvdXIgYWx3YXlzLWdvb2QKICAgICMg Y29tbWl0cyBhcyAiZ29vZCIuICAoVGhpcyB3aWxsIGFwcGVuZCB0byB0aGUgbG9nLCBhZnRlciB3 aGljaAogICAgIyB0aGUgZm9sbG93aW5nIHRlc3Qgd2lsbCBmYWlsLikKICAgIHRhaWwgLTEgIiRy b290Ly5naXQvQklTRUNUX0xPRyIgfCBncmVwIC1xICdeZ2l0IGJpc2VjdCAuKlxic3RhcnRcYicg XAogICAgICAgICYmIFsgLWYgIiRyb290L2V0Yy9naXQtYmlzZWN0LWdvb2QtcmVmcyIgXSBcCiAg ICAgICAgJiYgY3AgIiRyb290L2V0Yy9naXQtYmlzZWN0LWdvb2QtcmVmcyIgIiRyb290Ly5naXQv QklTRUNUX0VNQUNTX0dPT0RfUkVGUyIgXAogICAgICAgICYmIHByaW50ZiAlc1xcbiAiTWFya2lu ZyBrbm93bi1nb29kIHJlZmVyZW5jZXMgaW4gRW1hY3MgcmVwb3NpdG9yeS4iIFwKICAgICAgICAm JiBjYXQgIiRyb290Ly5naXQvQklTRUNUX0VNQUNTX0dPT0RfUkVGUyIgfCB4YXJncyBnaXQgYmlz ZWN0IGdvb2QgXAogICAgICAgICYmIGdpdCBiaXNlY3QgbG9nCmVsc2UKICAgICMgTm90IGN1cnJl bnRseSBiaXNlY3Rpbmc7IGp1c3QgdGlkeSB1cC4KICAgIFsgLWYgIiRyb290Ly5naXQvQklTRUNU X0VNQUNTX0dPT0RfUkVGUyIgXSBcCiAgICAgICAgJiYgcm0gIiRyb290Ly5naXQvQklTRUNUX0VN QUNTX0dPT0RfUkVGUyIKZmkKCmV4aXQgMAoKIyBldGMvZ2l0LWJpc2VjdC1nb29kLXJlZnMgaXMg YSBmaWxlIGNvbnRhaW5pbmcgdGhpcyBjb21taXQgcmVmOgojIDgwNjczNGMxYjFmNDMzZGU0M2Q1 OWQ5YTVlM2ExZTg5ZDY0MzE1ZjYK --=_fee9230959486afcb8398fd52565daa1--