From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: sbaugh@janestreet.com, dmitry@gutov.dev, bug-gnu-emacs@gnu.org Resent-Date: Tue, 15 Jul 2025 11:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79024@debbugs.gnu.org Cc: sbaugh@janestreet.com, dmitry@gutov.dev X-Debbugs-Original-To: bug-gnu-emacs@gnu.org X-Debbugs-Original-Xcc: sbaugh@janestreet.com, dmitry@gutov.dev Received: via spool by submit@debbugs.gnu.org id=B.17525802563438 (code B ref -1); Tue, 15 Jul 2025 11:51:02 +0000 Received: (at submit) by debbugs.gnu.org; 15 Jul 2025 11:50:56 +0000 Received: from localhost ([127.0.0.1]:40706 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ubeBU-0000tO-3n for submit@debbugs.gnu.org; Tue, 15 Jul 2025 07:50:56 -0400 Received: from lists.gnu.org ([2001:470:142::17]:45436) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ubeBQ-0000t2-0f for submit@debbugs.gnu.org; Tue, 15 Jul 2025 07:50:53 -0400 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 1ubeBG-00080j-MZ for bug-gnu-emacs@gnu.org; Tue, 15 Jul 2025 07:50:44 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubeBC-0003wQ-K6 for bug-gnu-emacs@gnu.org; Tue, 15 Jul 2025 07:50:42 -0400 DKIM-Signature: a=rsa-sha256; b=JUxBzZ+IREulnJXnjqmTspujnX7S3+g+sY5E2vYYAm3xAiDXBjD6JpxofA+gmaTGJfV6rXk2jBiPOnbURscXEZVckFtriRqsNO5erC0LiMIhvsKuCdEHv/k0l15riwH+cAXI1/dzWg549+TO7NXu2bo70gcGRYKaoes/A9nDqjaxlttCWDIe5mUsfnJN4m+nYAMvBAFNSMd0ugc6XJUeLfQewZaO4yWlSLwcB8bvEb3xxkBZ41gzeupOrmVcg7JIADCmnUVq5hCO/uzdenZJWkARX+5iXdxitFRmgQzoXooPp5XZ4biyw3wwuW7ThpitsZWJhSazI14CR9DzF6zBsA==; s=purelymail3; d=spwhitton.name; v=1; bh=DQAiSG77lwa2quMwMso1EyEBqjXJu/h7GDBQzpkmSus=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=rHhDpLmpEUWUzgovcqJ+rgxJSqrDaERp3u9lyoH7NE4L/NbfvOVRAwXq6BV/QKHhNM65d4BrVEf87gnK9PdPCJiJDj/uU9EkDRWgMc01QnuAlWlIoM52CQJviGMz8AZVRpVJ1rPkA8FP+FMrWF6PisSebcmQx0GGEs5/o86DXWZx0ztAV5Ra5aNZCMi1HNSpBshfsSPQTWGwV9AEucSVNhaas3nVU73qZGWX/z+hid8W201iIlymg6TGV6NnKfAPHu0WdZ0AVTrafNnMofkeCcDCN9ChLac8EshECwZYNtYhpuo6+pmpN2YyFyZQ80FcGs0j6+b0BVLOcdTBw5xQdw==; s=purelymail3; d=purelymail.com; v=1; bh=DQAiSG77lwa2quMwMso1EyEBqjXJu/h7GDBQzpkmSus=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: bug-gnu-emacs@gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -212229368 for (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Tue, 15 Jul 2025 11:50:34 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 1354A941B63; Tue, 15 Jul 2025 12:50:34 +0100 (BST) From: Sean Whitton Date: Tue, 15 Jul 2025 12:50:34 +0100 Message-ID: <87v7nt4qr9.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=34.202.193.197; envelope-from=spwhitton@spwhitton.name; helo=sendmail.purelymail.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) X-debbugs-cc: sbaugh@janestreet.com, dmitry@gutov.dev Hello, I would like to add support for multiple working trees to VC. This is 'git worktree' for Git and 'hg share' for Mercurial. It may or may not map onto trunk/ vs. branch/ in SVN; see below. TERMINOLOGY VC's documentation consistently uses "working tree" to refer to what we often also call the "working directory", "clone", "checkout". I think that we can introduce the idea of "other working trees" and commands that operate on them. I don't believe we need to distinguish between primary and secondary working trees, which is a VCS-specific concept. If a Git user tries to delete the primary worktree from a secondary worktree, for example, it's just an error, signalled by the relevant backend-specific function. These commands would probably be meaningful only for changeset-based VCS, not file-based VCS. COMMANDS - C-x v w c: Add a new working tree. The user must specify what branch, revision or tag to check out there. Probably the prompting should be as similar as possible to C-x v r and/or C-x v b s (which we might want to improve and/or unify first). - C-x v w w: Switch to another working tree. This is a contextual command. When used in a file-visiting or dired buffer, it means visit that same file name under one of the other working trees. E.g. if you have worktrees for the Emacs master and release branches, you can use it to hop between vc.el on master and vc.el on emacs-30. In *vc-dir* it means to switch to *vc-dir* for the other worktree. Each working tree is already a separate project.el project, which is what we want. + If we keep the list of other working trees sorted by recency, then C-x v w w RET would allow you to switch back and forth between (the same file name in) your two most recently used working trees. - C-x v w s: A wrapper around C-x p p but with selection limited to other working trees of this project. - C-x v w x: Delete a working tree. - C-x v w R: Relocate a working tree. Move or rename it, updating VC and project.el metadata as appropriate. BACKEND FUNCTIONS - other-working-trees: Return a list of all other working trees. - add-working-tree, delete-working-tree, move-working-tree. SVN BRANCHES Adding a new working tree is the same as creating a new branch, I think? I think there are two ways we could go here: 1. Decide that SVN does not support other working trees in the sense of these new commands, such that they are no-ops. 2. Make the new commands effectively synonyms of existing branch-related commands for SVN. QUESTIONS - Are there other things that we might want to support that wouldn't be covered by this API? - Does project.el need to know about these relationships between trees, or do we leave it all up to VC? I think the latter. I.e., from project.el's point of view, each working tree is its own project. - What shall we do with CVS/SVN branches? I've made two suggestions. - How are the bindings I've suggested? Intuitive enough? Thank you in advance for any feedback. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Spencer Baugh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 17 Jul 2025 17:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: 79024@debbugs.gnu.org, dmitry@gutov.dev Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175277308524642 (code B ref 79024); Thu, 17 Jul 2025 17:25:02 +0000 Received: (at 79024) by debbugs.gnu.org; 17 Jul 2025 17:24:45 +0000 Received: from localhost ([127.0.0.1]:56254 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucSLc-0006PM-7W for submit@debbugs.gnu.org; Thu, 17 Jul 2025 13:24:44 -0400 Received: from mxout5.mail.janestreet.com ([64.215.233.18]:41241) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ucSLZ-0006Ow-Qb for 79024@debbugs.gnu.org; Thu, 17 Jul 2025 13:24:43 -0400 From: Spencer Baugh In-Reply-To: <87v7nt4qr9.fsf@zephyr.silentflame.com> (Sean Whitton's message of "Tue, 15 Jul 2025 12:50:34 +0100") References: <87v7nt4qr9.fsf@zephyr.silentflame.com> Date: Thu, 17 Jul 2025 13:24:36 -0400 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=waixah; t=1752773076; bh=giNZc/h1JxF8iyVvbb/47fr7RDPEPOl494sp1pHAbqw=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=VPp41Ae/b08WYSrJTI5xFn26s7OchCSY+7rIRQWaAEU82xSXiHFSaftzIFCyJwcjW NBJ5q15BaAB4+NXdzFmmizOK7SfSCjQg96MSRUFUuhOsUWaKBbcGgy9RSdr8/kBBCo QrIvlj0HiXPum+hvFCqb6WEAmlM3udcuA/DVlfwEMpTmcL4Lby88NJY9OfhdsptvxO GPNplUdJzdDVEZEX3Hcx37MXx+04Z/lHpSzWF3ZmOUrOGmU6N1DoYQrXXfgJU0uC71 4f6fAdJhP7KLyR5e68AX6vLIFop83tJj+/bu4LTRUjK7PbE2XPMj1kQf5UkC5CHJqR KJb/qXYH6dNrA== X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Sean Whitton writes: > X-debbugs-cc: sbaugh@janestreet.com, dmitry@gutov.dev > > Hello, > > I would like to add support for multiple working trees to VC. This is > 'git worktree' for Git and 'hg share' for Mercurial. It may or may not > map onto trunk/ vs. branch/ in SVN; see below. Exciting! > TERMINOLOGY > > VC's documentation consistently uses "working tree" to refer to what we > often also call the "working directory", "clone", "checkout". > > I think that we can introduce the idea of "other working trees" and > commands that operate on them. I don't believe we need to distinguish > between primary and secondary working trees, which is a VCS-specific > concept. If a Git user tries to delete the primary worktree from a > secondary worktree, for example, it's just an error, signalled by the > relevant backend-specific function. Yes, that sounds good to me. This is ideal because this already matches up well with the "worktree" terminology in Git. I briefly considered proposing that command names use "vc-worktree" instead of "vc-working-tree", but I actually think "vc-working-tree" is better than "vc-worktree" because tab completion will expand "vc-w-t" unambiguously to vc-working-tree but "vc-w" can't expand to vc-worktree. > These commands would probably be meaningful only for changeset-based > VCS, not file-based VCS. > > COMMANDS > > - C-x v w c: Add a new working tree. > > The user must specify what branch, revision or tag to check out there. > Probably the prompting should be as similar as possible to C-x v r > and/or C-x v b s (which we might want to improve and/or unify first). Sounds good to me. > - C-x v w w: Switch to another working tree. > > This is a contextual command. When used in a file-visiting or dired > buffer, it means visit that same file name under one of the other > working trees. > > E.g. if you have worktrees for the Emacs master and release branches, > you can use it to hop between vc.el on master and vc.el on emacs-30. > In *vc-dir* it means to switch to *vc-dir* for the other worktree. > > Each working tree is already a separate project.el project, which is > what we want. This will be great! This is like project-find-matching-file but I think this worktree-specific version will be much more useful, since worktrees give us the knowledge that two projects are related and that lets us have the prompt be populated with much fewer options. > + If we keep the list of other working trees sorted by recency, then > C-x v w w RET would allow you to switch back and forth between (the > same file name in) your two most recently used working trees. > > - C-x v w s: A wrapper around C-x p p but with selection limited to > other working trees of this project. Sounds great. I suggest this should be done by let-binding project-prompter to a function which only prompts for the working trees related to the current project. Though: how are you thinking about prompting for working trees? At my site: - project-name is a short and sometimes-ambiguous name (since it's used widely in project.el in places that expect it to be short, e.g. project-prefixed-buffer-name), so just prompting with project-name would be undesirable. - And the directory of the worktree is also not very informative at my site. For this reason, I have a custom project-prompter configured at my site. Maybe vc backends should also be able to customize the prompting function used to prompt for working trees? > - C-x v w x: Delete a working tree. > > - C-x v w R: Relocate a working tree. > > Move or rename it, updating VC and project.el metadata as appropriate. > > BACKEND FUNCTIONS > > - other-working-trees: Return a list of all other working trees. > > - add-working-tree, delete-working-tree, move-working-tree. > > SVN BRANCHES > > Adding a new working tree is the same as creating a new branch, I think? > I think there are two ways we could go here: > > 1. Decide that SVN does not support other working trees in the sense of > these new commands, such that they are no-ops. > 2. Make the new commands effectively synonyms of existing branch-related > commands for SVN. IMO we should do 1 now until/unless someone requests 2. We can always do 2 later if we do 1 now, but if we do 2 now then we can never take it back if we decide it's wrong. > QUESTIONS > > - Are there other things that we might want to support that wouldn't be > covered by this API? I think this is a great start, I don't think this locks us into anything too bad. Later possible additions: the operation "make a new branch and worktree, and transfer the uncommitted changes from the current worktree to that new branch" (as we've discussed off-list) might be neat. Actually, in general, transferring uncommitted (or committed?) changes between worktrees would be a cool thing to support. I often find myself making vc-diff buffers and M-x cding in the buffer to other worktrees so that I can apply the changes in that buffer to the other worktree. Some first-class support might be cool. But I think we don't need to design that yet. > - Does project.el need to know about these relationships between trees, > or do we leave it all up to VC? I think the latter. I.e., from > project.el's point of view, each working tree is its own project. I agree. Adding support for "related projects" has often come up for project.el, but it's unclear how to design it. Keeping the worktree concept in vc avoids this, and we can always expose the knowledge to project.el later if we figure out a reason to do it. > - What shall we do with CVS/SVN branches? I've made two suggestions. > > - How are the bindings I've suggested? Intuitive enough? Yes - I particularly like C-x v w w; I think giving that an easy binding (the duplicated w) is very helpful, since I think for worktree users it's a fairly common operation. > Thank you in advance for any feedback. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 18 Jul 2025 09:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Spencer Baugh , dmitry@gutov.dev Cc: 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175283140620581 (code B ref 79024); Fri, 18 Jul 2025 09:37:02 +0000 Received: (at 79024) by debbugs.gnu.org; 18 Jul 2025 09:36:46 +0000 Received: from localhost ([127.0.0.1]:60686 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uchWH-0005Lo-95 for submit@debbugs.gnu.org; Fri, 18 Jul 2025 05:36:45 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:35156) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uchWE-0005LB-3K for 79024@debbugs.gnu.org; Fri, 18 Jul 2025 05:36:43 -0400 DKIM-Signature: a=rsa-sha256; b=FxqQvL6JW0eXFWjidpt67yTWp85ZukEZlZXTGnkonVYx54BCmXr3N4J37A75H2GN+siHrf6mSubZuynLCmZJ9Jrc/JtzDdETc8NYeAdKEYSmsaAyMpvRzOxtmdQ5iIIvrudhbHJK5sNlJ6diML5+TJJ3y+7QDhDv7DwUcpXB68L+kYOSpH6UcwKpRnzxjY9FP9gpC03yGfcheDwCVClR3PUGED/NEmlnZODMpeq+aK1pd96w7Mvgwt1R+pWvW6mQNjgKyn3WvVxtRdRPhgTSuAGzKuwz0O38N/9YUgvapJqEpGtf52Onz/AuLJjoplo53xQ0D4KiO3r57c0MhZzZ4w==; s=purelymail1; d=spwhitton.name; v=1; bh=iqx8Ph6KrUUkLxR+49LwETrF0arNSTbP68kY+vHR3F0=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=hqSSRbCFTpMSOlBEE7AFyWheaEVGlJSMvkRFiWejIOScMhx9MjZhkYWjJj8JY0y6QuhSm87uCwRVmfS18JfGppwBRSWXBsPKZiDpyuBPNaAop8wqRC5Amdc0BZBYrzIIHYWK/oZeQ3cOnEEoYpeIqz05oSVhzTF0vYDoYMXGULmZL97/dMUypLWbYuq5hiX9s705OxVI/ySjtjE8secriefYr8DKBddrmDq9vnx/V0BRqmGzrEkibjAIBohdIJL07lTXJKrvnX6yFZTxEeSGMgR+ycg6nxMvZjKgtelytwu+eYkcVv7IwgDRHrrLvt1u1rJhmGiTBxbLDQqc4wxxTg==; s=purelymail1; d=purelymail.com; v=1; bh=iqx8Ph6KrUUkLxR+49LwETrF0arNSTbP68kY+vHR3F0=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1994724826; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Fri, 18 Jul 2025 09:36:34 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 242D2941748; Fri, 18 Jul 2025 10:36:34 +0100 (BST) From: Sean Whitton In-Reply-To: References: <87v7nt4qr9.fsf@zephyr.silentflame.com> Date: Fri, 18 Jul 2025 10:36:34 +0100 Message-ID: <87ldolzvq5.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Thu 17 Jul 2025 at 01:24pm -04, Spencer Baugh wrote: >> - C-x v w s: A wrapper around C-x p p but with selection limited to >> other working trees of this project. > > Sounds great. I suggest this should be done by let-binding > project-prompter to a function which only prompts for the working trees > related to the current project. > > Though: how are you thinking about prompting for working trees? At my > site: > - project-name is a short and sometimes-ambiguous name (since it's > used widely in project.el in places that expect it to be short, > e.g. project-prefixed-buffer-name), so just prompting with project-name > would be undesirable. > - And the directory of the worktree is also not very informative at my > site. > > For this reason, I have a custom project-prompter configured at my site. > Maybe vc backends should also be able to customize the prompting > function used to prompt for working trees? I was thinking it would use the absolute file names of the project roots, as C-x p p does by default at present. But we wouldn't want to override a custom project prompter like yours. Indeed, project-prompter is a customisable user option, so we probably shouldn't be rebinding it. Seems to me like we want to extend the project-prompter API to allow filtering the list of projects the project prompter prompts for. Dmitry, what do you think about a new project-prompter-predicate which project prompters should use to filter the list of projects offered? VC could bind that to something which only lets through related worktrees. >> SVN BRANCHES >> >> Adding a new working tree is the same as creating a new branch, I think? >> I think there are two ways we could go here: >> >> 1. Decide that SVN does not support other working trees in the sense of >> these new commands, such that they are no-ops. >> 2. Make the new commands effectively synonyms of existing branch-related >> commands for SVN. > > IMO we should do 1 now until/unless someone requests 2. We can always > do 2 later if we do 1 now, but if we do 2 now then we can never take it > back if we decide it's wrong. Hmm yes, you're right, (1) lets us avoid getting stuck. >> QUESTIONS >> >> - Are there other things that we might want to support that wouldn't be >> covered by this API? > > I think this is a great start, I don't think this locks us into anything > too bad. > > Later possible additions: the operation "make a new branch and worktree, > and transfer the uncommitted changes from the current worktree to that > new branch" (as we've discussed off-list) might be neat. > > Actually, in general, transferring uncommitted (or committed?) changes > between worktrees would be a cool thing to support. I often find myself > making vc-diff buffers and M-x cding in the buffer to other worktrees so > that I can apply the changes in that buffer to the other worktree. Some > first-class support might be cool. But I think we don't need to design > that yet. Ah, yes, I do that too. I have a custom function in my init.el that does it using the git stash. But we could let Emacs handle it in a completely VC-agnostic way. As you say I don't think the details of this have to figured out now. > Yes - I particularly like C-x v w w; I think giving that an easy binding > (the duplicated w) is very helpful, since I think for worktree users > it's a fairly common operation. Nice. Thank you for the review :) -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 19 Jul 2025 09:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79024@debbugs.gnu.org Cc: dmitry@gutov.dev, Spencer Baugh Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175291688930756 (code B ref 79024); Sat, 19 Jul 2025 09:22:02 +0000 Received: (at 79024) by debbugs.gnu.org; 19 Jul 2025 09:21:29 +0000 Received: from localhost ([127.0.0.1]:39942 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ud3l3-0007zz-12 for submit@debbugs.gnu.org; Sat, 19 Jul 2025 05:21:29 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:56426) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ud3kz-0007zQ-Pf for 79024@debbugs.gnu.org; Sat, 19 Jul 2025 05:21:27 -0400 DKIM-Signature: a=rsa-sha256; b=s8F70gFc3SN0vxdjsbQQeLT20LXKKR6fhiFQrxNylgB7nJaEiB2OWMn1DHg1r4nFzu5yytEqWENQ8H6E3CRLwdT0aRh/tXf/79UVtvjNAXJ68w9Mfew51ZGEcuH5tJijgGfxk8Ubya2rCrudGAkAnUNLQIHJchzaam7fDXVV89u3Aa+LWpWlpng5JbK/7C19JinyU2yPPt7kkHyRvZD/+uigvh0h7LQ7IJwf0lojhksswYIwyBr41tNl8PYRuzB0JZy39sWo9+H9aKRKfi9Dz69qmSbnmE96aPoMix2zie10VgaERsQQYu6gEx0/YUJ70ZrDLBgzE3SvnNkxfiXVQA==; s=purelymail1; d=spwhitton.name; v=1; bh=KgW5nre190ax/Vj5ql2vHmeZfuUN5QgqjRarQjGQM0E=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=0UfDQu0YqNI+Nt0vVr8fXb0r6fa6WJlkUYmuuzuos2qzoZG7ibclQihfNLgswyNwCuMKmu9AmZ9OyZg01e6D5MZ9UaqDxFpRQ3A4cCOQcC4DDm2xLDAiZcX3ZtfYcdWAaEA3WAZBMb+4Vr0TAgUlmj5Uj0KvaMl3UnkW95Sv1TKWqnuAy54NtsPE/sz4hRpLeY4wtzrQ9smFl4CCW060TrEToVrnb86Y5YrEN2L5oYXmgJgepya1H7fALK9vhh+mxbdBqpzkctwX0IKYvqrDA63m+FW1JWP4jTSNOBXM5ToNKdwcD05Snr1EVAXH4/izNNKUsM7lhWW+tD71fpObMA==; s=purelymail1; d=purelymail.com; v=1; bh=KgW5nre190ax/Vj5ql2vHmeZfuUN5QgqjRarQjGQM0E=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -759181042; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sat, 19 Jul 2025 09:21:19 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 940F5940105; Sat, 19 Jul 2025 10:21:18 +0100 (BST) From: Sean Whitton In-Reply-To: <87v7nt4qr9.fsf@zephyr.silentflame.com> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> Date: Sat, 19 Jul 2025 10:21:18 +0100 Message-ID: <87y0sky1rl.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Tue 15 Jul 2025 at 12:50pm +01, Sean Whitton wrote: > BACKEND FUNCTIONS > > - other-working-trees: Return a list of all other working trees. > > - add-working-tree, delete-working-tree, move-working-tree. Here are my WIP specifications for these: ;; - other-working-trees () ;; ;; Return a list of all other working trees that use the same backing ;; repository as this working tree. The members of the list are the ;; absolute file names of the root directories of the other working ;; trees. ;; ;; - add-working-tree (directory) ;; ;; Create a new working tree at DIRECTORY that uses the same backing ;; repository as this working tree. ;; What gets checked out in DIRECTORY is left to the backend because ;; while some VCS can check out the same branch in multiple working ;; trees (e.g. Mercurial), others allow each branch to be checked out ;; in only one working tree (e.g. Git). ;; If a new branch should be created then the backend should handle ;; prompting for this, including prompting for a branch or tag from ;; which to start/fork the new branch, like `vc-create-branch'. ;; ;; - delete-working-tree (directory) ;; ;; Remove the working tree, assumed to be one that uses the same ;; backing repository as this working tree, at DIRECTORY. ;; ;; - move-working-tree (from to) ;; ;; Relocate the working tree, assumed to be one that uses the same ;; backing repository as this working tree, at FROM to TO. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: Other working tree information in project--list Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 21 Jul 2025 09:54:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Dmitry Gutov Cc: Spencer Baugh , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175309162127349 (code B ref 79024); Mon, 21 Jul 2025 09:54:01 +0000 Received: (at 79024) by debbugs.gnu.org; 21 Jul 2025 09:53:41 +0000 Received: from localhost ([127.0.0.1]:55461 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1udnDI-000772-OB for submit@debbugs.gnu.org; Mon, 21 Jul 2025 05:53:41 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:32848) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1udnDE-00076V-QW for 79024@debbugs.gnu.org; Mon, 21 Jul 2025 05:53:38 -0400 DKIM-Signature: a=rsa-sha256; b=umpvLMhWFnEagtjkO9zXY731n8++Wwy14pmuX2WeYKL7rQgNEvDFBXCa9EKaSRqgiq7REJQ21LTW2297PgJlbWlSk1+wk3wpk14pU2z4wXXn33cqefIAN2+BxvWBSmDl+IFZdmtbP9L6R3Hz9A2TqqzSNcUBHiltGqcSx0lh5+DSQ/4O7PqlaNa8szbSBuA9TVeuNum7QwoRMq29DmY76fG0iWmMFwGdPn6mrBDojnTcT9NG1dQUCkQ8twQ+au+dyWT4PD0VFkBx0Z/P/S+JyGjVauzZ0pjkGpv+smNZotEAbX+CWVhkejj+YWieEaE1E8X4tme58Tx/0BESeMld1Q==; s=purelymail1; d=spwhitton.name; v=1; bh=oI7aqw11f6b3svJUCdFwQn3HrRME0I9PIdTUVaIHxPM=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=eV+Ox1qQOTNcRbG116rEdYiq+vQPLRDD2GBo/Tip0gj61pQa/skOAI0oelKiDLCPQ+E+fIQpKofcppaoxnliw8rrBHGz+xz+yF1L+Ui6YC46iqXhf2WeXHAeyWulf0nU13OCQPQX5dUGqndkEsH9s9AebBBFQpp+VW7L3jIEEmLiFjCsm+3dzt+zs0AK0mS6Nw9ZLArbxT1PxaSvNkliVowHpwtf1PCYQmqx5UGqr+dMz5rnlY41ATvZXVC1OdrAB75WlpiDZ63joDR1EBi4npheGq+/gRpvgUPGl/xtEYsDNggXy2nbsfFTgtoaR8Gq8M9X/6WALk8v8zTF1ZdhIQ==; s=purelymail1; d=purelymail.com; v=1; bh=oI7aqw11f6b3svJUCdFwQn3HrRME0I9PIdTUVaIHxPM=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1320131251; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 21 Jul 2025 09:53:30 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id EAF20940188; Mon, 21 Jul 2025 10:53:29 +0100 (BST) From: Sean Whitton In-Reply-To: <87ldolzvq5.fsf@zephyr.silentflame.com> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> Date: Mon, 21 Jul 2025 10:53:29 +0100 Message-ID: <87jz41swdi.fsf_-_@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.0 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.0 (--) Hello, On Fri 18 Jul 2025 at 10:36am +01, Sean Whitton wrote: > Dmitry, what do you think about a new project-prompter-predicate which > project prompters should use to filter the list of projects offered? VC > could bind that to something which only lets through related worktrees. I've got a second extension of project.el to ask about. Mercurial doesn't maintain records of shared repositories. The first repository knows nothing about shares created from it, and each share only has a reference back to the first repository. Therefore, to support the VC API for other working trees, Emacs needs to maintain records of its own about other working trees for Mercurial repositories. Initially I'll implement this by just looking it up each time but that will get slow. project--list's docstring talks about storing metadata there. Could I perhaps treat the entries in project--list as plists or alists, and push some entries there? I could use symbols with a vc-- prefix as the keys into the lists, indicating this is not data that project.el itself should have much to do with? Or what do you think? -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Spencer Baugh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 23 Jul 2025 17:09:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175329051722765 (code B ref 79024); Wed, 23 Jul 2025 17:09:02 +0000 Received: (at 79024) by debbugs.gnu.org; 23 Jul 2025 17:08:37 +0000 Received: from localhost ([127.0.0.1]:51542 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uecxJ-0005v6-Ap for submit@debbugs.gnu.org; Wed, 23 Jul 2025 13:08:37 -0400 Received: from mxout5.mail.janestreet.com ([64.215.233.18]:54879) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uecxF-0005un-Sq for 79024@debbugs.gnu.org; Wed, 23 Jul 2025 13:08:35 -0400 From: Spencer Baugh In-Reply-To: <87jz41swdi.fsf_-_@zephyr.silentflame.com> (Sean Whitton's message of "Mon, 21 Jul 2025 10:53:29 +0100") References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> Date: Wed, 23 Jul 2025 13:08:28 -0400 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=waixah; t=1753290508; bh=OXMBvzSKKZlAbGu87AMT7NJ4tYENQXHpT9Qry/qjSuk=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=0c4NipIR9X7fb94akCYr0nVyvDAvYnKovOsms7ooQA9n7jU5FUKpGzp6ezK2sbF/+ 8YR2vt13kR2wIgPjGTCo++HnUXk4vs/3M46txJq+ozB32hjFZxC1nZejUL0kP+ILiV z/Jc4UlBiswhpVvLplPfK5Sk/ib0fxlRnTu2niG1MkpFNnBwzyW9FyDsyu0XjQKszM 00vGD7d160NhvDUS1+UaMoVgjWoyRX+PYPe9sS3CjTLDAHJk6c1tMduO/+XSWwNdTN rToRvQWQFm2oHK5LGUFDne6N9WXep5sw5UJopmrxMHWdFAaqHr0hcf5Mvk3tL4jrky YX2pBvhs7TSPw== X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Sean Whitton writes: > Hello, > > On Fri 18 Jul 2025 at 10:36am +01, Sean Whitton wrote: > >> Dmitry, what do you think about a new project-prompter-predicate which >> project prompters should use to filter the list of projects offered? VC >> could bind that to something which only lets through related worktrees. > > I've got a second extension of project.el to ask about. > > Mercurial doesn't maintain records of shared repositories. > The first repository knows nothing about shares created from it, and > each share only has a reference back to the first repository. > > Therefore, to support the VC API for other working trees, Emacs needs to > maintain records of its own about other working trees for Mercurial > repositories. > > Initially I'll implement this by just looking it up each time but that > will get slow. project--list's docstring talks about storing metadata > there. Could I perhaps treat the entries in project--list as plists or > alists, and push some entries there? I could use symbols with a vc-- > prefix as the keys into the lists, indicating this is not data that > project.el itself should have much to do with? Or what do you think? IMO it would be fine to just look this up each time. The predicate passed to project-prompter would take the root directory of the project and decide whether that should be included in the prompt; and for hg shares, that would just be looking at .hg/sharedpath and checking if it has the right contents. I think that one filesystem access is an acceptable cost, I don't think Emacs will need to maintain records of its own beyond the existing project--list. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 24 Jul 2025 14:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Spencer Baugh Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175336672920491 (code B ref 79024); Thu, 24 Jul 2025 14:19:02 +0000 Received: (at 79024) by debbugs.gnu.org; 24 Jul 2025 14:18:49 +0000 Received: from localhost ([127.0.0.1]:57286 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uewmX-0005KP-0t for submit@debbugs.gnu.org; Thu, 24 Jul 2025 10:18:49 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:35778) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uewmU-0005K7-LI for 79024@debbugs.gnu.org; Thu, 24 Jul 2025 10:18:47 -0400 DKIM-Signature: a=rsa-sha256; b=AQMvtmyPoHkA7xIFkopn0hLzdCx9RFTHv2121KEyT7a6QxCH0jyU8QTw66eEMt3D5hrd837suaP91+JjhSWGBa/n0qs7CVGekAnbvzClTWhYa/Vy+3IxpmUX0OE+OuQYcEarshNzo9Gb6dQISP6vWK8d2r0devrrAsfl653drG6UcZHz9flWzse6xCUQQiEe9CPULaO0KHHnwCe0vJFD1rZLPwKDEyjtEtAbxaDhCQY0QuZ/f4t27LrjnrqDhhHBQz1xD+U35M5vcRW6Gl3N9JlpReLXohJHOVHwMj6y+TpYFMSyOrk69AthbuX/7FggU0+iS8STWwOSW+o0rsKLiQ==; s=purelymail2; d=spwhitton.name; v=1; bh=13nuW9xa2Cr/h2EOvtITvOAYRKLAJeorrkpdDBI9eBw=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=A+ppxIyke3QJOldPsH2pyMHVMro1h3WrwOFR+HcsYCYkH7ME2W+5/ronO+h929qNInN72dzsemSkqcSLdHhLV7YXRdUy+6zkBioYOKQpZAwBZWBdYoA0rAvxa4Fah3bXHJEMHEnJ8f1CBrby9u8FJuDMVgM3zeXq0YtxOGnzCXrR3kIVpl/2tCmnTwO0Usc4MA97uyTz/vp+WSqaHgMT6KgqjrMpR5JuHCgTaWZ/pHdmwDG2L+LOpL6xnh18X0hGEFDuuQJGjOPUqvbxgvm92KRAdC12MqmfWjlS9BPxvyKRuRyDox172/WfBvS3egkpbY4q8QtwJXledxqatFw4kQ==; s=purelymail2; d=purelymail.com; v=1; bh=13nuW9xa2Cr/h2EOvtITvOAYRKLAJeorrkpdDBI9eBw=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1828448450; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Thu, 24 Jul 2025 14:18:38 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id F367A9401B5; Thu, 24 Jul 2025 15:18:36 +0100 (BST) From: Sean Whitton In-Reply-To: References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> Date: Thu, 24 Jul 2025 15:18:36 +0100 Message-ID: <877bzxu0xv.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Wed 23 Jul 2025 at 01:08pm -04, Spencer Baugh via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > IMO it would be fine to just look this up each time. > > The predicate passed to project-prompter would take the root directory > of the project and decide whether that should be included in the prompt; > and for hg shares, that would just be looking at .hg/sharedpath and > checking if it has the right contents. I think that one filesystem > access is an acceptable cost, I don't think Emacs will need to maintain > records of its own beyond the existing project--list. Hmm, well, vc-hg-other-working-trees has to look at every registered project and decide if it is a related working tree; it has to be do this independently of project-prompter or any of that machinery. But there could be a very large number of registered projects, and there'd be a file access for each one. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Spencer Baugh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 24 Jul 2025 14:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175336860729394 (code B ref 79024); Thu, 24 Jul 2025 14:51:02 +0000 Received: (at 79024) by debbugs.gnu.org; 24 Jul 2025 14:50:07 +0000 Received: from localhost ([127.0.0.1]:57409 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uexGo-0007dw-C7 for submit@debbugs.gnu.org; Thu, 24 Jul 2025 10:50:06 -0400 Received: from mxout5.mail.janestreet.com ([64.215.233.18]:44163) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uexGj-0007cp-MR for 79024@debbugs.gnu.org; Thu, 24 Jul 2025 10:50:05 -0400 From: Spencer Baugh In-Reply-To: <877bzxu0xv.fsf@zephyr.silentflame.com> (Sean Whitton's message of "Thu, 24 Jul 2025 15:18:36 +0100") References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> Date: Thu, 24 Jul 2025 10:49:55 -0400 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=waixah; t=1753368595; bh=PpsXpcvZ19vHHKXErL8J04lkUrEKQV8o3UgaIkKfgAM=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=xGCtu24AvYmdnsf+dNZVFII7y5n7IPUBWVU/Eg3ryliE+m0YiINBo+bvSobSTN/0u wfG0f061bF83Br7xHfEUI4h2euM8WslCimmU6mrAoM1N/WAO7Ur35VSCCmAPRkqNxX leXeqDMZxR5H4wEVvIvP92fUwRozEn0EfRi3BEx5/uAv3Ylq+QObSiXZKFdfaMdxB1 8DpMGKmRdIxF9xTU32L0D3fu1r7HJXVbEEblYki/URc6ovDETwviH3GoTUlBl0UwLv TkiUpqgogpK3rVfkHo+7r/x+NJxf7PjPuQIPz1fhoKkm01vXuVSZxG2jqZrtNYPQbJ /7oD0Pv51qlGA== X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Sean Whitton writes: > Hello, > > On Wed 23 Jul 2025 at 01:08pm -04, Spencer Baugh via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > >> IMO it would be fine to just look this up each time. >> >> The predicate passed to project-prompter would take the root directory >> of the project and decide whether that should be included in the prompt; >> and for hg shares, that would just be looking at .hg/sharedpath and >> checking if it has the right contents. I think that one filesystem >> access is an acceptable cost, I don't think Emacs will need to maintain >> records of its own beyond the existing project--list. > > Hmm, well, vc-hg-other-working-trees has to look at every registered > project and decide if it is a related working tree; it has to be do this > independently of project-prompter or any of that machinery. But there > could be a very large number of registered projects, and there'd be a > file access for each one. True, but what commands will run other-working-trees other than prompting for a worktree? In fact... do we even need other-working-trees at the moment? Maybe all we want is a predicate, (vc-is-other-working-tree-p DIR1 DIR2) which checks that DIR1 and DIR2 are "other working trees" of each other. Or maybe (vc-working-tree-identity DIR) which returns a string identifying the "working tree family" of DIR. Then this can be compared by string-equal to check if two dirs are "other working trees" of each other. That requires less from the VCS, and so is maybe more compatible with various VCSs - most obviously, hg. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 24 Jul 2025 15:10:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Spencer Baugh Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175336976914580 (code B ref 79024); Thu, 24 Jul 2025 15:10:02 +0000 Received: (at 79024) by debbugs.gnu.org; 24 Jul 2025 15:09:29 +0000 Received: from localhost ([127.0.0.1]:57563 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uexZZ-0003n5-Av for submit@debbugs.gnu.org; Thu, 24 Jul 2025 11:09:29 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:40998) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uexZV-0003mU-B6 for 79024@debbugs.gnu.org; Thu, 24 Jul 2025 11:09:27 -0400 DKIM-Signature: a=rsa-sha256; b=LBuxjMT+76t/RRTYmmz9EeoxUSCESJdnkdjUzFFm9Ejxcr6lxHH4HGP5VEWue52qHuBMUygcTjZUcqU2syu2pRmakN8G3bbzFz6X9xU07kVnxvksdOWv9Wcv4riZatmtlg5iXKj2YIhvfus5NLTLxPmK9fqqDDNm32N2Sf5e7l013YS80tNH0qGYLqH0tnMATKfIP8tKKJYwhXjWkN5+IvMPj8K8LM4qxei5X2RV/fV4JNNJ10fBJX2LZcfg65sk2vmPnDipLY/JYVoxE+CS7gWOUEUa6IGBdk6ZVVuvvLSjWig+AOKlXOvtJRo5CpvUoIR6nqStd43FCpPeA42kDw==; s=purelymail2; d=spwhitton.name; v=1; bh=YGlrgxBmRHRXWFIgNRvD7vB391soJamC4QbuDwmt0y4=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=Xe4VJ8/dpNiVBn9pZcyeeiuncR7WfDmLL9UGe7iO1VTEwgD9dpv+g+Xe333/xvp/pLLFxJYbz5p91bEQs9r+1naqWhsksWiejgrcNsBIea+OFzkgJcoBhlob2ZofqtOFAUVc1o3nlO96thZAwj0d1r8mzgC6kTEObDWfj5FMEY5QZgyO5ZEd/JG4QlYITO98Lc8vPVbWR7jZg4b7aXSVr0MYvtAsWKAVf7uhJWcENd+HfeK7RpqAThKYNF8a1Bv+xdjXN83CtoukSSFH6dkGSLAaNO+C1X8sr56mtpLTnYjMRcVJuvwwsI7pj88yUyjxOChud4bs76XWwDnWK694iw==; s=purelymail2; d=purelymail.com; v=1; bh=YGlrgxBmRHRXWFIgNRvD7vB391soJamC4QbuDwmt0y4=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1601805134; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Thu, 24 Jul 2025 15:09:18 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 9245A9401B5; Thu, 24 Jul 2025 16:09:17 +0100 (BST) From: Sean Whitton In-Reply-To: References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> Date: Thu, 24 Jul 2025 16:09:17 +0100 Message-ID: <8734altyle.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Thu 24 Jul 2025 at 10:49am -04, Spencer Baugh via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > Sean Whitton writes: > >> Hello, >> >> On Wed 23 Jul 2025 at 01:08pm -04, Spencer Baugh via "Bug reports for GNU >> Emacs, the Swiss army knife of text editors" wrote: >> >>> IMO it would be fine to just look this up each time. >>> >>> The predicate passed to project-prompter would take the root directory >>> of the project and decide whether that should be included in the prompt; >>> and for hg shares, that would just be looking at .hg/sharedpath and >>> checking if it has the right contents. I think that one filesystem >>> access is an acceptable cost, I don't think Emacs will need to maintain >>> records of its own beyond the existing project--list. >> >> Hmm, well, vc-hg-other-working-trees has to look at every registered >> project and decide if it is a related working tree; it has to be do this >> independently of project-prompter or any of that machinery. But there >> could be a very large number of registered projects, and there'd be a >> file access for each one. > > True, but what commands will run other-working-trees other than > prompting for a worktree? > > In fact... do we even need other-working-trees at the moment? So far in my WIP code other-working-trees is indeed used only to prompt for another working tree. Looking to the future, though, giving Lisp programs a way to obtain a list of all other working trees seems like something we, or someone else, will want at some point. > Maybe all we want is a predicate, (vc-is-other-working-tree-p DIR1 DIR2) > which checks that DIR1 and DIR2 are "other working trees" of each other. > > Or maybe (vc-working-tree-identity DIR) which returns a string > identifying the "working tree family" of DIR. Then this can be compared > by string-equal to check if two dirs are "other working trees" of each > other. > > That requires less from the VCS, and so is maybe more compatible with > various VCSs - most obviously, hg. I don't think I see how using these functions instead of other-working-trees could avoid the performance problems inherent in a very large project--list. (Just to note, I do have all the backend functions I described above implemented for Git and Hg now; I'm just working on tests.) -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Spencer Baugh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 24 Jul 2025 15:39:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175337153022704 (code B ref 79024); Thu, 24 Jul 2025 15:39:03 +0000 Received: (at 79024) by debbugs.gnu.org; 24 Jul 2025 15:38:50 +0000 Received: from localhost ([127.0.0.1]:57680 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uey1x-0005u5-1m for submit@debbugs.gnu.org; Thu, 24 Jul 2025 11:38:50 -0400 Received: from mxout5.mail.janestreet.com ([64.215.233.18]:46139) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uey1n-0005sn-Ia for 79024@debbugs.gnu.org; Thu, 24 Jul 2025 11:38:46 -0400 From: Spencer Baugh In-Reply-To: <8734altyle.fsf@zephyr.silentflame.com> (Sean Whitton's message of "Thu, 24 Jul 2025 16:09:17 +0100") References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> Date: Thu, 24 Jul 2025 11:38:33 -0400 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=waixah; t=1753371513; bh=vMahHEmfS/aw5+S4UvZCN5kqlPUqKpV5zNw8WJzAnrs=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=LNi/85nVntvrgfGx6NifeaepF/WNrcEiyaNB6s62YwzRjODq2CCoBuJ4dw5uGFI9L nPx7Ws9YzoNMqrqobLmF5oSiGAE42XDhTdsRf/3p/0AhUZULwCx2/53RiMF2mUajs5 jh+jPf+SOGh4sSlgX22HzabJYj2CN9AApMCkaDmMuDqBouUVGTnLbaIreegcD9dv0Y rQFw1HQl1FHpNXF4vKFtM8s4AsfHFShTcONIaoHx5eogFRhPUnzY99tN/ZfESU16B6 5QiPHStj7k4jBY2tSPdP5NEYOXjHFiG9wLJtU4Rclh4zcedu7cXEh/H1017HHjD1Ws UMV61vtg6XSZg== X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Sean Whitton writes: > Hello, > > On Thu 24 Jul 2025 at 10:49am -04, Spencer Baugh via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > >> Sean Whitton writes: >> >>> Hello, >>> >>> On Wed 23 Jul 2025 at 01:08pm -04, Spencer Baugh via "Bug reports for GNU >>> Emacs, the Swiss army knife of text editors" wrote: >>> >>>> IMO it would be fine to just look this up each time. >>>> >>>> The predicate passed to project-prompter would take the root directory >>>> of the project and decide whether that should be included in the prompt; >>>> and for hg shares, that would just be looking at .hg/sharedpath and >>>> checking if it has the right contents. I think that one filesystem >>>> access is an acceptable cost, I don't think Emacs will need to maintain >>>> records of its own beyond the existing project--list. >>> >>> Hmm, well, vc-hg-other-working-trees has to look at every registered >>> project and decide if it is a related working tree; it has to be do this >>> independently of project-prompter or any of that machinery. But there >>> could be a very large number of registered projects, and there'd be a >>> file access for each one. >> >> True, but what commands will run other-working-trees other than >> prompting for a worktree? >> >> In fact... do we even need other-working-trees at the moment? > > So far in my WIP code other-working-trees is indeed used only to prompt > for another working tree. Looking to the future, though, giving Lisp > programs a way to obtain a list of all other working trees seems like > something we, or someone else, will want at some point. Naturally, but maybe we can wait until a use case appears? (I do think there's some chance one never will appear) >> Maybe all we want is a predicate, (vc-is-other-working-tree-p DIR1 DIR2) >> which checks that DIR1 and DIR2 are "other working trees" of each other. >> >> Or maybe (vc-working-tree-identity DIR) which returns a string >> identifying the "working tree family" of DIR. Then this can be compared >> by string-equal to check if two dirs are "other working trees" of each >> other. >> >> That requires less from the VCS, and so is maybe more compatible with >> various VCSs - most obviously, hg. > > I don't think I see how using these functions instead of > other-working-trees could avoid the performance problems inherent in a > very large project--list. They would not avoid the performance problems - but if all we're going to do is pass a predicate to project-prompter which filters project--list, they would be better suited to that, since they're less powerful. We would not need to mention project--list in vc at all then. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 24 Jul 2025 20:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Spencer Baugh Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.17533888021521 (code B ref 79024); Thu, 24 Jul 2025 20:27:01 +0000 Received: (at 79024) by debbugs.gnu.org; 24 Jul 2025 20:26:42 +0000 Received: from localhost ([127.0.0.1]:58724 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uf2WX-0000OJ-Hj for submit@debbugs.gnu.org; Thu, 24 Jul 2025 16:26:42 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:44600) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uf2WU-0000Nz-TM for 79024@debbugs.gnu.org; Thu, 24 Jul 2025 16:26:40 -0400 DKIM-Signature: a=rsa-sha256; b=iowe28uTa69X9hJpvlMeIM6Nl68A05QbBGSuS4U+1a7ZVEIMQ9LLu9RFzonIK5I8u8gLiz41oxUEZ8nNK6Bpz8s7hgccxw5SQjRPmu7ha/IXijOSNyVfYcWvyiYp5Aqqbsss2Vxh8s3d2vshPjE+5eh3UR3w67rr11OFS4VjvLYow6eK0XBGyst5L87722j0I9ly4KI96nVPuLXroJ2jVjULi+KMuYAd/fHlNQdhsEvAWuWNlSM7g99z9EeQ+DD9iEHezvt9bzH/5ktUdYe4iOp2xjdA9rLc7Yhqs//7CWceAdtA2IRZMmptM8u5D1RtLfCwFkICJt7UviH3FfU6GA==; s=purelymail2; d=spwhitton.name; v=1; bh=phqBXXi7iUFQiLd7Azi6Xh2DjVHLr7dMbz2z8GguY7k=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=iL8jpAa2ems3ytGN6itihbl/i3sc6VaExaNPm/370pZE9PeMl4Ar++YOyFmvkwSoJrwzG3lSK4eEJCGfS7zH8gPKC+WyLTxpTnIgKgYEDvX6DX6o2MViqCQ1wC/TFfBKXlbPweL6koAX0YyicCSJsWx6fyOmARbAyna9PzDut75jSL/H1Dtp+bwLTxh1Dhpwz/eV+SlUDcpCoXtZIMy66OcX90rKd4TMq1lzK7g2PThIM5V3cfkUyBDTShUY38+kbYKClvXvvy4I9dr70Okwog3IdZgT2u5Sse7TfLEazzA+9kdxlgsnWYjX0wQHePi8VCBWranawx3dMEY8YhmD5w==; s=purelymail2; d=purelymail.com; v=1; bh=phqBXXi7iUFQiLd7Azi6Xh2DjVHLr7dMbz2z8GguY7k=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1109548449; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Thu, 24 Jul 2025 20:26:30 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 5FD229401B6; Thu, 24 Jul 2025 21:26:29 +0100 (BST) From: Sean Whitton In-Reply-To: References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> Date: Thu, 24 Jul 2025 21:26:29 +0100 Message-ID: <87v7nhs5ca.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Thu 24 Jul 2025 at 11:38am -04, Spencer Baugh via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: >> So far in my WIP code other-working-trees is indeed used only to prompt >> for another working tree. Looking to the future, though, giving Lisp >> programs a way to obtain a list of all other working trees seems like >> something we, or someone else, will want at some point. > > Naturally, but maybe we can wait until a use case appears? (I do think > there's some chance one never will appear) This is a good question to ask, though as I'll argue below, unless I'm missing something, the options are actually all closely equivalent and so have roughly the same use cases. > They would not avoid the performance problems - but if all we're going > to do is pass a predicate to project-prompter which filters > project--list, they would be better suited to that, since they're less > powerful. We would not need to mention project--list in vc at all then. You can define vc-is-other-working-tree-p and other-working-trees in terms of each other with only a little code: --8<---------------cut here---------------start------------->8--- (defun vc-is-other-working-tree-p (dir1 dir2) (member dir2 (vc-call-backend (vc-responsible-backend dir1) 'other-working-trees))) (defun vc-other-working-trees (dir1) (cl-remove-if-not (apply-partially #'vc-is-other-working-tree-p dir1) (project-known-project-roots))) --8<---------------cut here---------------end--------------->8--- I think this means they are equivalently powerful. I think you could make a similar argument for vc-working-tree-identity. Then the question is, which is the better one to ask backend authors to implement -- return a list of all other working trees, answer whether two given trees are related, or return an identifying string for a working tree? For Git and Jujutsu, other-working-trees is extremely simple to implement because they have a command to list all working trees. The other two will be more complicated, but not very much more. For Mercurial, returning an identifying string is easier to implement, but again, the difference is fairly small. So then I think we are left with considering overall simplicity and ease of understanding, writing documentation, etc.. I think a backend function that just returns a list of all other working trees is a bit simpler than your two suggestions, but there's not much in it. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Spencer Baugh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 24 Jul 2025 20:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.17533896145176 (code B ref 79024); Thu, 24 Jul 2025 20:41:02 +0000 Received: (at 79024) by debbugs.gnu.org; 24 Jul 2025 20:40:14 +0000 Received: from localhost ([127.0.0.1]:58783 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uf2je-0001LQ-BC for submit@debbugs.gnu.org; Thu, 24 Jul 2025 16:40:14 -0400 Received: from mxout5.mail.janestreet.com ([64.215.233.18]:41617) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uf2jb-0001G9-It for 79024@debbugs.gnu.org; Thu, 24 Jul 2025 16:40:12 -0400 From: Spencer Baugh In-Reply-To: <87v7nhs5ca.fsf@zephyr.silentflame.com> (Sean Whitton's message of "Thu, 24 Jul 2025 21:26:29 +0100") References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> Date: Thu, 24 Jul 2025 16:40:05 -0400 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=waixah; t=1753389605; bh=d3yVi6XG4pXid8dwdIdu5Uv6lClqqm5jrHMBx2bX2W4=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=obMl/v9vyy+AbDdF02Q93VeB+i4O89gFlBATUaNoCEDJeRvXYckC1ckmMx/YJfxMI xUQJEusyPZz10PJ9nKV6MM8juVk+ywYcz/Q/5N2MjUPZaMwsDYT8w5NQhidab2z0h/ Nsj8vflX7x0WQkR2DT/gEfdvnJx4AfEvLJ9k3eK4t7YkTBrmyccP78JeBsdzw9bcvV 9Oa/OO3hpxJkkyaWm1KHNhG0t3R5dZzhy2JY94AlRqAbXyxKQvsjEZqi68D1BgFF/4 ey74b6vRWcxMGNuPnk0esA23aA7vpY+F+xTxIPzFENO8gnbPCzYnL8uoYoTZ8OQ9l2 dYT5swoESTLSQ== X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Sean Whitton writes: > Hello, > > On Thu 24 Jul 2025 at 11:38am -04, Spencer Baugh via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > >>> So far in my WIP code other-working-trees is indeed used only to prompt >>> for another working tree. Looking to the future, though, giving Lisp >>> programs a way to obtain a list of all other working trees seems like >>> something we, or someone else, will want at some point. >> >> Naturally, but maybe we can wait until a use case appears? (I do think >> there's some chance one never will appear) > > This is a good question to ask, though as I'll argue below, unless I'm > missing something, the options are actually all closely equivalent and > so have roughly the same use cases. > >> They would not avoid the performance problems - but if all we're going >> to do is pass a predicate to project-prompter which filters >> project--list, they would be better suited to that, since they're less >> powerful. We would not need to mention project--list in vc at all then. > > You can define vc-is-other-working-tree-p and other-working-trees in > terms of each other with only a little code: > > (defun vc-is-other-working-tree-p (dir1 dir2) > (member dir2 (vc-call-backend (vc-responsible-backend dir1) > 'other-working-trees))) > > (defun vc-other-working-trees (dir1) > (cl-remove-if-not (apply-partially #'vc-is-other-working-tree-p dir1) > (project-known-project-roots))) > > I think this means they are equivalently powerful. I think you could > make a similar argument for vc-working-tree-identity. I don't think so: if hg's other-working-trees is implemented by filtering project-known-project-roots (as we were considering earlier), then your implementation of vc-is-other-working-tree-p will erroneously return nil if dir2 is an hg share which is not in project-known-project-roots. For hg, a correct implementation would would be something like: (defun vc-hg-is-other-working-tree-p (dir1 dir2) (string-equal (vc-hg-share-file-contents dir1) (vc-hg-share-file-contents dir2))) This would return the right answer every time, even if dir1 or dir2 is not in project--list. > Then the question is, which is the better one to ask backend authors to > implement -- return a list of all other working trees, answer whether > two given trees are related, or return an identifying string for a > working tree? > > For Git and Jujutsu, other-working-trees is extremely simple to > implement because they have a command to list all working trees. > The other two will be more complicated, but not very much more. > > For Mercurial, returning an identifying string is easier to implement, > but again, the difference is fairly small. I don't think that's right, because for Mercurial it's simply impossible to reliably implement other-working-trees. We've considered implementing it with project--list, but that has the issue I mentioned above. Though, for what it's worth, I'm ultimately not that concerned about this. My VC backend will not have a problem implementing other-working-trees, so I don't care that much about the vc-hg implementation. > So then I think we are left with considering overall simplicity and ease > of understanding, writing documentation, etc.. I think a backend > function that just returns a list of all other working trees is a bit > simpler than your two suggestions, but there's not much in it. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 24 Jul 2025 21:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Spencer Baugh Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175339144213030 (code B ref 79024); Thu, 24 Jul 2025 21:11:01 +0000 Received: (at 79024) by debbugs.gnu.org; 24 Jul 2025 21:10:42 +0000 Received: from localhost ([127.0.0.1]:58910 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uf3D7-0003O4-Rf for submit@debbugs.gnu.org; Thu, 24 Jul 2025 17:10:42 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:51576) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uf3D5-0003Ne-7K for 79024@debbugs.gnu.org; Thu, 24 Jul 2025 17:10:40 -0400 DKIM-Signature: a=rsa-sha256; b=IkdOoGui/SszhMMysBtdmK2ZZc+/3BtD8X/VpEaIY9ClJg2gLO+gX+2UHmcGfR0KAgOcoLo0tOHOCT2XjIkvnFrtA5Mg2bNndu2eBdv9kfSxWiigFhFm17X0ckOstCK/f367IFdXrefzRaTcwPswTlKoeWq7CeXCbfAMq0cW4ps6F8DZhau5qlgOrC3d0tUqKFI0m5jahziLdXm8o0esTAqNqTMbsjNlTCuKqAIP0Jik1Yw6GwPTTHoTbGDp3np7M/eKXiV77rpmoi7QzKG3nIKAdJ97KXOAOlRrCVqghqg1g3lXHUlZdsgYCkbicCMT5C6CNBkufkVEBnhs2/hN7g==; s=purelymail2; d=spwhitton.name; v=1; bh=3h4S+Tz28TP74eLssUJ2GkGHBb1bJYU3D6K0V4fuhlg=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=gnnrMkbfUjIhJjUYkPKDJmnAXIeoQt5q1Fw109sxtnbOqlzTJpBSjYBCwbwKbP8gn85V3xGTqNUyafgvN8tL8Y09oILfJmCog8Qh5iLo6sEHkw1ZxY5bwaG1xiUrXgu1CUwfPUdHLlabK0/ScMP7pNabcMRmwz3E1WRRxALKrCwQhKDfl1uG2wLqK0ibddS4i/5bB/sHy6wRgke2QH/oS8XbTIDk89Iic5E/OQp54UY4uKIwrrpuCUN9ljni2tCaQtpyK47yiUBKK5pcubfqK2KY8bv6zIBZ+MbaLLsiX8eoJs//A2tlk3SUMQqn8y5dD8To3+8a99+8mSRUXg7udA==; s=purelymail2; d=purelymail.com; v=1; bh=3h4S+Tz28TP74eLssUJ2GkGHBb1bJYU3D6K0V4fuhlg=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1222419501; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Thu, 24 Jul 2025 21:10:31 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id AA5659409A7; Thu, 24 Jul 2025 22:10:30 +0100 (BST) From: Sean Whitton In-Reply-To: References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> Date: Thu, 24 Jul 2025 22:10:30 +0100 Message-ID: <87a54ts3ax.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Thu 24 Jul 2025 at 04:40pm -04, Spencer Baugh via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > I don't think so: if hg's other-working-trees is implemented by > filtering project-known-project-roots (as we were considering earlier), > then your implementation of vc-is-other-working-tree-p will erroneously > return nil if dir2 is an hg share which is not in > project-known-project-roots. > > For hg, a correct implementation would would be something like: > > (defun vc-hg-is-other-working-tree-p (dir1 dir2) > (string-equal (vc-hg-share-file-contents dir1) > (vc-hg-share-file-contents dir2))) > > This would return the right answer every time, even if dir1 or dir2 is > not in project--list. Ah, I see now. I have written vc-add-working-tree to call project-remember-project on the newly created working tree, and so I was implicitly assuming that all working trees would be known to project.el. But that fails to account for working trees created from outside of VC. And then, as you say, Mercurial becomes an impossible case. Really, other-working-trees should be called known-other-working-trees. The choice is between a function that can return an incomplete list and one that always gives a complete and correct answer but requires passing more parameters. I'll give those two options some more thought. Thanks! -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jul 2025 14:32:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Spencer Baugh Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175345386215918 (code B ref 79024); Fri, 25 Jul 2025 14:32:01 +0000 Received: (at 79024) by debbugs.gnu.org; 25 Jul 2025 14:31:02 +0000 Received: from localhost ([127.0.0.1]:35053 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufJRt-00048X-Ir for submit@debbugs.gnu.org; Fri, 25 Jul 2025 10:31:02 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:54738) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufJRq-000480-Cy for 79024@debbugs.gnu.org; Fri, 25 Jul 2025 10:30:59 -0400 DKIM-Signature: a=rsa-sha256; b=mW2/IxCBDqFKHJLD6fP1CWIiak7QgkZkFItXQES7R9SP4XOX1/waU+NExeWL9o+oLqTSZ1YDsEVbF6GGXcvbTRprqWMJHDMdS5n7GX3aP9iN4cg1nP1z/lUd5Rl2dWmxxSDCX0ANIlE0687GaTV7gVSRFfePdG86RA0/PlpNvm0jbPIPVUjvaUu8qqAT3PKz5cwrzT1OSAtwjgE3dc/PbPCjA6P0JEGiUtbxlDhP7QYWqt3nxorY2Z4RQvROWfa8cUU2HeQ2WHb3cLAqt1ocb9Gx0BYBnA7sU0uEq7NVOMaJfqcgpWfNyjhURj1rcL0FknrlE0bjklQCJFSbYBxvGA==; s=purelymail2; d=spwhitton.name; v=1; bh=nGCPVUr9DBZZ5PxWglgDy/Anvly/zhkE5g6A3PYl/Tw=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=MRZ63OSaDrwMvlfoofYLFFx+2Qzh7sirhyD6lbz31fCl047iD5vU3vVF+ZQuFxm/xLsMtCl1ixvC2Da7vSidYId9Vtvq3Xctf3qoSsiQqy2WqCB1hsloRZ8k59+bSLUFGTrAaPl2gw4B7IQmbCf6tvmBMnHZc/oQT9ZsK2QTemTSP9aFrWWPjsape/jJkXt87V0s/zYI84v9R1J4Oo/xO5ApcVUjqdD8s2bHSdHpWxl9ah1jFYRs3UsbIhzYTzeKRqnjqWrRQq2WyMLWelHJK0miKrPB69cD/lRfE11ipa1OsI8N+ekbLMSfLq5nD3j9vtlsL9dr31VaeeJ/cRA6uw==; s=purelymail2; d=purelymail.com; v=1; bh=nGCPVUr9DBZZ5PxWglgDy/Anvly/zhkE5g6A3PYl/Tw=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 862443584; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Fri, 25 Jul 2025 14:30:50 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 57642940A13; Fri, 25 Jul 2025 15:30:49 +0100 (BST) From: Sean Whitton In-Reply-To: References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> Date: Fri, 25 Jul 2025 15:30:49 +0100 Message-ID: <87ms8spckm.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello Spencer, I just tried implementing an other-working-tree-p backend function for Git and Hg. It introduces a new and quite significant performance problem for Git. Consider prompting for another working tree like this: (completing-read prompt (cl-remove-if-not #'vc-git-other-working-tree-p (project-known-project-roots)) nil t) This will call vc-git-other-working-tree-p multiple times, but the obvious implementation of vc-git-other-working-tree-p invokes 'git worktree list' to find its answer. So this involves invoking 'git worktree list' over and over again, which is really slow. This is VC-specific code which could be adapted somehow; the problem is worse if we are considering a project-prompter API where the project prompter receives only an opaque predicate function. The project-prompter has no choice but to call the predicate repeatedly. We could set up some caching of the results in vc-git but I can't think of a cache invalidation strategy that wouldn't break Lisp code trying to manipulate/maintain multiple worktrees. Do let me know if you have thoughts, but it looks like we have to go with the other-working-trees API, renamed to known-other-working-trees. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jul 2025 14:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: sbaugh@janestreet.com, 79024@debbugs.gnu.org, dmitry@gutov.dev Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175345470719234 (code B ref 79024); Fri, 25 Jul 2025 14:46:01 +0000 Received: (at 79024) by debbugs.gnu.org; 25 Jul 2025 14:45:07 +0000 Received: from localhost ([127.0.0.1]:35152 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufJfW-00050A-O9 for submit@debbugs.gnu.org; Fri, 25 Jul 2025 10:45:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36184) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufJfT-0004zA-40 for 79024@debbugs.gnu.org; Fri, 25 Jul 2025 10:45:05 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ufJfE-00040V-B4; Fri, 25 Jul 2025 10:44:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=h9xv73ujNQYMHZdYiiNC0zNrA/c3AqsjxCOxJCHgw3c=; b=eDLLkZsxuzrt NZ6DjjzQotXv9GHGN8/9EnnadRim8luwRfPuZF3YfehDWZggVfBBeWY8oKK+WPzZqhEjOw16en0iq g9OfsXCs5Ouo/LbtI5VAEpz5/7NeC8OCE0cPlyrG5sUV/5j9lgT3mZ0hteTf1hB5DM4E3fWSluhUr FyRHbsWZik1ftyvlli7GpmsRJJTGVO8LJqGAZvY6zzN/w95XH7mWj9JfxSRF4/Cz/AlJAJF72wwO+ j5EavhxOFnoHmwBvwPmot2ilAjxXst27uVfRq9+HiZJlAqRsIUllXT46W8257tAjMoFKc+zGIKcIR w9lb5aZk3ce6TGUyGHZK9A==; Date: Fri, 25 Jul 2025 17:44:45 +0300 Message-Id: <8634ak49eq.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87ms8spckm.fsf@zephyr.silentflame.com> (message from Sean Whitton on Fri, 25 Jul 2025 15:30:49 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: Dmitry Gutov , 79024@debbugs.gnu.org > From: Sean Whitton > Date: Fri, 25 Jul 2025 15:30:49 +0100 > > Hello Spencer, > > I just tried implementing an other-working-tree-p backend function for > Git and Hg. It introduces a new and quite significant performance > problem for Git. Consider prompting for another working tree like this: > > (completing-read prompt > (cl-remove-if-not #'vc-git-other-working-tree-p > (project-known-project-roots)) > nil t) > > This will call vc-git-other-working-tree-p multiple times, but the > obvious implementation of vc-git-other-working-tree-p invokes 'git > worktree list' to find its answer. So this involves invoking 'git > worktree list' over and over again, which is really slow. > > This is VC-specific code which could be adapted somehow; the problem is > worse if we are considering a project-prompter API where the project > prompter receives only an opaque predicate function. The > project-prompter has no choice but to call the predicate repeatedly. > > We could set up some caching of the results in vc-git but I can't think > of a cache invalidation strategy that wouldn't break Lisp code trying to > manipulate/maintain multiple worktrees. > > Do let me know if you have thoughts, but it looks like we have to go > with the other-working-trees API, renamed to known-other-working-trees. Why does it have to be a separate backend? Why cannot we rely on the user to be aware that worktrees are involved, as he/she must when invoking Git commands from the shell? From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Spencer Baugh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jul 2025 14:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175345524121713 (code B ref 79024); Fri, 25 Jul 2025 14:55:02 +0000 Received: (at 79024) by debbugs.gnu.org; 25 Jul 2025 14:54:01 +0000 Received: from localhost ([127.0.0.1]:35202 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufJo9-0005e3-0X for submit@debbugs.gnu.org; Fri, 25 Jul 2025 10:54:01 -0400 Received: from mxout5.mail.janestreet.com ([64.215.233.18]:53139) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufJo4-0005dS-Cs for 79024@debbugs.gnu.org; Fri, 25 Jul 2025 10:53:59 -0400 From: Spencer Baugh In-Reply-To: <87ms8spckm.fsf@zephyr.silentflame.com> (Sean Whitton's message of "Fri, 25 Jul 2025 15:30:49 +0100") References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> Date: Fri, 25 Jul 2025 10:53:50 -0400 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=waixah; t=1753455230; bh=TTiFs5TjGYyX0r6tL1m+yj6wrxJ8AEXi0RogF1vCNOI=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=wwC3n9RrLY2SVMH/fVJ726Nhca8O5zEDj5uGtn8+LvrkjUxduS9ORWg8jF8zWm567 XZS4nI3EHg/RDlQOtPdqfXp7dovwXSrkyAY+sZoVDdvms1P1Tz9e0k1Q0YhbbqFVL0 jCPjgcmTF+4hSGt0AXcMmP7FoWB2oGSSAsusCTkQGsCo9gzH8BahDUYKtLwfp+LEc5 /RXvNVdkAu5F3nhXuC4mkMf1RLtXsQMHrTlLQs/81Jy5OJE1qgBDEkMC0GjepHRaA8 9jg9FcL+fNKzxCdvL232bxnfgSIgQYp+QT3fLkNG3CH16Y3P7KPSXCSpZHz5mE0a5A OyPr9KAZhW7pQ== X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Sean Whitton writes: > Hello Spencer, > > I just tried implementing an other-working-tree-p backend function for > Git and Hg. It introduces a new and quite significant performance > problem for Git. Consider prompting for another working tree like this: > > (completing-read prompt > (cl-remove-if-not #'vc-git-other-working-tree-p > (project-known-project-roots)) > nil t) > > This will call vc-git-other-working-tree-p multiple times, but the > obvious implementation of vc-git-other-working-tree-p invokes 'git > worktree list' to find its answer. So this involves invoking 'git > worktree list' over and over again, which is really slow. > > This is VC-specific code which could be adapted somehow; the problem is > worse if we are considering a project-prompter API where the project > prompter receives only an opaque predicate function. The > project-prompter has no choice but to call the predicate repeatedly. > > We could set up some caching of the results in vc-git but I can't think > of a cache invalidation strategy that wouldn't break Lisp code trying to > manipulate/maintain multiple worktrees. True, using "git worktree list" to implement this is of course slow. But my suggested implementation would be to simply read .git (which is a file rather than a directory in git worktrees); then the performance should be much better (just one file read). From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jul 2025 15:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Spencer Baugh Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175345649727933 (code B ref 79024); Fri, 25 Jul 2025 15:15:02 +0000 Received: (at 79024) by debbugs.gnu.org; 25 Jul 2025 15:14:57 +0000 Received: from localhost ([127.0.0.1]:35286 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufK8O-0007GP-VC for submit@debbugs.gnu.org; Fri, 25 Jul 2025 11:14:57 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:46368) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufK8L-0007Fe-CE for 79024@debbugs.gnu.org; Fri, 25 Jul 2025 11:14:54 -0400 DKIM-Signature: a=rsa-sha256; b=CltL1eHB50Qxypy9ClQYUpeJmEAEoXjeAZCUrwTcGwwzdiMLjKKJXV2DrpLNM/OyI3EIHYKfUA4bwjX961BT8/lJNEAYm47vkrqGVtJe8ZWyEAStixfFt+GDN9jtPHDSo9LubBrD9dIPVtTE7Bbkb5LihSDLsnQ5H3I7z/sOjutv0vPay+mimmMGIisLpRGyTq7o44jaFOpffytRSnRUQGcEpBVF7JV8ttnJmAiCcWf572G1/EAgXIHP0YC5KrAl7QNCwfr0de0T+nzog9w5NuMq0PFVYl2/HBPckC70/4JDSYP9+OvbtE9emiy2MITTyxEEDbddqkiJTaRtc/IC0g==; s=purelymail2; d=spwhitton.name; v=1; bh=p2hwix5SVL2H/yq7xrIFI9E/9FxxvAbd3oAL2hnw9IE=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=SR2MOF9XV5NdbwzdxRdEP+DTsx1FMyKzwBhzRM4MAF9M7ucLRCmF5ICJYvak/rfUCTPdD53YVi/VLTYfBblTrvW8DyZt9G8xzN3YAxoqO/8KYb3NKPHTg96bx5nSsVsGl4Vu87g+2Xl+NyUHO6+f+hSKtbrLYQVm3vxvIJvCc4bSYMrfBMngClh6IWky/Cpj1RhHYUcJuHBOZblBQbeYYkD8c4iUfcukLC2q9D22jODjUBeqTlpJt8tCfR9CfMhD0t5cJ/9//xRrgimSirohlzFflEnDUYGQgU/dgDi6ADt39ZpPfpNzwwGA1FrO+7AQWtYVkGMI/eeVOxPgxWbHhg==; s=purelymail2; d=purelymail.com; v=1; bh=p2hwix5SVL2H/yq7xrIFI9E/9FxxvAbd3oAL2hnw9IE=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1275527702; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Fri, 25 Jul 2025 15:14:46 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 713EB940A13; Fri, 25 Jul 2025 16:14:45 +0100 (BST) From: Sean Whitton In-Reply-To: References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> Date: Fri, 25 Jul 2025 16:14:45 +0100 Message-ID: <87ikjgpaje.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Fri 25 Jul 2025 at 10:53am -04, Spencer Baugh wrote: > True, using "git worktree list" to implement this is of course slow. > But my suggested implementation would be to simply read .git (which is a > file rather than a directory in git worktrees); then the performance > should be much better (just one file read). Thought about this while running an errand after writing to you :) Unfortunately though there are git worktrees implemented where .git is a symlink to the relevant directory under .git/ in the main working tree (git-annex does this), and there is something called GIT_COMMON_DIR, which I just learned about, which affects worktree resolution. Reading git-worktree(1) and gitrepository-layout(5), there's a lot of implementation detail, which might change and vary across Git versions, to try to reproduce in vc-git.el. Whereas 'git worktree list' is a stable interface. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jul 2025 15:16:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, sbaugh@janestreet.com, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175345653828543 (code B ref 79024); Fri, 25 Jul 2025 15:16:01 +0000 Received: (at 79024) by debbugs.gnu.org; 25 Jul 2025 15:15:38 +0000 Received: from localhost ([127.0.0.1]:35298 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufK93-0007QJ-NQ for submit@debbugs.gnu.org; Fri, 25 Jul 2025 11:15:37 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:54122) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufK91-0007Pa-Dy for 79024@debbugs.gnu.org; Fri, 25 Jul 2025 11:15:35 -0400 DKIM-Signature: a=rsa-sha256; b=AqiqOlG5PRwv/LK9xsOBJgS0P63SdFSGmAUlDE2Kecdro2S4JOrVQpIJp8cuHurk8x04GnPCwwUCw7gDAvDnCLOCdjfaAp/X2EK2yRvKXjoWz8Hetvu+hmKiGqkmT2Eix54iU9yQe0nIsayag6tUAgOAs35lbLNyUn9l0mblfPdAoM4OCWvQdLbVz3U/eUqihlLYyOxLq+leXyeiHbSEx3OmDNxTdAmFw/eap/sgfSSGjynu6+6up0wR6Z/sN5grbXf+mp8cpcfOCL5mMLV6KsW4dpPTgVOzY34gdirkbMQVL9ybmGiV75NQWVMlEONY3GGz647tQPErzhk1c0KJGA==; s=purelymail2; d=spwhitton.name; v=1; bh=H2N0oratyVDaFdX9HT6FSmAh7pDZv5h16XSDVdBwvc4=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=CuldjqrDZI09s6Tm4EAXrnle0yz4l+jpJVyfwXHEbYS51QX+KGRpczGznI1BatJIznsxHZCmrLtjoQ499e+3UC3muwAgVz3Bv9e+SmRWivfzC1eGjZVz6XZ3mNFnf6YDg/UMm0Z9fNIWGKLADBGDRzSbpgErGt4oywLPmqKUBksEgAEZTfVoJU89AN7bzSw2Pe5cMcmUYy9nIYp3bFnAeV0mhkC0JDQRSJaq4NACy37XNRy+qxrOXMSEJcpmjGm7HUcFqAEKFn2WAWR2HVbZMbWtRkuDJPmdKSz1t+lUn5Q/vAf40Hb72ZEYo7jvVpSW0gjs/YgjcHDUmBMtEgL6BQ==; s=purelymail2; d=purelymail.com; v=1; bh=H2N0oratyVDaFdX9HT6FSmAh7pDZv5h16XSDVdBwvc4=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 966730208; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Fri, 25 Jul 2025 15:15:28 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id A788A940A13; Fri, 25 Jul 2025 16:15:27 +0100 (BST) From: Sean Whitton In-Reply-To: <8634ak49eq.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <8634ak49eq.fsf@gnu.org> Date: Fri, 25 Jul 2025 16:15:27 +0100 Message-ID: <87ecu4pai8.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Fri 25 Jul 2025 at 05:44pm +03, Eli Zaretskii wrote: > Why does it have to be a separate backend? Why cannot we rely on the > user to be aware that worktrees are involved, as he/she must when > invoking Git commands from the shell? There's no separate backend, just some new backend functions, so I think you misunderstood. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Spencer Baugh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jul 2025 15:30:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175345738231649 (code B ref 79024); Fri, 25 Jul 2025 15:30:01 +0000 Received: (at 79024) by debbugs.gnu.org; 25 Jul 2025 15:29:42 +0000 Received: from localhost ([127.0.0.1]:35337 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufKMf-0008EO-5E for submit@debbugs.gnu.org; Fri, 25 Jul 2025 11:29:41 -0400 Received: from mxout5.mail.janestreet.com ([64.215.233.18]:60627) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufKMa-0008Ds-IJ for 79024@debbugs.gnu.org; Fri, 25 Jul 2025 11:29:38 -0400 From: Spencer Baugh In-Reply-To: <87ikjgpaje.fsf@zephyr.silentflame.com> (Sean Whitton's message of "Fri, 25 Jul 2025 16:14:45 +0100") References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> Date: Fri, 25 Jul 2025 11:29:30 -0400 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=waixah; t=1753457370; bh=qS1liAggsQ9Tje5gFA/vvNwLLUJ6zWsZhiyE1jrUads=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=tE48Aah6XuhDBZvJ/AJxqnGaTedEM4Qrozvuwa+nmPMUGEaYwbL8Bymi+7qrnJRMZ L8ZX9m4JdchYWLIrwYrgikVkwD3I429uPvYJUE6nPoiuUkph31OmO6AAl6cR94vRtD x1ivE/iWynOrRB8vCqeBLUqigg4r21jIlg55ozQDjVi1B+2HUeucz0D26euoeV7Qcb KdvcDt60ca1Qed6C3qbxhfsuR50S3AiYhVjilzFSS2zeIyxfAnbGVpBuDBcqV+HHAV 49hQZTrzcBZDmNOUoxnzaGuoNWpx3/4sHUf7zWLQzeWQcNcmWTHKmMueTLjdC7Wt86 MZlHdADBVS21A== X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Sean Whitton writes: > Hello, > > On Fri 25 Jul 2025 at 10:53am -04, Spencer Baugh wrote: > >> True, using "git worktree list" to implement this is of course slow. >> But my suggested implementation would be to simply read .git (which is a >> file rather than a directory in git worktrees); then the performance >> should be much better (just one file read). > > Thought about this while running an errand after writing to you :) > > Unfortunately though there are git worktrees implemented where .git is a > symlink to the relevant directory under .git/ in the main working tree > (git-annex does this), and there is something called GIT_COMMON_DIR, > which I just learned about, which affects worktree resolution. > > Reading git-worktree(1) and gitrepository-layout(5), there's a lot of > implementation detail, which might change and vary across Git versions, > to try to reproduce in vc-git.el. Whereas 'git worktree list' is a > stable interface. Argh. Okay, then yes, I think you're right that going with known-other-working-trees is better. And implementing it by just filtering project-known-project-roots for vc-hg seems fine. Or... maybe we could just not implement it for vc-hg? Maybe vc-hg just won't support switching to other worktrees? At least at the start? From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jul 2025 15:43:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, sbaugh@janestreet.com, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.17534581813001 (code B ref 79024); Fri, 25 Jul 2025 15:43:02 +0000 Received: (at 79024) by debbugs.gnu.org; 25 Jul 2025 15:43:01 +0000 Received: from localhost ([127.0.0.1]:35400 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufKZZ-0000mH-01 for submit@debbugs.gnu.org; Fri, 25 Jul 2025 11:43:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52436) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufKZW-0000lk-3V for 79024@debbugs.gnu.org; Fri, 25 Jul 2025 11:42:59 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ufKZP-0001eM-9j; Fri, 25 Jul 2025 11:42:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=u7C094DYxnkp1vQc3vF2EzivFUwt9y/CZqujd2q/j2c=; b=Ngs5q/IvTavf kafyz9MR6G6SqooInuIBjIHmlMM7NxamTe3cw0bhwo6zjO6i3iHj5xHzlo+GfzckIOvaCFrT+j0UJ xe5XEsVJVTKdEBzV3a1c0HET2Y9eCC60437J4TPJJNnIrHSfT5GGwcnXmrbqsQ3NlcT+TMccurRuK VbCkIInMz9//W+ohHfyK1V01w4SlfJVQsObjBvkD7FRiAbco5eW9knBjsca4mqPpaUjDm5/zhNWzi r2/rFkXhsFCBKt2wTfrlWlDbVBsZOBjcrnwftW8mxNbyoDCxIWKwNwNKQzL5Gg4rkAt4KKo7veYf9 DPXO7WV2OXZznK42j287eA==; Date: Fri, 25 Jul 2025 18:42:47 +0300 Message-Id: <861pq446q0.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87ecu4pai8.fsf@zephyr.silentflame.com> (message from Sean Whitton on Fri, 25 Jul 2025 16:15:27 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <8634ak49eq.fsf@gnu.org> <87ecu4pai8.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: sbaugh@janestreet.com, 79024@debbugs.gnu.org, dmitry@gutov.dev > Date: Fri, 25 Jul 2025 16:15:27 +0100 > > On Fri 25 Jul 2025 at 05:44pm +03, Eli Zaretskii wrote: > > > Why does it have to be a separate backend? Why cannot we rely on the > > user to be aware that worktrees are involved, as he/she must when > > invoking Git commands from the shell? > > There's no separate backend, just some new backend functions, so I think > you misunderstood. The question I asked still stands, regardless. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jul 2025 16:56:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Spencer Baugh Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175346254722647 (code B ref 79024); Fri, 25 Jul 2025 16:56:01 +0000 Received: (at 79024) by debbugs.gnu.org; 25 Jul 2025 16:55:47 +0000 Received: from localhost ([127.0.0.1]:35757 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufLhz-0005tD-1v for submit@debbugs.gnu.org; Fri, 25 Jul 2025 12:55:47 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:32826) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufLhu-0005sZ-Ai for 79024@debbugs.gnu.org; Fri, 25 Jul 2025 12:55:45 -0400 DKIM-Signature: a=rsa-sha256; b=IGn3qzVhOVn6auf8N8cfuIxZPKXISXQkmyPz4wZAcQShRmPZIQObOyn8+pSi0XM/sUUq/zPT1H1N5ChfgJ8vXGh1jv0QdYkBxElZfoebh9LjtISRdoG9dxrMSXSdoZrGpS9SFjEu8YNCNIS9RvJ362og5q1f5eFpZRUv5GiLATP8jylDBAOaLw+nTnQRhtJzaB8ZusXY/N9+GeHZNqpx68MU/O30T3Eg5/x81igTX+LSHGbcteUeVXyEAlfw9setmmSavprlVGXofMDi/bCALYO/FFZHpO39JmldfH6sQOa4d9TXkDHyDWkkBXgMxiQJMrzi7Tyj4Efn5nhpCX11HA==; s=purelymail2; d=spwhitton.name; v=1; bh=BytJVFQqhbm6RU+3ht4K6n1rDaeQca18a92YF/UCNL0=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=KTqtF3YUtMiy3PG7eiHdgwcTZli/tif4fpdiHgVS/Mv7ZBuHSJEKpOLPfujG3c/KttRmjRfBHOh5Psnp9NFQdRVLsMlz70UvEFzuSei69XxZ9VUCjCvhZRuUW/XnWsXoH928aPRl+unSft6luVJJEDHUHqCqLP9RFr18Fkk5Rql+YsFrGPZtSQWyGrQpmukPw7/sIoXXRSh4Q7OCTBHIsugUKWY/+2fkQ7KrUgM/O6y5oTHkhmI9x5loAL7E+D+xNIWNzvbhgp3OjPvGjzzC3+FYyQxdG1kxZhn+T29ecUBLkgQxj5Cv7UH/emFnsTtUfOlu+juTxT7CuKX+SdcLjw==; s=purelymail2; d=purelymail.com; v=1; bh=BytJVFQqhbm6RU+3ht4K6n1rDaeQca18a92YF/UCNL0=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -479389359; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Fri, 25 Jul 2025 16:55:36 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id C03E3940A13; Fri, 25 Jul 2025 17:55:35 +0100 (BST) From: Sean Whitton In-Reply-To: References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> Date: Fri, 25 Jul 2025 17:55:35 +0100 Message-ID: <878qkcp5vc.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Fri 25 Jul 2025 at 11:29am -04, Spencer Baugh wrote: > Or... maybe we could just not implement it for vc-hg? Maybe vc-hg just > won't support switching to other worktrees? At least at the start? I don't think implementing or not implementing it for Hg implies locking into any API, and I've already implemented it, so I might as well install it, I think. Indeed, Hg currently passes my tests and Git doesn't ... -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jul 2025 16:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org, sbaugh@janestreet.com Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175346259822821 (code B ref 79024); Fri, 25 Jul 2025 16:57:02 +0000 Received: (at 79024) by debbugs.gnu.org; 25 Jul 2025 16:56:38 +0000 Received: from localhost ([127.0.0.1]:35765 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufLin-0005w0-Ih for submit@debbugs.gnu.org; Fri, 25 Jul 2025 12:56:37 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:44346) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufLil-0005ve-N9 for 79024@debbugs.gnu.org; Fri, 25 Jul 2025 12:56:36 -0400 DKIM-Signature: a=rsa-sha256; b=TWvDSxlv+n8T6vvUfwQDfeyvaPjMTfWYKz50C/i+jnF4zycgLD35IsGy5mCtvDkBnUJKcmA21eY4g31XbmOx0zrLTm7OYNq29b3QPr9yg72Dn6cfltvExvEWvQq0RijzuCl/TJJVYd1FBcvWxl10D5THUHumKlN2S8Mbf/wiftHglwXemyVBBxBcBhNP2HGtu1pVNky1njNwT70s7ac7gkFAFmbENQ6Lfu7bxsnGome8OWzoqsjD90PkHGDdOG4asgPFHPhtOrvaVf2n6EsxSVYbPlVX/X1BzVykOd5LrkU00BGzybfOyY52PXu3chbJ497f1CjWtF/OMJM0a44DVg==; s=purelymail2; d=spwhitton.name; v=1; bh=xw97w6TLEVQ0uV0sQ2X1qnnSNiWZleWvviAZyTfgF+k=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=flzTLuCKIR//UBph5Uhaj9XJSBiYw8yMCeXh5wFUmT01LDeNzBIi2FKe9NoWJGRWrZ3+aIP/zDMVlJldnkfppGSAKCzsbbZj0ktHF7CxLUh+citAuGl1Jq5JJ8+h1yGaYXvNMvXuGZ0HbWymbl5E1YBExafUGuXpeppMv1XI5bKH5lgMr8P8F07r9zUidNAguQnlbes11Vr0qivD0gJYayw3YKj+wGZVKS+UztlVxoW1Fc4tBF6xU3aokZ7qK/24WisdbAnGuPX0/xN0joukYrI7P95KsKWR31j45LKM3tzOOyVzX9t3cyKG2MPwx5jeVZdc98cLuht6FFX0k1qxPA==; s=purelymail2; d=purelymail.com; v=1; bh=xw97w6TLEVQ0uV0sQ2X1qnnSNiWZleWvviAZyTfgF+k=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1238544417; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Fri, 25 Jul 2025 16:56:29 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 86373940A13; Fri, 25 Jul 2025 17:56:28 +0100 (BST) From: Sean Whitton In-Reply-To: <861pq446q0.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <8634ak49eq.fsf@gnu.org> <87ecu4pai8.fsf@zephyr.silentflame.com> <861pq446q0.fsf@gnu.org> Date: Fri, 25 Jul 2025 17:56:28 +0100 Message-ID: <874iv0p5tv.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Fri 25 Jul 2025 at 06:42pm +03, Eli Zaretskii wrote: >> From: Sean Whitton >> Cc: sbaugh@janestreet.com, 79024@debbugs.gnu.org, dmitry@gutov.dev >> Date: Fri, 25 Jul 2025 16:15:27 +0100 >> >> On Fri 25 Jul 2025 at 05:44pm +03, Eli Zaretskii wrote: >> >> > Why does it have to be a separate backend? Why cannot we rely on the >> > user to be aware that worktrees are involved, as he/she must when >> > invoking Git commands from the shell? >> >> There's no separate backend, just some new backend functions, so I think >> you misunderstood. > > The question I asked still stands, regardless. You mean, why the new backend functions? To support the new user commands. I've been using my WIP version to switch between vc.el on the trunk and in my WIP worktree, it's very nice :) -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jul 2025 18:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org, sbaugh@janestreet.com Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175346728410925 (code B ref 79024); Fri, 25 Jul 2025 18:15:02 +0000 Received: (at 79024) by debbugs.gnu.org; 25 Jul 2025 18:14:44 +0000 Received: from localhost ([127.0.0.1]:36086 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufMwO-0002q9-AI for submit@debbugs.gnu.org; Fri, 25 Jul 2025 14:14:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58334) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufMwL-0002pi-26 for 79024@debbugs.gnu.org; Fri, 25 Jul 2025 14:14:42 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ufMwE-0005iQ-4F; Fri, 25 Jul 2025 14:14:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=/mCmTcFlXqVPE/Rpz3JzW7sM0Q1OkzKouNIIy1A2ZVc=; b=Wp52JG1VfV75 CKWgMI+A629T4HT/PTHYxjhRq8Uv/gRnIIanhU4I9IdQocIrK023cY89C3lsxLILzag7Llvc4+HnQ SXcId/cDoo3bpEcZ+9lOBupxoDe0kW/f0JgihOtDar5PGLDwleOGroJdmPa+OE6j8tz3ToD6iksAP wBcAqVkG0gHZK+0eYQZq1MkN+qjtzVIp9OiPSiemZ9TdBHo9ElsK7DTcKh+Lpf7cJCzF/Snf/elie IXlonrz/aAvDjhNN6arRJKkFsaloTMjuxMnuamHhAUm+qypMwrRw57gl1BYnXXEXvWIaf9NBOKyTe apZxAXpSkHiEjudYELcsFw==; Date: Fri, 25 Jul 2025 21:14:30 +0300 Message-Id: <86seik2l4p.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <874iv0p5tv.fsf@zephyr.silentflame.com> (message from Sean Whitton on Fri, 25 Jul 2025 17:56:28 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <8634ak49eq.fsf@gnu.org> <87ecu4pai8.fsf@zephyr.silentflame.com> <861pq446q0.fsf@gnu.org> <874iv0p5tv.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, sbaugh@janestreet.com, 79024@debbugs.gnu.org > Date: Fri, 25 Jul 2025 17:56:28 +0100 > > Hello, > > On Fri 25 Jul 2025 at 06:42pm +03, Eli Zaretskii wrote: > > >> From: Sean Whitton > >> Cc: sbaugh@janestreet.com, 79024@debbugs.gnu.org, dmitry@gutov.dev > >> Date: Fri, 25 Jul 2025 16:15:27 +0100 > >> > >> On Fri 25 Jul 2025 at 05:44pm +03, Eli Zaretskii wrote: > >> > >> > Why does it have to be a separate backend? Why cannot we rely on the > >> > user to be aware that worktrees are involved, as he/she must when > >> > invoking Git commands from the shell? > >> > >> There's no separate backend, just some new backend functions, so I think > >> you misunderstood. > > > > The question I asked still stands, regardless. > > You mean, why the new backend functions? No, why would VC try to call worktree-related functions automatically, without being told to do so by the user? From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jul 2025 18:37:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, sbaugh@janestreet.com, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175346857517053 (code B ref 79024); Fri, 25 Jul 2025 18:37:01 +0000 Received: (at 79024) by debbugs.gnu.org; 25 Jul 2025 18:36:15 +0000 Received: from localhost ([127.0.0.1]:36182 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufNHD-0004Qx-1c for submit@debbugs.gnu.org; Fri, 25 Jul 2025 14:36:15 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:57768) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufNH8-0004QO-MN for 79024@debbugs.gnu.org; Fri, 25 Jul 2025 14:36:12 -0400 DKIM-Signature: a=rsa-sha256; b=OKazrtgDScZJ8pcstm/nf/YRoMjFTBSp+PdSuHliYHmRnOeD+qtQTDxGrnvZfBELwBhPpeRcYuW9jCjLZBVA3gCRu55duy3aO90Su7sWL8piR4C0Onp7YWqVmJdRb4VVR8zXIh2BFVYOoKcb5zA2zJYKutYuOt0bv7d6Mgu9dwvXhigF6P31/4N0S0w09LyZ97htVXbDfbDilKnFQ9Syi+LNYYO0WZMcokQ0Yh43z9HwUYKHp+NPReUfNjhS3Z/ntZwbH+5cTxk1cA7KtZ8A4y+WKF8ByiXKKxIcCfuG1WcYeXRgnZmSkFHgwOTrEANItbUoGRdhx2M0aAtkH4SYJg==; s=purelymail2; d=spwhitton.name; v=1; bh=KjxLr6lPokrtQ8rBCZToNJP3uGiFCIZ6ZCbued1zXLg=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=efH46Npc8V3dYXKTuAhsSH/ESyIEUBqcmeIbc0P4x+aN9btijumNzI9hRH7kn+FUOtO36HdYpZz8Y+IgdTyVz124apt2fhaZo/glcDXCyzgU+6e2TPofxwLjfKExwa4N6A3Yh4oP3Yu+bsxH2EVksi+aKoUphSNk5f73fq7hiLEa+cDsjSOfP2lc0k4YLSNxTvY1cpuOtAiQKXwR3fhnNyOZ+RtC2+AtL3lhIN4EkZcfabDW+pKpGCYqw9/aBGxLQzCp6YS9Be8Aw7Q2NezxhVePeH1kdR5aGaTMJbEEJoKGgWXrxUf7JGrxWPAeSqzNX21NWQKEpaRSZ2VTAOm0AQ==; s=purelymail2; d=purelymail.com; v=1; bh=KjxLr6lPokrtQ8rBCZToNJP3uGiFCIZ6ZCbued1zXLg=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 924384153; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Fri, 25 Jul 2025 18:36:03 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id E6456940A13; Fri, 25 Jul 2025 19:36:02 +0100 (BST) From: Sean Whitton In-Reply-To: <86seik2l4p.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <8634ak49eq.fsf@gnu.org> <87ecu4pai8.fsf@zephyr.silentflame.com> <861pq446q0.fsf@gnu.org> <874iv0p5tv.fsf@zephyr.silentflame.com> <86seik2l4p.fsf@gnu.org> Date: Fri, 25 Jul 2025 19:36:02 +0100 Message-ID: <87tt30nmnh.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Fri 25 Jul 2025 at 09:14pm +03, Eli Zaretskii wrote: >> From: Sean Whitton >> Cc: dmitry@gutov.dev, sbaugh@janestreet.com, 79024@debbugs.gnu.org >> Date: Fri, 25 Jul 2025 17:56:28 +0100 >> >> Hello, >> >> On Fri 25 Jul 2025 at 06:42pm +03, Eli Zaretskii wrote: >> >> >> From: Sean Whitton >> >> Cc: sbaugh@janestreet.com, 79024@debbugs.gnu.org, dmitry@gutov.dev >> >> Date: Fri, 25 Jul 2025 16:15:27 +0100 >> >> >> >> On Fri 25 Jul 2025 at 05:44pm +03, Eli Zaretskii wrote: >> >> >> >> > Why does it have to be a separate backend? Why cannot we rely on the >> >> > user to be aware that worktrees are involved, as he/she must when >> >> > invoking Git commands from the shell? >> >> >> >> There's no separate backend, just some new backend functions, so I think >> >> you misunderstood. >> > >> > The question I asked still stands, regardless. >> >> You mean, why the new backend functions? > > No, why would VC try to call worktree-related functions automatically, > without being told to do so by the user? I don't believe it will. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Spencer Baugh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 25 Jul 2025 18:44:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: Dmitry Gutov , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175346901418922 (code B ref 79024); Fri, 25 Jul 2025 18:44:01 +0000 Received: (at 79024) by debbugs.gnu.org; 25 Jul 2025 18:43:34 +0000 Received: from localhost ([127.0.0.1]:36219 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufNOH-0004v7-Hq for submit@debbugs.gnu.org; Fri, 25 Jul 2025 14:43:33 -0400 Received: from mxout5.mail.janestreet.com ([64.215.233.18]:40081) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufNOE-0004ua-AY for 79024@debbugs.gnu.org; Fri, 25 Jul 2025 14:43:31 -0400 From: Spencer Baugh In-Reply-To: <878qkcp5vc.fsf@zephyr.silentflame.com> (Sean Whitton's message of "Fri, 25 Jul 2025 17:55:35 +0100") References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> Date: Fri, 25 Jul 2025 14:43:24 -0400 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=waixah; t=1753469004; bh=wpzmumB9p9C7C3NYhT8wKPA+rIp2kv6pnUGxwfZnY2M=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=q96ga0brxr1rCVPKEyptGTNS7dg5XivVSUFOnE9XuZEpMZATji7kXJUXXWNM5W7xc RJAK4UNGuM2+Sz9VFGNIAP3sa96sVVZ1xbXdnDyBlGQU79RztsCr4kB0p0MZyn5u5J aZf9hSWJi7BDiySD5lLPfFm/RcyDnI870RlbAvt+0k+RTbDTgFuINABk3lNn0U54rz ZDSMZO1JDRfzmYJSQVenYKrdN8rhs3vCtJTxegwymAs2v2pvDzu7Pyf1Or4m9+Dvo1 WwIiVXBL8npSz0ahGEzkW+J0HeyTtw5RoVe85K9SG6bqhzX11fStThzTTSyXfVbmr0 0kRPNwInEUSXQ== X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Sean Whitton writes: > Hello, > > On Fri 25 Jul 2025 at 11:29am -04, Spencer Baugh wrote: > >> Or... maybe we could just not implement it for vc-hg? Maybe vc-hg just >> won't support switching to other worktrees? At least at the start? > > I don't think implementing or not implementing it for Hg implies locking > into any API, and I've already implemented it, so I might as well > install it, I think. Well... if we didn't implement worktree-switching for vc-hg, then we could indeed have a reliable "other-working-trees" backend function, instead of "known-other-working-trees". That's the lock-in, I guess. But anyway, I agree, might as well go ahead with known-other-working-trees, that seems fine to have as the API. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 26 Jul 2025 07:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: spwhitton@spwhitton.name Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.17535133436293 (code B ref 79024); Sat, 26 Jul 2025 07:03:02 +0000 Received: (at 79024) by debbugs.gnu.org; 26 Jul 2025 07:02:23 +0000 Received: from localhost ([127.0.0.1]:39299 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufYvH-0001dR-9C for submit@debbugs.gnu.org; Sat, 26 Jul 2025 03:02:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46954) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufYvD-0001d1-PU for 79024@debbugs.gnu.org; Sat, 26 Jul 2025 03:02:21 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ufYv8-0007Ee-37; Sat, 26 Jul 2025 03:02:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=K9TKGJXMREcV5lwcfcwy5X90tso5K/0MrWmXqISmRnU=; b=S4UCxj1iHAMR yaQ5Nm5KfkxauFRfyWCxDB2NlqoXDIs/BPFiuKKx+uwQUp97QC68sfP1C1NQlXDN7px+lxUNKTxkn Q5jWKSflCPGXEfTQRvzDQ2LZQU+F9Fne4rX38ncc2xg3mrmqBtXvOcm5TlBUeTOhPxFCRmNjJHFW4 AUJAg9XRgJx4FzveK2Fa47lHhkLbFvBf/ViZTyJoqvOj3tpdwJbwc6ic/ZMmQgocCGC2fgtYVfJDQ /VjuuBae1D8RwFBrG2JYVp0CBEfeKq6vRcYYx+gwO8SsRUSt+o7qXB7MOmHlsDtdlCt/iddPmGLP6 SXZlSElpDTdXTZKDDSewHw==; Date: Sat, 26 Jul 2025 10:02:10 +0300 Message-Id: <86o6t7305p.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (bug-gnu-emacs@gnu.org) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) The new VC tests added under this discussion have 2 problems: . Compiling the test file produces a warning: In vc-test--other-working-trees: lisp/vc/vc-tests/vc-tests.el:665:28: Warning: Unused lexical variable `tempdir' . The new test fails for Git: Registering (foo)... Registering (foo)... done Mark set Press C-c C-c when you are done editing. Enter a change comment. Type C-c C-c when done Checking in foo... Test vc-test-git07-other-working-trees backtrace: signal(error ("Failed (status 128): git --no-pager commit -F c:/User error("Failed (%s): %s" "status 128" "git --no-pager commit -F c:/Us vc-do-command("*vc*" 0 "git" ("foo") "--no-pager" "commit" "-F" "c:/ apply(vc-do-command "*vc*" 0 "git" ("foo") "--no-pager" ("commit" "- vc-git-command(nil 0 ("foo") "commit" "-F" "c:/Users/EliZ/AppData/Lo apply(vc-git-command nil 0 ("foo") ("commit" "-F" "c:/Users/EliZ/App vc-git-checkin(("foo") #("Summary: Testing other working trees\n" 0 apply(vc-git-checkin (("foo") #("Summary: Testing other working tree vc-call-backend(Git checkin ("foo") #("Summary: Testing other workin #f(compiled-function (backend rev patch-string files comment) #) vc-finish-logentry() funcall-interactively(vc-finish-logentry) call-interactively(vc-finish-logentry) log-edit-done() (let (vc-async-checkin) (log-edit-done)) (save-current-buffer (set-buffer (find-file-noselect tmp-name)) (vc- (let* ((first (file-name-as-directory (expand-file-name "first" defa (progn (add-hook 'vc-test--cleanup-hook (let ((dir default-directory (unwind-protect (progn (add-hook 'vc-test--cleanup-hook (let ((dir d (let ((vc-handled-backends (list backend)) (default-directory (file- (progn (let ((vc-handled-backends (list backend)) (default-directory (unwind-protect (progn (let ((vc-handled-backends (list backend)) (d (let* ((coding-system-for-write nil) (temp-file (file-name-as-direct vc-test--other-working-trees(Git) #f(lambda () :dynbind (let ((value-478 (gensym "ert-form-evaluation- #f(compiled-function () #)() handler-bind-1(#f(compiled-function () # ert--run-test-internal(#s(ert--test-execution-info :test ... :result ert-run-test(#s(ert-test :name vc-test-git07-other-working-trees :do ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp)))) ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n command-line-1(("-L" ";." "-l" "ert" "--eval" "(setq treesit-extra-l command-line() normal-top-level() Test vc-test-git07-other-working-trees condition: (error "Failed (status 128): git --no-pager commit -F c:/Users/EliZ/AppData/Local/Temp/git-msg5fr19l --only -- foo") FAILED 24/56 vc-test-git07-other-working-trees (0.337804 sec) at lisp/vc/vc-tests/vc-tests.el:1 Is the new feature supposed to work on MS-Windows, where committing specifies the message through a temporary file, rather than the command line? (The vc-test-hg07-other-working-trees test is skipped, perhaps the version of Mercurial I have here is 4.7.1 or maybe "share" is an add-on one should install and I didn't.) From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 26 Jul 2025 12:20:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175353238120153 (code B ref 79024); Sat, 26 Jul 2025 12:20:01 +0000 Received: (at 79024) by debbugs.gnu.org; 26 Jul 2025 12:19:41 +0000 Received: from localhost ([127.0.0.1]:40859 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufdsK-0005Ex-QJ for submit@debbugs.gnu.org; Sat, 26 Jul 2025 08:19:41 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:53968) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufdsH-0005EH-Ti for 79024@debbugs.gnu.org; Sat, 26 Jul 2025 08:19:39 -0400 DKIM-Signature: a=rsa-sha256; b=eeNql302swnnjv4B//ztaK7zaJVl1WfthaC1R3Efe8n8E5XfQEdhj1Y41jGlH6U02ovRkGQtgexzYqK1zeACyeehNwZefIGheGmGYzPkieLuTqDBw9Kx9aReDzVTzLKnztdZCOd0b6fNdY6tundDCVEqgRGhTMhnjaU3amJtzlBegw1J1vLLUcUubMLmdDp5FNy0mHLM4mzfsiUGn453S/I6+0nWnNDkKooyeSGuuMMQKSWUGHYRPLCi5ek+Zor25MiZcvYlsnVphuBQYFPrEoeLavDiSCGc8cDZYUjEcsvbEDRE8h0Wb9xbK0EHbh2Rw0LeNgtBrklW0Va7i23phg==; s=purelymail2; d=spwhitton.name; v=1; bh=lIsU3lIhW+LquEWjjZAfr+FESs7iBVIWaZaME7kY2+Y=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=ADIgQPHj9FyZdkBcK93RKBSujeFx/RepkkENJjOv5tehr93gw9O/Um5ukpwjNH2xgstxmEekRevYU8zwgCMIAcQuSenvb7YkUXHLZM/do/ryCqEUF4qUAFCypNZOwazmMO0Jq8Hs6QppVvX9xogW65TZcS0yo7DppAco7N35CfJzPpLpapu9SLh0O32y8oawvwnEgxWsHOBNJmKQgVtCtX0bFTBEreS4/BGUTGJWLZIpde5loIfqdFNJ6x1LLf9Ye/PVzLz5YqefW1BBXNTKD3Z31PhMDgkqYJG/8S+OTHHb3rBr+HecqgZk3F3vjwauMvZdf4yh1qZSkERWA2gZSg==; s=purelymail2; d=purelymail.com; v=1; bh=lIsU3lIhW+LquEWjjZAfr+FESs7iBVIWaZaME7kY2+Y=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1170952958; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sat, 26 Jul 2025 12:19:30 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 0BDEC9409A7; Sat, 26 Jul 2025 13:19:29 +0100 (BST) From: Sean Whitton In-Reply-To: <86o6t7305p.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> Date: Sat, 26 Jul 2025 13:19:29 +0100 Message-ID: <87tt2zm9f2.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Sat 26 Jul 2025 at 10:02am +03, Eli Zaretskii wrote: > The new VC tests added under this discussion have 2 problems: > > . Compiling the test file produces a warning: > > In vc-test--other-working-trees: > lisp/vc/vc-tests/vc-tests.el:665:28: Warning: Unused lexical variable `tempdir' Thanks. Is it deliberate that these files aren't compiled during a regular build? I didn't know that files in test/lisp/ need to be manually tested for problems like these. > . The new test fails for Git: > > Test vc-test-git07-other-working-trees condition: > (error > "Failed (status 128): git --no-pager commit -F c:/Users/EliZ/AppData/Local/Temp/git-msg5fr19l --only -- foo") > FAILED 24/56 vc-test-git07-other-working-trees (0.337804 sec) at lisp/vc/vc-tests/vc-tests.el:1 > > Is the new feature supposed to work on MS-Windows, where committing > specifies the message through a temporary file, rather than the > command line? It should work fine, this isn't about the new features, but just about how I wrote the test setup. This is the relevant code: --8<---------------cut here---------------start------------->8--- ;; Set up the first working tree. (make-directory first t) (let ((default-directory first)) (vc-test--create-repo-function backend) (write-region "foo" nil tmp-name nil 'nomessage) (vc-register `(,backend (,(file-name-nondirectory tmp-name))))) (with-current-buffer (find-file-noselect tmp-name) (vc-checkin (list (file-name-nondirectory tmp-name)) backend) (insert "Testing other working trees") (let (vc-async-checkin) (log-edit-done)) --8<---------------cut here---------------end--------------->8--- I tried to just copy what vc-test--version-diff did to create and checkin a sample file. Does vc-test-git06-version-diff work for you? > (The vc-test-hg07-other-working-trees test is skipped, perhaps the > version of Mercurial I have here is 4.7.1 or maybe "share" is an > add-on one should install and I didn't.) You don't have to install it but you do have to enable it in your personal ~/.hgrc runtime configuration file. Add this to that file: [extensions] share = -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 26 Jul 2025 13:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175353780615931 (code B ref 79024); Sat, 26 Jul 2025 13:51:02 +0000 Received: (at 79024) by debbugs.gnu.org; 26 Jul 2025 13:50:06 +0000 Received: from localhost ([127.0.0.1]:41431 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uffHp-00048o-02 for submit@debbugs.gnu.org; Sat, 26 Jul 2025 09:50:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36456) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uffHl-000483-Bl for 79024@debbugs.gnu.org; Sat, 26 Jul 2025 09:50:02 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uffHf-0006IG-J2; Sat, 26 Jul 2025 09:49:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=OYfMYncTUX6sZafUZBYckb0MklGrR5Ol2FncxfY/jTU=; b=BWvpXTgDs5gE 5MYtemds9yvg7YcOIdifSEvebTXK/t0TTtZsH568nyEgm9j4xZX7GfAEXV/e+clly5EZRxAaYdDff SYFtN2jCVPP5MZ7ARvBJK4TeY0M3gg0iXBGNcR02y5THnt8EHg3u2GJSPofiYWpw04hfpx7WcBDCo Wi+zw9e1WEiU3qPFHiDP3pVsTiSftELbAs/q2kLExshbL8C9UtKJE0CxhikIcMomllBBZbfD0ROfN 2Je9R/lDALUEKrg8H24ub+aYgs3UHa8U0NQZbCYbeIfaG7ORIDdwuGnZzTlHB0fWqsYLFhqByvPeS ri+zMtlGT2qGS3IJ4XgFCg==; Date: Sat, 26 Jul 2025 16:49:53 +0300 Message-Id: <86qzy3ysce.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87tt2zm9f2.fsf@zephyr.silentflame.com> (message from Sean Whitton on Sat, 26 Jul 2025 13:19:29 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Sat, 26 Jul 2025 13:19:29 +0100 > > Hello, > > On Sat 26 Jul 2025 at 10:02am +03, Eli Zaretskii wrote: > > > The new VC tests added under this discussion have 2 problems: > > > > . Compiling the test file produces a warning: > > > > In vc-test--other-working-trees: > > lisp/vc/vc-tests/vc-tests.el:665:28: Warning: Unused lexical variable `tempdir' > > Thanks. Is it deliberate that these files aren't compiled during a > regular build? I didn't know that files in test/lisp/ need to be > manually tested for problems like these. I don't understand the question. The test files are compiled when the test is run, if the .elc file is outdated. > > Test vc-test-git07-other-working-trees condition: > > (error > > "Failed (status 128): git --no-pager commit -F c:/Users/EliZ/AppData/Local/Temp/git-msg5fr19l --only -- foo") > > FAILED 24/56 vc-test-git07-other-working-trees (0.337804 sec) at lisp/vc/vc-tests/vc-tests.el:1 > > > > Is the new feature supposed to work on MS-Windows, where committing > > specifies the message through a temporary file, rather than the > > command line? > > It should work fine, this isn't about the new features, but just about > how I wrote the test setup. This is the relevant code: > > --8<---------------cut here---------------start------------->8--- > ;; Set up the first working tree. > (make-directory first t) > (let ((default-directory first)) > (vc-test--create-repo-function backend) > (write-region "foo" nil tmp-name nil 'nomessage) > (vc-register `(,backend (,(file-name-nondirectory tmp-name))))) > (with-current-buffer (find-file-noselect tmp-name) > (vc-checkin (list (file-name-nondirectory tmp-name)) backend) > (insert "Testing other working trees") > (let (vc-async-checkin) > (log-edit-done)) > --8<---------------cut here---------------end--------------->8--- > > I tried to just copy what vc-test--version-diff did to create and > checkin a sample file. Does vc-test-git06-version-diff work for you? Yes. This test fails on GNU/Linux as well for me, but for a different reason: Test vc-test-git07-other-working-trees backtrace: write-region(nil nil "~/.emacs.d/projects.eld" nil silent) project--write-project-list() project--remember-dir("/tmp/vc-testxQfvm1/first/" nil) project-remember-project((vc Git "/tmp/vc-testxQfvm1/first/")) vc-add-working-tree(Git "/tmp/vc-testxQfvm1/second/") (progn (fset 'completing-read vnew) (vc-add-working-tree backend sec (unwind-protect (progn (fset 'completing-read vnew) (vc-add-working- (let* ((vnew #'(lambda (&rest _ignore) "")) (old (symbol-function 'c (cond ((eql backend 'Git) (let* ((vnew #'(lambda (&rest _ignore) "") (save-current-buffer (set-buffer (find-file-noselect tmp-name)) (vc- (let* ((first (file-name-as-directory (expand-file-name "first" defa (progn (add-hook 'vc-test--cleanup-hook (let ((dir default-directory (unwind-protect (progn (add-hook 'vc-test--cleanup-hook (let ((dir d (let ((vc-handled-backends (list backend)) (default-directory (file- (progn (let ((vc-handled-backends (list backend)) (default-directory (unwind-protect (progn (let ((vc-handled-backends (list backend)) (d (let* ((coding-system-for-write nil) (temp-file (file-name-as-direct vc-test--other-working-trees(Git) #f(lambda () :dynbind (let ((value-478 (gensym "ert-form-evaluation- #f(compiled-function () #)() handler-bind-1(#f(compiled-function () #) ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test ert-run-test(#s(ert-test :name vc-test-git07-other-working-trees :do ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp)))) ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n command-line-1(("-L" ":." "-l" "ert" "--eval" "(setq treesit-extra-l command-line() normal-top-level() Test vc-test-git07-other-working-trees condition: (file-missing "Opening output file" "No such file or directory" "/nonexistent/.emacs.d/projects.eld") FAILED 24/56 vc-test-git07-other-working-trees (0.120713 sec) at lisp/vc/vc Maybe this fails because my Git is very old? (It does support worktrees, though.) If you could show a series of shell commands this test invokes, I could perhaps run them from the shell and see what happens. > > (The vc-test-hg07-other-working-trees test is skipped, perhaps the > > version of Mercurial I have here is 4.7.1 or maybe "share" is an > > add-on one should install and I didn't.) > > You don't have to install it but you do have to enable it in your > personal ~/.hgrc runtime configuration file. Add this to that file: > > [extensions] > share = OK, did that (perhaps this should be in the comments to the test?). But the test is still skipped. I think I understand why: we run the test suite with a bogus HOME directory, so the real ~/.hgrc is not used, and "hg share" says "unknown command". I see the same on GNU/Linux, so this is not specific to Windows. Does the test work for you? From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 27 00:48:04 2025 Received: (at control) by debbugs.gnu.org; 27 Jul 2025 04:48:04 +0000 Received: from localhost ([127.0.0.1]:47273 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uftIp-0005Wr-MF for submit@debbugs.gnu.org; Sun, 27 Jul 2025 00:48:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52694) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uftIl-0005W4-4Z; Sun, 27 Jul 2025 00:48:01 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uftIf-0006pc-9C; Sun, 27 Jul 2025 00:47:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=BZmnHIrJTMiNNv3JLGSV9Z7Tj9GrnF3EOY+9039aHJ4=; b=Ffedkp+ZdeUx MxZDdE86/8ecLqEpeRZHTpSESBT3pD3gOcmPcdfiGleMGXBFSYAqcLzHnzHro7FaOVNK3ZCCBoRp8 PwOqV3Xymquo0TtmnUAv2clpyMscRMeUC2JVBuHKrmjKOR/qYn/mCNZqRvL6ivQz7TN502IL734ff nVGXWl8KR1mFuXa9ATmydKLj/piD588nK9SGHRnrcVy29GWNQ0TBTrQQJh/gYVywpeLZJ5h9IfkxA 3edz+bFO9yOrM8Jgj9XSPYkgo9J9yZ/pY0p3yuA2wwcvXNT9mAiRh+O4FBEldRMFFimmN10unhTxn CQrQeRXLtvg2nm8vr3mZ5g==; Date: Sun, 27 Jul 2025 07:47:49 +0300 Message-Id: <868qkaz1ca.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-Reply-To: <55f64ad9-546a-45cb-b984-3904d2dcdaa1@cs.ucla.edu> (message from Paul Eggert on Sat, 26 Jul 2025 13:08:20 -0700) Subject: Re: bug#79104: vc-test-git07-other-working-trees failure with current master References: <55f64ad9-546a-45cb-b984-3904d2dcdaa1@cs.ucla.edu> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control Cc: 79104@debbugs.gnu.org, spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) merge 79104 79024 thanks > Cc: Sean Whitton > Date: Sat, 26 Jul 2025 13:08:20 -0700 > From: Paul Eggert > > I just now got the following failure with "make -j12 check" on current > master (commit 547525176f23bb543687de1be853da9ad556d60e), when running > on Ubuntu 25.04 x86-64. I see that recent changes were made to lisp/vc > so I expect that's related. > [...] > Registering (foo)... > Registering (foo)... done > Mark set > Press C-c C-c when you are done editing. > Enter a change comment. Type C-c C-c when done > Checking in foo... > Test vc-test-git07-other-working-trees backtrace: > signal(error ("Failed (status 128): git --no-pager commit -m Testing > error("Failed (%s): %s" "status 128" "git --no-pager commit -m Testi > vc-do-command("*vc*" 0 "git" ("foo") "--no-pager" "commit" "-m" "Tes > apply(vc-do-command "*vc*" 0 "git" ("foo") "--no-pager" ("commit" "- > vc-git-command(nil 0 ("foo") "commit" "-m" "Testing other working tr > apply(vc-git-command nil 0 ("foo") ("commit" "-m" "Testing other wor > vc-git-checkin(("foo") #("Summary: Testing other working trees\n" 0 > apply(vc-git-checkin (("foo") #("Summary: Testing other working tree > vc-call-backend(Git checkin ("foo") #("Summary: Testing other workin > #f(compiled-function (backend rev patch-string files comment) # #f(compiled-function (files comment) #) > vc-finish-logentry() > funcall-interactively(vc-finish-logentry) > call-interactively(vc-finish-logentry) > log-edit-done() > vc-test--other-working-trees(Git) > #f(lambda () :dynbind (let ((value-90 (gensym "ert-form-evaluation-a > #f(compiled-function () #)() > handler-bind-1(#f(compiled-function () # > ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test > ert-run-test(#s(ert-test :name vc-test-git07-other-working-trees :do > ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m > ert-run-tests((not (or (tag :expensive-test) (tag :unstable) (tag :n > ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable) ( > ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un > eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) ( > command-line-1(("-L" ":." "-l" "ert" "--eval" "(setq treesit-extra-l > command-line() > normal-top-level() > Test vc-test-git07-other-working-trees condition: > (error > "Failed (status 128): git --no-pager commit -m Testing other > working trees\n\n --only -- foo") > FAILED 16/32 vc-test-git07-other-working-trees (0.022482 sec) at > lisp/vc/vc-tests/vc-tests.el:1 That's very similar to the failure I get in this new test, as described in bug#79024 (although I didn't run the test suite in parallel with "make -jN"). So I'm merging these two bugs. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 27 Jul 2025 08:43:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.17536057632238 (code B ref 79024); Sun, 27 Jul 2025 08:43:01 +0000 Received: (at 79024) by debbugs.gnu.org; 27 Jul 2025 08:42:43 +0000 Received: from localhost ([127.0.0.1]:48226 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufwxv-0000a2-5W for submit@debbugs.gnu.org; Sun, 27 Jul 2025 04:42:43 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:60198) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufwxr-0000ZO-Lk for 79024@debbugs.gnu.org; Sun, 27 Jul 2025 04:42:41 -0400 DKIM-Signature: a=rsa-sha256; b=OhN92DE0GHV4xvbordIVT/74LZ42Uic9re4uSeZMmsc5zp24G2KQetnsFDReVKK0zsFRjYSeiZaFvRWTww+yPsZtIZ/5e4BiVOqYvD03fQMZ84naEw/K7CJtvMwVPfjyQ8LirSf+x/3DBinKCZdvstaV3haaWcxcapoYUcJCge8+uKviAmS4T7uN78nmaQepTuAO0HMRl9fpXap+btx1fMOLyz0l54ht8r2xsGEguwGCeER+cVrTrvx/vW0Gok+zz/JLNLsKASC8esSYnWykOG2PbuFMmoJSIazKiTu++f8+G6uG0f4FHeVvtCOEUnua5RyMSmYqLHNQekXYfIMS1w==; s=purelymail2; d=spwhitton.name; v=1; bh=FCOjQYKFK71LPfoQsJ7SHIqqi9fZYDgOPd2F/PPu9pY=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=FDldLOZFWP0PVHXYK6Xk0c98HQ5rbUcAnx4Slf9E0T89osqm+6UkLfFuFyXSbUt6yATKMqLhidEpVO6TpMNC27Z4kYzxsfzdZaI6SgZ5Mn9AlQJmDk3cktAB9lxrLhE01zggiC8BqKVvNt6wSzHkz6qFsOCIwWCkUYZ+1QPReny7atjolYBnvGgOjojZ+6S7tVK7554u/T1om5Gj8E0tzm4VFESudBQeJHKHLcKKfZAJDXybjPdXjrl0MyDqSm4OkAcDGtPrL2Mj3oxzGrTiWauIZ9UWJjRKazzJomqirDiQ5Gr4BHK1ctcXTrQzJ/z8Jkq9VKUbJUHbZK09Ql4+hg==; s=purelymail2; d=purelymail.com; v=1; bh=FCOjQYKFK71LPfoQsJ7SHIqqi9fZYDgOPd2F/PPu9pY=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -788004889; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sun, 27 Jul 2025 08:42:32 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 7E7D89405F9; Sun, 27 Jul 2025 09:42:31 +0100 (BST) From: Sean Whitton In-Reply-To: <86qzy3ysce.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> Date: Sun, 27 Jul 2025 09:42:31 +0100 Message-ID: <87v7nekoso.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Sat 26 Jul 2025 at 04:49pm +03, Eli Zaretskii wrote: > I don't understand the question. The test files are compiled when the > test is run, if the .elc file is outdated. But if you just do 'make' in the root of the source tree, they're not recompiled, right? Otherwise I would have seen and fixed the warning. Is that deliberate? Even if we don't run the tests as part of the build, we could compile them, and therefore be more likely to notice problems like this. > Test vc-test-git07-other-working-trees condition: > (file-missing "Opening output file" "No such file or directory" > "/nonexistent/.emacs.d/projects.eld") > FAILED 24/56 vc-test-git07-other-working-trees (0.120713 sec) at lisp/vc/vc > > Maybe this fails because my Git is very old? (It does support > worktrees, though.) If you could show a series of shell commands this > test invokes, I could perhaps run them from the shell and see what > happens. > [...] > OK, did that (perhaps this should be in the comments to the test?). > But the test is still skipped. I think I understand why: we run the > test suite with a bogus HOME directory, so the real ~/.hgrc is not > used, and "hg share" says "unknown command". I see the same on > GNU/Linux, so this is not specific to Windows. Does the test work for > you? Thanks, I didn't see these issues previously because I had been running the tests only interactively. Now rectified that and sorted out enabling the share extension for hg and fixed the /nonexistent/.emacs.d/project.eld issue. The tests still do not pass because after executing the line ;; Test `move-working-tree'. (vc-move-working-tree backend second third) there is then an error, at some point: error in process sentinel: Setting current directory: No such file or directory, /tmp/vc-testfFGMCu/second/ I haven't yet been able to determine what is causing this process sentinel left behind in the 'second' working tree (that the test renames out of existence). -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 27 Jul 2025 09:18:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175360785111192 (code B ref 79024); Sun, 27 Jul 2025 09:18:02 +0000 Received: (at 79024) by debbugs.gnu.org; 27 Jul 2025 09:17:31 +0000 Received: from localhost ([127.0.0.1]:48338 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ufxVa-0002uQ-9c for submit@debbugs.gnu.org; Sun, 27 Jul 2025 05:17:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52916) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ufxVX-0002tt-To for 79024@debbugs.gnu.org; Sun, 27 Jul 2025 05:17:29 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ufxVS-00067j-4Y; Sun, 27 Jul 2025 05:17:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=d1rtRQ8OMl/Qy2W4w5m5uQBKQYD1CON37nNdU/RvWwc=; b=GKEC0gqwJ0i5 Tmuh3j78mueWCIf0sxmvHpBnXMQAfOWXCSHZytHMho/XYH850QeJdHlgmHOQdtL0FZGijivOum1iX Wj+6lHCaYSOtHjTS6kyNCKc9bsBIqLXX9o1MfF4h7VjhvWKIznh7IcmLVWLhYDd7zhtz8aKmp2cNk vdsilg9Nkz6QCBuc5EWSpDWnhhTvr22JEUWqq/wZEi7SYpcAaGbYibsKFJa6dSiqOCfa4o5WZ3fUY GxGft0FxpOsZXPjFM7dOasNVseakeR8GdDs7zHjOlOiU6/VcCnu6lNRtz7TbQ3pQR2KVTyp2iM5cy izQhyS5pFvcB5I21ZipUew==; Date: Sun, 27 Jul 2025 12:17:11 +0300 Message-Id: <86ms8qxaaw.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87v7nekoso.fsf@zephyr.silentflame.com> (message from Sean Whitton on Sun, 27 Jul 2025 09:42:31 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Sun, 27 Jul 2025 09:42:31 +0100 > > Hello, > > On Sat 26 Jul 2025 at 04:49pm +03, Eli Zaretskii wrote: > > > I don't understand the question. The test files are compiled when the > > test is run, if the .elc file is outdated. > > But if you just do 'make' in the root of the source tree, they're not > recompiled, right? Otherwise I would have seen and fixed the warning. "make" builds Emacs, but doesn't run the test suite. This is similar to what other projects do: to run the test suite, you need to say "make check". Since the entire test suite takes quite some time to run, I usually run only the relevant test(s), like this: make -C test lisp/some-tests (assuming the test file is test/lisp/some-tests.el). Some changes need to run more than one test file. > Is that deliberate? Even if we don't run the tests as part of the > build, we could compile them, and therefore be more likely to notice > problems like this. I'm not sure it would be TRT to have "make" do anything in the test suite, no. > > Test vc-test-git07-other-working-trees condition: > > (file-missing "Opening output file" "No such file or directory" > > "/nonexistent/.emacs.d/projects.eld") > > FAILED 24/56 vc-test-git07-other-working-trees (0.120713 sec) at lisp/vc/vc > > > > Maybe this fails because my Git is very old? (It does support > > worktrees, though.) If you could show a series of shell commands this > > test invokes, I could perhaps run them from the shell and see what > > happens. Paul now posted an almost identical failure, so I don't think this has anything to do with my Git version. > > OK, did that (perhaps this should be in the comments to the test?). > > But the test is still skipped. I think I understand why: we run the > > test suite with a bogus HOME directory, so the real ~/.hgrc is not > > used, and "hg share" says "unknown command". I see the same on > > GNU/Linux, so this is not specific to Windows. Does the test work for > > you? > > Thanks, I didn't see these issues previously because I had been running > the tests only interactively. > Now rectified that and sorted out enabling the share extension for hg > and fixed the /nonexistent/.emacs.d/project.eld issue. > > The tests still do not pass because after executing the line > > ;; Test `move-working-tree'. > (vc-move-working-tree backend second third) > > there is then an error, at some point: > > error in process sentinel: Setting current directory: No such file or directory, /tmp/vc-testfFGMCu/second/ > > I haven't yet been able to determine what is causing this process > sentinel left behind in the 'second' working tree (that the test renames > out of existence). That's not what I see here. The Git test still fails in the same way: Registering (foo)... Registering (foo)... done Mark set Press C-c C-c when you are done editing. Enter a change comment. Type C-c C-c when done Checking in foo... Test vc-test-git07-other-working-trees backtrace: signal(error ("Failed (status 128): git --no-pager commit -F c:/User error("Failed (%s): %s" "status 128" "git --no-pager commit -F c:/Us vc-do-command("*vc*" 0 "git" ("foo") "--no-pager" "commit" "-F" "c:/ apply(vc-do-command "*vc*" 0 "git" ("foo") "--no-pager" ("commit" "- vc-git-command(nil 0 ("foo") "commit" "-F" "c:/Users/EliZ/AppData/Lo apply(vc-git-command nil 0 ("foo") ("commit" "-F" "c:/Users/EliZ/App vc-git-checkin(("foo") #("Summary: Testing other working trees\n" 0 apply(vc-git-checkin (("foo") #("Summary: Testing other working tree vc-call-backend(Git checkin ("foo") #("Summary: Testing other workin #f(compiled-function (backend rev patch-string files comment) #) vc-finish-logentry() funcall-interactively(vc-finish-logentry) call-interactively(vc-finish-logentry) log-edit-done() (let (vc-async-checkin) (log-edit-done)) (save-current-buffer (set-buffer (find-file-noselect tmp-name)) (vc- (let* ((first (file-name-as-directory (expand-file-name "first" defa (progn (add-hook 'vc-test--cleanup-hook (let ((dir default-directory (unwind-protect (progn (add-hook 'vc-test--cleanup-hook (let ((dir d (let ((vc-handled-backends (list backend)) (default-directory (file- (progn (let ((vc-handled-backends (list backend)) (default-directory (unwind-protect (progn (let ((vc-handled-backends (list backend)) (d (let* ((coding-system-for-write nil) (temp-file (file-name-as-direct vc-test--other-working-trees(Git) (let ((vc-hg-global-switches (cons "--config=extensions.share=" vc-h #f(lambda () :dynbind (let ((value-478 (gensym "ert-form-evaluation- #f(compiled-function () #)() handler-bind-1(#f(compiled-function () # ert--run-test-internal(#s(ert--test-execution-info :test ... :result ert-run-test(#s(ert-test :name vc-test-git07-other-working-trees :do ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp)))) ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n command-line-1(("-L" ";." "-l" "ert" "--eval" "(setq treesit-extra-l command-line() normal-top-level() Test vc-test-git07-other-working-trees condition: (error "Failed (status 128): git --no-pager commit -F c:/Users/EliZ/AppData/Local/Temp/git-msgexkgWo --only -- foo") FAILED 24/56 vc-test-git07-other-working-trees (0.357570 sec) at lisp/vc/vc-tests/vc-tests.el:1 And the corresponding Hg test fails like this: Registering (foo)... Registering (foo)... done Mark set Press C-c C-c when you are done editing. Enter a change comment. Type C-c C-c when done Checking in foo... Test vc-test-hg07-other-working-trees backtrace: signal(error ("Failed (status 255): hg --config ui.report_untrusted= error("Failed (%s): %s" "status 255" "hg --config ui.report_untruste vc-do-command("*vc*" 0 "hg" ("foo") "--config" "ui.report_untrusted= apply(vc-do-command ("*vc*" 0 "hg" ("foo") "--config" "ui.report_unt vc-hg--command-1(vc-do-command ("*vc*" 0 "hg" ("foo")) ("commit" "-m vc-hg-command(nil 0 ("foo") "commit" "-m" "Testing other working tre apply(vc-hg-command nil 0 ("foo") ("commit" "-m" "Testing other work vc-hg-checkin(("foo") #("Summary: Testing other working trees\nTesti apply(vc-hg-checkin (("foo") #("Summary: Testing other working trees vc-call-backend(Hg checkin ("foo") #("Summary: Testing other working #f(compiled-function (backend rev patch-string files comment) #) vc-finish-logentry() funcall-interactively(vc-finish-logentry) call-interactively(vc-finish-logentry) log-edit-done() (let (vc-async-checkin) (log-edit-done)) (save-current-buffer (set-buffer (find-file-noselect tmp-name)) (vc- (let* ((first (file-name-as-directory (expand-file-name "first" defa (progn (add-hook 'vc-test--cleanup-hook (let ((dir default-directory (unwind-protect (progn (add-hook 'vc-test--cleanup-hook (let ((dir d (let ((vc-handled-backends (list backend)) (default-directory (file- (progn (let ((vc-handled-backends (list backend)) (default-directory (unwind-protect (progn (let ((vc-handled-backends (list backend)) (d (let* ((coding-system-for-write nil) (temp-file (file-name-as-direct vc-test--other-working-trees(Hg) (let ((vc-hg-global-switches (cons "--config=extensions.share=" vc-h #f(lambda () :dynbind (let ((value-511 (gensym "ert-form-evaluation- #f(compiled-function () #)() handler-bind-1(#f(compiled-function () # ert--run-test-internal(#s(ert--test-execution-info :test ... :result ert-run-test(#s(ert-test :name vc-test-hg07-other-working-trees :doc ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp)))) ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n command-line-1(("-L" ";." "-l" "ert" "--eval" "(setq treesit-extra-l command-line() normal-top-level() Test vc-test-hg07-other-working-trees condition: (error "Failed (status 255): hg --config ui.report_untrusted=0 --config=extensions.share= commit -m Testing other working trees\n\nTesting other working trees\n foo") FAILED 32/56 vc-test-hg07-other-working-trees (0.424025 sec) at lisp/vc/vc-tests/vc-tests.el:1 I think that's because MS-Windows doesn't support command lines with embedded newlines (see the -m switch above), so we need to use the same trick with a temporary file as we do in Git. On GNU/Linux, the Git test fails like this: Checking in foo... Checking in foo...done Test vc-test-git07-other-working-trees backtrace: signal(error ("Failed (status 129): git --no-pager worktree list --p apply(signal (error ("Failed (status 129): git --no-pager worktree l (setq value-239 (apply fn-237 args-238)) (unwind-protect (setq value-239 (apply fn-237 args-238)) (setq form- (if (unwind-protect (setq value-239 (apply fn-237 args-238)) (setq f (let (form-description-241) (if (unwind-protect (setq value-239 (app (let ((value-239 'ert-form-evaluation-aborted-240)) (let (form-descr (let* ((fn-237 #'equal) (args-238 (condition-case err (list (list se (save-current-buffer (set-buffer (find-file-noselect tmp-name)) (let (let* ((first (file-name-as-directory (expand-file-name "first" defa (progn (add-hook 'vc-test--cleanup-hook (let ((dir default-directory (unwind-protect (progn (add-hook 'vc-test--cleanup-hook (let ((dir d (let ((vc-handled-backends (list backend)) (default-directory (file- (progn (let ((vc-handled-backends (list backend)) (default-directory (unwind-protect (progn (let ((vc-handled-backends (list backend)) (d (let* ((coding-system-for-write nil) (temp-file (file-name-as-direct vc-test--other-working-trees(Git) (let ((vc-hg-global-switches (cons "--config=extensions.share=" vc-h #f(lambda () :dynbind (let ((value-478 (gensym "ert-form-evaluation- #f(compiled-function () #)() handler-bind-1(#f(compiled-function () # ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test ert-run-test(#s(ert-test :name vc-test-git07-other-working-trees :do ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp)))) ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n command-line-1(("-L" ":." "-l" "ert" "--eval" "(setq treesit-extra-l command-line() normal-top-level() Test vc-test-git07-other-working-trees condition: (error "Failed (status 129): git --no-pager worktree list --porcelain -z") FAILED 24/56 vc-test-git07-other-working-trees (0.191993 sec) at lisp/vc/vc-tests/vc-tests.el:1 And hg07-other-working-trees indeed fails like you say: Checking in foo... Checking in foo...done error in process sentinel: Setting current directory: No such file or directory, /tmp/vc-testC5QRAj/second/ From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 27 Jul 2025 19:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175364562923586 (code B ref 79024); Sun, 27 Jul 2025 19:48:02 +0000 Received: (at 79024) by debbugs.gnu.org; 27 Jul 2025 19:47:09 +0000 Received: from localhost ([127.0.0.1]:51906 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ug7Kv-00068L-34 for submit@debbugs.gnu.org; Sun, 27 Jul 2025 15:47:09 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:41148) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ug7Ks-00067n-CR for 79024@debbugs.gnu.org; Sun, 27 Jul 2025 15:47:07 -0400 DKIM-Signature: a=rsa-sha256; b=aJ81sZHFpqyiKBDglbRs2jB00exQ4otVjPvbGhGKdVHea7sLrsFeg4miomu8s8hIUn1KFfjg+wnVGocHrUjQWVdBSWxdCN5Oi/e/hUF72gEdWY+7CbjqP0snLxoh8ZhzraqiHW4IcqnfFZpNjepDFCF0cuB8y3Sgn3PlrKucunhdqXAIJtSfp8itm2DcmHN9tH2hV3zubeaESB1LTT8bgWs9sAK8diGzGqErf2rILZIq2930bjUnydHHKGoJXAMmN2/dyoNq9ST0IOlWW2pq4kbNdQbpzNZiHj/K2ExikdGDadkBdVjLemy7MvN7Eu5LJ83Cyxjlz8oJ7y7RaUUroA==; s=purelymail2; d=spwhitton.name; v=1; bh=iusuuTwWVthFmADRx6p3SaNLQUBlJfGb8iorJC+TYGw=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=UzOXm1RohUY/flLgFDrC73fXT+9dm6lwqzkbGgGUMkqDfr3nbDF2JFOmotzLVn2Ffrj9FqK0eAgVll7dP7GBKJdjsOFprEtLm6tIA8LXsbQQ4HuJ+4iMTSzgz+44DHVgw1XRBJmlMEdC+Wgr2gTp6lhcC9l6VuZZyrzwxXZtaHoAdM2R80v8BohNJV8AisvZuNZlkt1BKLV6AZIyR9VeBtXYfTYiRgXNuxfW/muTIV6tWnUcQhcq93D5oFmZHg3F2IJ99/uo0SG+AXde8RSeEzX3XfZNIBLKbrZ7/OIcHj+ba1Lz90Vqf3+SAplyyFnnnH5vXCt6fZIxQ7geZbgVeQ==; s=purelymail2; d=purelymail.com; v=1; bh=iusuuTwWVthFmADRx6p3SaNLQUBlJfGb8iorJC+TYGw=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1697225161; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sun, 27 Jul 2025 19:46:57 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 9718E9409D9; Sun, 27 Jul 2025 20:46:56 +0100 (BST) From: Sean Whitton In-Reply-To: <86ms8qxaaw.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> Date: Sun, 27 Jul 2025 20:46:56 +0100 Message-ID: <8734ahl8lr.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.0 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.0 (--) Hello, On Sun 27 Jul 2025 at 12:17pm +03, Eli Zaretskii wrote: > "make" builds Emacs, but doesn't run the test suite. This is similar > to what other projects do: to run the test suite, you need to say > "make check". > > Since the entire test suite takes quite some time to run, I usually > run only the relevant test(s), like this: > > make -C test lisp/some-tests > > (assuming the test file is test/lisp/some-tests.el). Some changes > need to run more than one test file. Right. But other projects I've worked with often always build the tests even if they don't run them. But I can see arguments against doing that, too. > Paul now posted an almost identical failure, so I don't think this has > anything to do with my Git version. Agreed. I pushed a fix just now which makes all the tests pass for me on GNU/Linux. If that doesn't also fix the Git tests for you on Windows, then I'm not sure what else could be wrong. As for Mercurial, I can implement the temporary file thing again, but I'd like to know about line endings first. If you do 'hg init' in a temporary directory, 'echo foo >bar', put a commit message containing DOS line breaks in a temporary file, and do 'hg commit bar --logfile=temp', does the commit message that gets recorded look correct? With Git we have to switch back to Unix line endings while writing out the temporary file because Git expects that; I would assume Mercurial does not, but I'm not sure. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 28 Jul 2025 12:32:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175370589132677 (code B ref 79024); Mon, 28 Jul 2025 12:32:01 +0000 Received: (at 79024) by debbugs.gnu.org; 28 Jul 2025 12:31:31 +0000 Received: from localhost ([127.0.0.1]:55137 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ugN0t-0008Uz-4D for submit@debbugs.gnu.org; Mon, 28 Jul 2025 08:31:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36072) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ugN0p-0008UZ-A1 for 79024@debbugs.gnu.org; Mon, 28 Jul 2025 08:31:28 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ugN0i-0002sD-Nr; Mon, 28 Jul 2025 08:31:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=6JeLINzJlfYo+PjLL+a06CpY6xVh4PUeNrFy827xygk=; b=lVQ6qSJPRpI9 k6FCIO2l/4Jr3z+xEieWuIbZESpdJVPwELrhtiYDv/9QRz7X0M3VdJtjf79vrWrU0fej2bjrXd/do AoxmZblTCIJhzvm/6MvlY/jED61meeqYyk4Mb9hS8KrfuY2CZ2tNLtCs16sGy9bBfuH3BFahTUrM4 0oWW6HU7aOa3IwPKmFY9NMiuuOUa2Kw7OHGQUCPLARY8pArgoQfAooqH8shMJIbqH6lYnTLcHDcya qmr5MTomU2WdfrZkAV5ILa8ovuyOiNUgk1rY0SOVDJGhcCHKDGOwMnsst2lCV6Gn5cXP9j83FVChV Pt+Ej0suI3GqSMgmJOZaug==; Date: Mon, 28 Jul 2025 15:30:50 +0300 Message-Id: <86ecu0xzt1.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <8734ahl8lr.fsf@zephyr.silentflame.com> (message from Sean Whitton on Sun, 27 Jul 2025 20:46:56 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Sun, 27 Jul 2025 20:46:56 +0100 > > > Since the entire test suite takes quite some time to run, I usually > > run only the relevant test(s), like this: > > > > make -C test lisp/some-tests > > > > (assuming the test file is test/lisp/some-tests.el). Some changes > > need to run more than one test file. > > Right. But other projects I've worked with often always build the tests > even if they don't run them. Some do, some don't. > I pushed a fix just now which makes all the tests pass for me on > GNU/Linux. It still fails on GNU/Linux for me: Test vc-test-git07-other-working-trees condition: (error "Failed (status 129): git --no-pager worktree list --porcelain -z") FAILED 24/56 vc-test-git07-other-working-trees (0.145203 sec) at lisp/vc/vc-tests/vc-tests.el:1 > If that doesn't also fix the Git tests for you on Windows, > then I'm not sure what else could be wrong. Yes, it still faisl on Windows, with the same error as previously: Test vc-test-git07-other-working-trees condition: (error "Failed (status 128): git --no-pager commit -F c:/Users/EliZ/AppData/Local/Temp/git-msgLSkxp8 --only -- foo") FAILED 24/56 vc-test-git07-other-working-trees (0.343783 sec) at lisp/vc/vc-tests/vc-tests.el:1 Please show the Git commands we issue during this test, and I will try running them from the shell to see what's going on and why. > As for Mercurial, I can implement the temporary file thing again, but > I'd like to know about line endings first. > > If you do 'hg init' in a temporary directory, 'echo foo >bar', put a > commit message containing DOS line breaks in a temporary file, and do > 'hg commit bar --logfile=temp', does the commit message that gets > recorded look correct? How do I determine whether the recorded log message "looks correct"? > With Git we have to switch back to Unix line endings while writing out > the temporary file because Git expects that; I would assume Mercurial > does not, but I'm not sure. I don't think it matters with Mercurial, and it can never do any harm to use Unix EOLs, I think. A more important question is the encoding: does hg expect the commit log messages to be in UTF-8, or does it not care, or something else? From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 28 Jul 2025 19:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175373254216498 (code B ref 79024); Mon, 28 Jul 2025 19:56:02 +0000 Received: (at 79024) by debbugs.gnu.org; 28 Jul 2025 19:55:42 +0000 Received: from localhost ([127.0.0.1]:57474 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ugTwj-0004I0-PC for submit@debbugs.gnu.org; Mon, 28 Jul 2025 15:55:42 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:47706) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ugTwh-0004Hf-13 for 79024@debbugs.gnu.org; Mon, 28 Jul 2025 15:55:40 -0400 DKIM-Signature: a=rsa-sha256; b=aBRIH0w5tjLleufflc7SjTG0FHe3r2uAtVQQM7eVSojbgNxTM1NEvUCzCMSRZxzRwbxgPvXT+vbm1YJaaV/MWfeN2r6xvgm/ynQnivjGZwAGcyNIHPtjv6oEAQDVarpawAaBehIMmrZxAqBjs8EmNOZKJjR12n/AbYEpxu9iQE0Ki294/hA6FrAYkmwJI4JMBLlQ6KlJEs0+fUH+Cnt96WqHTkem4l1uDhHuudH5UgkdkjDbrFtj6svnKA63PvZF72ulDB8/UcIC8eYB1unMhQMPbLS0Wp60gyJ2amb9AgC+GPTQcotO0QPPtoBtcDI0l9SuaaHStqAqwRbVETI68g==; s=purelymail2; d=spwhitton.name; v=1; bh=BLHtgTHRr3eGim6Fs1G55FsoWZ/NT7qaT/B4FnS36lA=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=O8UPDEm5CnehargjS5mF/hFaCQ04q9l99T0xMS2x1ptWANqa+kNbuTDLJ1hDv9JVAppYoBmP6YJqskgHKjjI06NRsYxkOMhikvyFG7Y53jwoqKimxtHfvg5sx+URIsHSAq04cemf+DT8UvjQD+Z4SP0OgoGirmDweg9T9NyNsADUCbuBJLS8ZMnWzx6fYJtrhQto2CcGKZqiJht2Y4Yv/clgSi6RR4qOh6gQbKwEVCIPoXWRYQ9I2WMH2BXOkgtJQIgtO8gCkunZcKzT5Rcw/gerX5vSkEaTEzkIfQS3bXFS4sZI2JT5G6xsAjOq+p9/s51MmIG+C37tPdCcAzkAxw==; s=purelymail2; d=purelymail.com; v=1; bh=BLHtgTHRr3eGim6Fs1G55FsoWZ/NT7qaT/B4FnS36lA=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1906575412; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 28 Jul 2025 19:55:32 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 55DB6941E99; Mon, 28 Jul 2025 20:55:32 +0100 (BST) From: Sean Whitton In-Reply-To: <86ecu0xzt1.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> Date: Mon, 28 Jul 2025 20:55:32 +0100 Message-ID: <87y0s8hyyz.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Mon 28 Jul 2025 at 03:30pm +03, Eli Zaretskii wrote: >> I pushed a fix just now which makes all the tests pass for me on >> GNU/Linux. > > It still fails on GNU/Linux for me: > > Test vc-test-git07-other-working-trees condition: > (error > "Failed (status 129): git --no-pager worktree list --porcelain -z") > FAILED 24/56 vc-test-git07-other-working-trees (0.145203 sec) at lisp/vc/vc-tests/vc-tests.el:1 > >> If that doesn't also fix the Git tests for you on Windows, >> then I'm not sure what else could be wrong. > > Yes, it still faisl on Windows, with the same error as previously: > > Test vc-test-git07-other-working-trees condition: > (error > "Failed (status 128): git --no-pager commit -F c:/Users/EliZ/AppData/Local/Temp/git-msgLSkxp8 --only -- foo") > FAILED 24/56 vc-test-git07-other-working-trees (0.343783 sec) at lisp/vc/vc-tests/vc-tests.el:1 > > Please show the Git commands we issue during this test, and I will try > running them from the shell to see what's going on and why. Okay, based on adding some tracing to vc-git-command and vc-git--call, and inserting 'mv' and 'cd' commands to correspond to other things the test does, this is what I have for you: mkdir first cd first git init # create 'foo' git --no-pager ls-files -c -z -- foo git --no-pager ls-tree --name-only -z HEAD -- foo git update-index --add -- foo git --no-pager ls-files -c -z -- foo git --no-pager status --porcelain -z --untracked-files --ignored -- foo git --no-pager rev-parse HEAD git --no-pager symbolic-ref HEAD git commit -F c:/Users/... --only -- foo # make a commit msg temp file git --no-pager rev-parse HEAD git for-each-ref --format=%(refname) -- nil git worktree add --detach ../second/ git worktree prune git worktree list --porcelain -z cd ../second git worktree prune git worktree list --porcelain -z cd ../first mv ../second ../third git worktree repair git worktree prune git worktree list --porcelain -z cd ../third mv ../first ../second git worktree repair git worktree prune git worktree list --porcelain -z mv ../second ../first git worktree repair cd ../first git update-index --refresh git --no-pager rev-parse --verify HEAD git diff-index --relative -z -M HEAD -- git ls-files -z -d -- git ls-files -z -u -- git ls-files -z -o --exclude-standard -- git worktree remove -f ../third/ >> As for Mercurial, I can implement the temporary file thing again, but >> I'd like to know about line endings first. >> >> If you do 'hg init' in a temporary directory, 'echo foo >bar', put a >> commit message containing DOS line breaks in a temporary file, and do >> 'hg commit bar --logfile=temp', does the commit message that gets >> recorded look correct? > > How do I determine whether the recorded log message "looks correct"? >> With Git we have to switch back to Unix line endings while writing out >> the temporary file because Git expects that; I would assume Mercurial >> does not, but I'm not sure. > > I don't think it matters with Mercurial, and it can never do any harm > to use Unix EOLs, I think. Okay. > A more important question is the encoding: does hg expect the commit > log messages to be in UTF-8, or does it not care, or something else? makes it sound like the file is assumed to be in the local encoding and then gets converted. However, that page has not been updated for ten years. There is an option --encoding that one can pass. It defaults to utf-8. That makes it seem like we could write out the commit message in UTF-8 and know it'll be okay. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 29 Jul 2025 02:17:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Spencer Baugh , Sean Whitton Cc: 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175375539432217 (code B ref 79024); Tue, 29 Jul 2025 02:17:01 +0000 Received: (at 79024) by debbugs.gnu.org; 29 Jul 2025 02:16:34 +0000 Received: from localhost ([127.0.0.1]:58870 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ugZtJ-0008NW-IZ for submit@debbugs.gnu.org; Mon, 28 Jul 2025 22:16:34 -0400 Received: from fhigh-a4-smtp.messagingengine.com ([103.168.172.155]:54303) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ugZtG-0008Mx-Ko for 79024@debbugs.gnu.org; Mon, 28 Jul 2025 22:16:31 -0400 Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfhigh.phl.internal (Postfix) with ESMTP id 2B3B714000D5; Mon, 28 Jul 2025 22:16:25 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-10.internal (MEProxy); Mon, 28 Jul 2025 22:16:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1753755385; x=1753841785; bh=db8PA/WYSMps0aNe2ZlZiU5AmRyjUGlYXKwqJ3Rqq74=; b= Rq7ggmtvmcEph1Uq4vGP//hFii8ui8WiGeon5WWsLRRs11ppmOKKTbcc+5LMliUq 1Fxpc2w0qXnS/4Ee5Ja23Ow7A1LGyPMQlfAmzXDzpdDQuX2H5Z3TVoz71X5vG04z v1sSdTFWCkxmFQvM12jq86ZKJvkiPAbnWJWC9El83WtUBHViCwCpMTkzAK5EXr1z JQOsWEGMWyI7ktdKshM+MeoPMJCzS1kS+BpJmJQOUpbslsN3RXgL4J5SEEr6NvH+ mNzOj7JEyBGORhKNQtddUiSGe1Zc3TT9JzMFaf5fLsXxhQPclctYbPzrD1IMwmc+ fTQatkgPePhsYwAQ3CzKhQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1753755385; x= 1753841785; bh=db8PA/WYSMps0aNe2ZlZiU5AmRyjUGlYXKwqJ3Rqq74=; b=d SmKQ/bQmm58hJDWvNHjEOygqAU8/vYskUTZmvQJAp5KNvfg2Hw8uJ7HrO3tge/wU phI+hKZJnSgL6dQGTC3NWME+wUJ7HALrVPe4/US1F8huqJzjDTHDXqaiNGEYTzNu wiqJwgVHgGd72LCh6DZlz/GEtobCUGs6Cg1bO4Jibr4nK3qhDy3DmE2kh8dZNJt2 K7t3glgz47Ak7NESmbve2xBQ3bytOoXjOHZgQAoeJg14QiumdfQJfmcDGymmxO4p 9lwrPDYZlC+lQQD9FZ9m6DTG2HsgIchrItp7cKgArkFtRk2AWlWg4Mk7/hzRDjqP 0MkyLdRBRACMh+TOBsvZA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdelfeekfecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpefkffggfgfuvfevfhfhjggtgfesthejredttddvjeenucfhrhhomhepffhmihhtrhih ucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtthgvrh hnpeetudeljeegheetgfehgeejkeeuhedvveeikeeufedtvddtveefhfdvveegudejheen ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumhhith hrhiesghhuthhovhdruggvvhdpnhgspghrtghpthhtohepfedpmhhouggvpehsmhhtphho uhhtpdhrtghpthhtohepshgsrghughhhsehjrghnvghsthhrvggvthdrtghomhdprhgtph htthhopehsphifhhhithhtohhnsehsphifhhhithhtohhnrdhnrghmvgdprhgtphhtthho peejledtvdegseguvggssghughhsrdhgnhhurdhorhhg X-ME-Proxy: Feedback-ID: i07de48aa:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 28 Jul 2025 22:16:23 -0400 (EDT) Message-ID: <2070f80e-1564-4e53-9afa-38ee8e1e1b29@gutov.dev> Date: Tue, 29 Jul 2025 05:16:21 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> Content-Language: en-US From: Dmitry Gutov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi all, On 25/07/2025 21:43, Spencer Baugh wrote: >> I don't think implementing or not implementing it for Hg implies locking >> into any API, and I've already implemented it, so I might as well >> install it, I think. > Well... if we didn't implement worktree-switching for vc-hg, then we > could indeed have a reliable "other-working-trees" backend function, > instead of "known-other-working-trees". That's the lock-in, I guess. A little late to this discussion, but if there is no strong conclusion on this question, personally a UI based on "other-working-trees" sounds a bit more useful: the user sees a fuller list, without having to visit each worktree first before it would be visible there. It might be less friendly to some usage scenarios where people have a lot of worktrees, keeping the old ones around for a while. I'm not sure how popular is that. Seeing an old entry in the list might be a reminder to delete one, however. So it can be something to decide based on the UI priorities. As for Mercurial, maybe it's not that important to prioritize given Git's prevalence. But it could also have a halfway implementation - like scanning the parent directory of the current worktree for siblings (might not be great for large lists of worktrees, or more complex sets of worktrees), or reading the contents of some special file somewhere that would have to be written to manually (backend methods in vc-hg could also write to it, I suppose). From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 29 Jul 2025 02:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton , 79024@debbugs.gnu.org Cc: sbaugh@janestreet.com Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.17537571939548 (code B ref 79024); Tue, 29 Jul 2025 02:47:02 +0000 Received: (at 79024) by debbugs.gnu.org; 29 Jul 2025 02:46:33 +0000 Received: from localhost ([127.0.0.1]:59022 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ugaML-0002Tu-Ep for submit@debbugs.gnu.org; Mon, 28 Jul 2025 22:46:33 -0400 Received: from fout-a5-smtp.messagingengine.com ([103.168.172.148]:34295) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ugaMH-0002TS-UP for 79024@debbugs.gnu.org; Mon, 28 Jul 2025 22:46:30 -0400 Received: from phl-compute-12.internal (phl-compute-12.phl.internal [10.202.2.52]) by mailfout.phl.internal (Postfix) with ESMTP id 2A82FEC01D8; Mon, 28 Jul 2025 22:46:24 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-12.internal (MEProxy); Mon, 28 Jul 2025 22:46:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1753757184; x=1753843584; bh=z245WwIgfUjZx0Gs6bRsua0eR0fSzdqjQOR9BPNfmhI=; b= WReCs2b226FekOhJ393P6aowJZ3O7bXktjB+wm1uEnoASHNgbiRmp9TrOWJKiouS ZKV432dRE3QQBSVqBB+CivlXXgSKTtaHC1e/rov1ldEzfXZ4GDcUhe7ddGqAsYXX LIQAbYy1vuKyMc2yw9jXuBqxf78l2TrQK7cPp89ghAGFRqUqonJQkcb4unXjmzuW Zup9wDFlcI7Wxd4KX+M3ncfqXoYwPUHi3U6zPftvm6WRBI8uNd1mvJpEHj8NBot9 b06wP0VG+xR76kYPNIhV1kjd+Qbv41TQQVGPkHyKlwIJWqpJ/fXjVCjhFE1EA9Uw YWRnFa4yQIHrMRCtc8Rywg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1753757184; x= 1753843584; bh=z245WwIgfUjZx0Gs6bRsua0eR0fSzdqjQOR9BPNfmhI=; b=K Q2FvFmZHygDXM30G4wib5Fjx8qxfRBPAaijnWHo5/K4yVpssjC5XOGMnG9Wrgp/6 L0RCup14RmKhqNMX8RmJmXftO2FKEFfrA9y5LSYZAS7s60P+Jcqw8BiOqAZEERQr IXpUFrL/fGJbVivtKcFC0/lB2wengOcj/ILra0FS+YJrKp9urNnjYYE7Riyteo0n Awb6cM7pYVTTQNQegGvGuaKZUpduR6TyA8C5KE2yv2TsaxK8k//D2dZWT9Efn5jQ YQOFz4VX5xb9DaNzLwwUk/K3ZQPbcKT2a2zude2/tnVUMNo3KOcMmDy5jskwWMnu zlGOmZJKTAeBcwTbi1KTw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdelfeekkecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpefkffggfgfuvfevfhfhjggtgfesthejredttddvjeenucfhrhhomhepffhmihhtrhih ucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtthgvrh hnpeetudeljeegheetgfehgeejkeeuhedvveeikeeufedtvddtveefhfdvveegudejheen ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumhhith hrhiesghhuthhovhdruggvvhdpnhgspghrtghpthhtohepfedpmhhouggvpehsmhhtphho uhhtpdhrtghpthhtohepshhpfihhihhtthhonhesshhpfihhihhtthhonhdrnhgrmhgvpd hrtghpthhtohepjeeltddvgeesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthho pehssggruhhghhesjhgrnhgvshhtrhgvvghtrdgtohhm X-ME-Proxy: Feedback-ID: i07de48aa:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 28 Jul 2025 22:46:22 -0400 (EDT) Message-ID: <834ce406-9414-4f4e-bc49-66e8c75f2b12@gutov.dev> Date: Tue, 29 Jul 2025 05:46:19 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird References: <87v7nt4qr9.fsf@zephyr.silentflame.com> Content-Language: en-US From: Dmitry Gutov In-Reply-To: <87v7nt4qr9.fsf@zephyr.silentflame.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 15/07/2025 14:50, Sean Whitton wrote: > - Does project.el need to know about these relationships between trees, > or do we leave it all up to VC? I think the latter. I.e., from > project.el's point of view, each working tree is its own project. Strictly speaking, any of the other worktree directories might not be recognized by project.el as projects, if the user had set up their own special backend and removed the default one. But we probably don't have to be concerned about this scenario too much, if otherwise we save a bunch of work in implementation. > - How are the bindings I've suggested? Intuitive enough? The bindinds look nice to me too. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 29 Jul 2025 13:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Dmitry Gutov Cc: Spencer Baugh , 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.1753795220943 (code B ref 79024); Tue, 29 Jul 2025 13:21:02 +0000 Received: (at 79024) by debbugs.gnu.org; 29 Jul 2025 13:20:20 +0000 Received: from localhost ([127.0.0.1]:33289 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ugkFg-0000F9-19 for submit@debbugs.gnu.org; Tue, 29 Jul 2025 09:20:20 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:60054) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ugkFd-0000Dm-Ce for 79024@debbugs.gnu.org; Tue, 29 Jul 2025 09:20:17 -0400 DKIM-Signature: a=rsa-sha256; b=ORg5S1uNNdGgJai6FlAumnp0r8zGo9SBUtbjmdbAwcUKJrND/L2QkQOZxAz5A+SokKB4TrIa/IiNIDVwGoKkGAFrgR8dRqQPJ5ySVA1l7R65jmKnXylZ1Nyl6IbX3BCqGjXLUWsZ01B4jJZst8uCVmmPJSVwZU0sisyH3ZLLf46PDd/Ky/q1WK0A37DLWnD4QSIwuzYN6uNFrnfemIPc94mX/CHUTZI2X5rhgddLRZpkCl3v4fgdpv2B/uQHlyA48XvO52JY7dv59bb04jywZvP1N6rDOl5Km88zn0q0Clmv6GpTxEumbfTinpv+SxEFHl+5sWKtQJM98PJyNM01Gg==; s=purelymail2; d=spwhitton.name; v=1; bh=fwMQI5w7KFesRb+1TWSDMdgO1+EgfZlWJW3SGSDagUk=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=JVKLLypSz2XkBamAul+Io1ak/OgB8fJwvpgq6fAQB1D9pdwbszVfOMJhfI8K8UIOU6IkOqpIBe+5nMePYe76YiQbALB4Lt8dd+vjgZGLOKN4ZuPZc4q8nYDMqYZv1UdqX/vWq/nct/2XVovWQjHTKkraC1jIjm7weJ3iRwzoIqwjNmmW5t16d7EQmtTL+BgWoG797PjG66CvBkUCxXRgqGMk68sxCrgpYMHSTmn9rcuPX+OYBOgUrfwex7+bjAqx4NMM4wjz/roPyhEYBWCI/Lkw8nqK6+rtcEYTy1aiWnbbTjBHSN0k11JBTUdXaTGZ4LvtO6sCENT6smDN7SMIxQ==; s=purelymail2; d=purelymail.com; v=1; bh=fwMQI5w7KFesRb+1TWSDMdgO1+EgfZlWJW3SGSDagUk=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 502096941; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Tue, 29 Jul 2025 13:20:08 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 7BE40940E58; Tue, 29 Jul 2025 14:20:07 +0100 (BST) From: Sean Whitton In-Reply-To: <2070f80e-1564-4e53-9afa-38ee8e1e1b29@gutov.dev> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87jz41swdi.fsf_-_@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <2070f80e-1564-4e53-9afa-38ee8e1e1b29@gutov.dev> Date: Tue, 29 Jul 2025 14:20:07 +0100 Message-ID: <8734af3zi0.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Tue 29 Jul 2025 at 05:16am +03, Dmitry Gutov wrote: > As for Mercurial, maybe it's not that important to prioritize given Git's > prevalence. But it could also have a halfway implementation - like scanning > the parent directory of the current worktree for siblings (might not be great > for large lists of worktrees, or more complex sets of worktrees), or reading > the contents of some special file somewhere that would have to be written to > manually (backend methods in vc-hg could also write to it, I suppose). These are interesting suggestions, thanks. We can see how people do with what's implemented now and potentially add these. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 29 Jul 2025 13:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: dmitry@gutov.dev Cc: 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.17537952981348 (code B ref 79024); Tue, 29 Jul 2025 13:22:02 +0000 Received: (at 79024) by debbugs.gnu.org; 29 Jul 2025 13:21:38 +0000 Received: from localhost ([127.0.0.1]:33306 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ugkGw-0000Le-0P for submit@debbugs.gnu.org; Tue, 29 Jul 2025 09:21:38 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:35602) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ugkGt-0000L8-Ji for 79024@debbugs.gnu.org; Tue, 29 Jul 2025 09:21:36 -0400 DKIM-Signature: a=rsa-sha256; b=G9pyUZEgfM15yr/X26kuYBzKJszlsUcTrZWhUHWb+atYA0yWWStDy/fvP4ih08USq/GHpelhZ+duzNPrYQxSzMJ6kM/e1SXBPzVehauWoBwmy0f2Y99HteIBSkCr3GAC+kVKC6clczUPmoVwP5nhW21GM8JUi3ZUFVxp4D9VUiUIWUqRlzYCGeu/0TpmHL+xl16qT+eEo0WMR0raEb6KIoGXn6m5/XEjDjVcXXUwE/4wJH2/XyGVcwbOZI5EFdYFr8gMlzvnNGFFuZfv+Lkck8W19jU8HWHY7609GrhjHiKaFf+bicekUgMq0IsOQrlDZ3Argibla6ZZ9d4BX+Iqcw==; s=purelymail2; d=spwhitton.name; v=1; bh=7UHPMZamvBQQYjxYhoy3RRO5BmAK7MBNvrFkZ9IRdqU=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=L+/lPdEYAhGDu149bGBOEqs4mRrL/NyWn4f1i8xDqM1DoKXDcERr4B9m7apUqbn6k0mRYK3BloUh+kaNhAww9rS49WiXKLEoPFG5JplWAAeA9WTQajEYrWYA5rtmpRBqNzoRVZrsGHeS250bf4snMQkDQmlt2qcASEZJ7TlWy7ztmG6cPPjfX2AuL4PZa3wCiUZDGW0PdNWwA7pzzfRXjjMrUMi/AHiHegmruWfEE9zigyZrjMR4q5erPk/CgO8pw1VBlbQJESpwucOLhx8AWYNqDwGdTp7PP6JhR9kwW/VRmoVvbMOX5pqcE6h7uI03AZKrhKrX1jh14PDAPD1A8w==; s=purelymail2; d=purelymail.com; v=1; bh=7UHPMZamvBQQYjxYhoy3RRO5BmAK7MBNvrFkZ9IRdqU=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 155881815; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Tue, 29 Jul 2025 13:21:28 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 29357940E58; Tue, 29 Jul 2025 14:21:27 +0100 (BST) From: Sean Whitton In-Reply-To: <87ldolzvq5.fsf@zephyr.silentflame.com> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> Date: Tue, 29 Jul 2025 14:21:27 +0100 Message-ID: <87wm7r2kvc.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello Dmitry, I think you missed this request for input here. Would you be able to take a look? Thanks. On Fri 18 Jul 2025 at 10:36am +01, Sean Whitton wrote: > Dmitry, what do you think about a new project-prompter-predicate which > project prompters should use to filter the list of projects offered? VC > could bind that to something which only lets through related worktrees. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 30 Jul 2025 02:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.17538423124273 (code B ref 79024); Wed, 30 Jul 2025 02:26:01 +0000 Received: (at 79024) by debbugs.gnu.org; 30 Jul 2025 02:25:12 +0000 Received: from localhost ([127.0.0.1]:37702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ugwVD-00016T-Ek for submit@debbugs.gnu.org; Tue, 29 Jul 2025 22:25:11 -0400 Received: from fout-b6-smtp.messagingengine.com ([202.12.124.149]:46995) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ugwVB-00015N-5f for 79024@debbugs.gnu.org; Tue, 29 Jul 2025 22:25:10 -0400 Received: from phl-compute-04.internal (phl-compute-04.phl.internal [10.202.2.44]) by mailfout.stl.internal (Postfix) with ESMTP id 6C61D1D021C9; Tue, 29 Jul 2025 22:25:03 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-04.internal (MEProxy); Tue, 29 Jul 2025 22:25:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1753842303; x=1753928703; bh=P9gsm3s3Ub45w/ToxGFTHlTAhyTvYIFdB9TPYSQEy1Q=; b= npxsM4MjXh4Uq4mBgO4CVdnOWa6giJ78wvAF/gbni3cyZZdjJuAUcAuATs1G5VTe f3/DIh5LJk7xnrrvHL34SWVMjPrAH2+uHHcRcNSCGAhFpvsEn82TRaSfHyfon+Kv sEbR7R5Av97Tm8bjHfOi9y/ov03ik88pf7UhkWqG3ZklYzcwOyNk8klLJrRyCA5i hLRIHEMl7AUOUJBezQOo5XiHsLZlFa/K/szdFxfb76WcL9O2P9/IthphHgsO0mTz RNMtfoWPs1lyaf4v9kVE5D8ztsq5F1m6MDLkGpSqVa/gSSRNCaWNrs5O/1B6flae VhM2tWdoEXOsnnkrXzQn9w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1753842303; x= 1753928703; bh=P9gsm3s3Ub45w/ToxGFTHlTAhyTvYIFdB9TPYSQEy1Q=; b=O P0LtJNt1J+gDjuB/JQu4fF+H/xClAmkaNqFe8r0DZTvEkCMk4w0VeojNZbfdbnGH S4ZXtRxrqQb4lFZNzN5Gk1mT0i0AAjyKrGW8YfEGxVWRWvVlSVw3gAh7lJqZyQO7 hYD8+uMlXFVLsfKm1izEarJQTHOzfrWYzztEgZGTiFXlsp05q7n6A8UuKoBRIMPS gLv+HQC8Pgql0FePzOSD6H48YNQOnUrwkf4+jjCyXBro3FUnpGlX0JmkXFmV2rxq 6VNEt8qSO2vSuI2FyugDZOR9t7MWAg/INwcvgh6+iLBlzsnGwGAVUvtOCTfpr9vl 0VVbusKjBOmLgo/L6ndhA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdelieejfecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpefkffggfgfuvfevfhfhjggtgfesthejredttddvjeenucfhrhhomhepffhmihhtrhih ucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtthgvrh hnpeetudeljeegheetgfehgeejkeeuhedvveeikeeufedtvddtveefhfdvveegudejheen ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumhhith hrhiesghhuthhovhdruggvvhdpnhgspghrtghpthhtohepvddpmhhouggvpehsmhhtphho uhhtpdhrtghpthhtohepshhpfihhihhtthhonhesshhpfihhihhtthhonhdrnhgrmhgvpd hrtghpthhtohepjeeltddvgeesuggvsggsuhhgshdrghhnuhdrohhrgh X-ME-Proxy: Feedback-ID: i07de48aa:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 29 Jul 2025 22:25:02 -0400 (EDT) Message-ID: Date: Wed, 30 Jul 2025 05:24:59 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87wm7r2kvc.fsf@zephyr.silentflame.com> Content-Language: en-US From: Dmitry Gutov In-Reply-To: <87wm7r2kvc.fsf@zephyr.silentflame.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Sean, On 29/07/2025 16:21, Sean Whitton wrote: > I think you missed this request for input here. Would you be able to > take a look? Thanks. > > On Fri 18 Jul 2025 at 10:36am +01, Sean Whitton wrote: > >> Dmitry, what do you think about a new project-prompter-predicate which >> project prompters should use to filter the list of projects offered? VC >> could bind that to something which only lets through related worktrees. I guess my answer is maybe. Ideally we should be able to think of some other usage scenarios as well, not just from this worktree feature. Maybe add them to the docstring. Questions about implementation: Will 'project-known-project-roots' use (and be affected by) that predicate? Could someone set it up one day and then later see a project-list entry stay around in the file but never come up in the prompt, or never be cleared by project-forget-zombie-projects? Also IIUC if we consider the "other-working-trees API" approach, I guess it wouldn't exactly fit as a solution, because we'd want to substitute the full list instead of filtering. (Is that right?) Then an alternative could be just a separate user option for the prompter function here. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 30 Jul 2025 11:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Dmitry Gutov Cc: 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175387322821402 (code B ref 79024); Wed, 30 Jul 2025 11:01:02 +0000 Received: (at 79024) by debbugs.gnu.org; 30 Jul 2025 11:00:28 +0000 Received: from localhost ([127.0.0.1]:39773 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uh4Xr-0005Z6-GD for submit@debbugs.gnu.org; Wed, 30 Jul 2025 07:00:27 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:58986) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uh4Xo-0005UV-3R for 79024@debbugs.gnu.org; Wed, 30 Jul 2025 07:00:25 -0400 DKIM-Signature: a=rsa-sha256; b=JP98Z6ik3qdWnrma0XbwwrWXsiFO5zaG//qHHzSIg3Va+GNJA0QWah3btVAtEfNsMJPBLuGH4S7AolN0IJWwVFlRS8Hva49FeqaRu0DRTTw6EcECtbniw4T1/dxHy+4/vcXPAL7jtnn38tIgWC1fh0vyufFZ3oUdXME7kIemcC58pkiJwy9t15InapFmEDKnV5/GztywVBhh9mMXWSn3mgPyiPppvIoWf78jH8jBHzZHaGRHwWYUcKVKwJMmEfJ7nhf+CEwtVfnkZjNYZtgNs3/Xwv6QdZdeEZzX52BDdJsgJoArGRjD2iuTHygW/Nt3tVMYezJJFZ3u6M/LzlsGWg==; s=purelymail3; d=spwhitton.name; v=1; bh=JsW8qQ18QvOkQQJxl2m0s1CD1ZbnF+zBW/oV9L5DGBY=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=CCLj6iL1551TXSgnjrPkCzdvLuhpCuqyZ/lTPtWwawsv8fACgkVWzeO64VrMtI56G9k4NSvYBHMtGWZTB6xvcaLGnUvWP8ok2bVTYvOYoOEjMitdRRsgvqhNeb0JUNXs/Q63DqL/vd0acQN4ZWk8U5JQpojF439t8OMX/mMCdXNfDPDlb3m0vhU/Eqjdo7v/tMcUl5ViHX2mwLLzQlLuNNKOKSMbcQe5y/aKxFsQdNSnYgL4tGjctFjZQgPFThNdqEUJJ7IvIBiyuUpWCKyc4EgnSUEMLL6OcygM57naVMdEvdCsErghgDDvZ9K2YndHYZ4SXbBxgn3Oez1+L4oivg==; s=purelymail3; d=purelymail.com; v=1; bh=JsW8qQ18QvOkQQJxl2m0s1CD1ZbnF+zBW/oV9L5DGBY=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1318813120; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Wed, 30 Jul 2025 11:00:15 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 5617F940078; Wed, 30 Jul 2025 12:00:14 +0100 (BST) From: Sean Whitton In-Reply-To: References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87wm7r2kvc.fsf@zephyr.silentflame.com> Date: Wed, 30 Jul 2025 12:00:14 +0100 Message-ID: <87bjp23pvl.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Wed 30 Jul 2025 at 05:24am +03, Dmitry Gutov wrote: > Hi Sean, > > On 29/07/2025 16:21, Sean Whitton wrote: >> I think you missed this request for input here. Would you be able to >> take a look? Thanks. >> On Fri 18 Jul 2025 at 10:36am +01, Sean Whitton wrote: >> >>> Dmitry, what do you think about a new project-prompter-predicate which >>> project prompters should use to filter the list of projects offered? VC >>> could bind that to something which only lets through related worktrees. > > I guess my answer is maybe. > > Ideally we should be able to think of some other usage scenarios as well, not > just from this worktree feature. Maybe add them to the docstring. Right. I can most readily imagine code that wants to prompt the user to select a project, but limit the selection to projects under a particular directory. For example if I have a whole bunch of Elisp that's on my load-path under, say, ~/.emacs.d/elpa/, I could write a function which will bind project-prompter-predicate to filter out all other projects. So then I have a command which is "switch to the source of one of my ELPA packages". I can also imagine something which filters the selection by forge URI. So if all my work projects are on a private gitlab instance, I could write a command which would allow me to select only from my work projects by matching on the configured remote URI and filtering out projects on other kinds of remote. I can imagine something with active nix-envs or something too. Do you find these examples compelling? > Questions about implementation: > > Will 'project-known-project-roots' use (and be affected by) that predicate? I don't think so, because that's not an interactive function, and so its caller can apply a predicate to the return value if wanted. > Could someone set it up one day and then later see a project-list entry stay > around in the file but never come up in the prompt, or never be cleared by > project-forget-zombie-projects? That could happen if someone gives project-prompter-predicate a global value, yeah. I don't think you'd want to do that, though -- I was thinking it'd be a defvar not a defcustom. > Also IIUC if we consider the "other-working-trees API" approach, I guess it > wouldn't exactly fit as a solution, because we'd want to substitute the full > list instead of filtering. (Is that right?) Then an alternative could be just > a separate user option for the prompter function here. I don't think there is an inherent clash here. The predicate would just be (lambda (p) (member p working-trees)) where working-trees is the result of having called known-other-working-trees. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 30 Jul 2025 12:42:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175387932125301 (code B ref 79024); Wed, 30 Jul 2025 12:42:01 +0000 Received: (at 79024) by debbugs.gnu.org; 30 Jul 2025 12:42:01 +0000 Received: from localhost ([127.0.0.1]:40267 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uh688-0006Zz-El for submit@debbugs.gnu.org; Wed, 30 Jul 2025 08:42:00 -0400 Received: from fout-b4-smtp.messagingengine.com ([202.12.124.147]:53755) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uh684-0006ZO-SE for 79024@debbugs.gnu.org; Wed, 30 Jul 2025 08:41:57 -0400 Received: from phl-compute-04.internal (phl-compute-04.phl.internal [10.202.2.44]) by mailfout.stl.internal (Postfix) with ESMTP id 361061D010DF; Wed, 30 Jul 2025 08:41:51 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-04.internal (MEProxy); Wed, 30 Jul 2025 08:41:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1753879311; x=1753965711; bh=6SrmiEPCUCOwUPZDquygh0sYH5wcM0vOfMXjsJrplzY=; b= ow4NR7TDhM6poH0gu0zqv0T1U/kMbTuD3zs/EApJgNwkDYD3xdJDh/BUnVsUyx8f 764ma2tnioZGbEwe/0Mzkw3oZTJtJiPVO9IOM7QaDurYKonpB9y2EA7pQIPqxcYp OiHj4BYCaTU5a6oSvt2dlbXA+QuYTwsIYS0wWBhZMJof6bCj5QBf092sOsLJWHph bLMP5nJCzA7mtOnoxq0wRzBAcGnfkB+vBcGzVOVe2shMPS6kaKyjghRNI/upzQrl qEHUKQYcGYIVSFT92samaK0M1VJNUONyLxv3tqw/u+pHqvCvjPMrIKKqntKnFAc4 qIiZTtYRGh/JCJm1HcGMXg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1753879311; x= 1753965711; bh=6SrmiEPCUCOwUPZDquygh0sYH5wcM0vOfMXjsJrplzY=; b=k uZlb5VCbcxWLpZrnyMYC9Ef9uQUrQEbbmQsBHwsLa2U7DWMCj3D1Rh6IRbJkSva5 sWjPmdlcN2qenTHOg38ld7wGLn642qOmAcHw0rL7xc9GpaEz98MVgPUm7UdE6aRm htQZzjl3AmHB0/Z3i0mszKVYGy8z1wZc4o6SWb52SWFNbONeGX4R840PaXo6TY0V hq6HvDSnHCEEwGs5s2nLhaQ4vDfapKcj0ISmXs9wX0kbUXWf6b01CPIYH9xoBje7 xpJHJ0BGAVwDoftw99XYGV6f27eejebPEtAKAjZB4aIy44nQ/3hc6zcwMVBJjuda vcp2xCy0XI1i8fnfKWF/g== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdeljeeliecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpefkffggfgfuvfevfhfhjggtgfesthejredttddvjeenucfhrhhomhepffhmihhtrhih ucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtthgvrh hnpeetudeljeegheetgfehgeejkeeuhedvveeikeeufedtvddtveefhfdvveegudejheen ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumhhith hrhiesghhuthhovhdruggvvhdpnhgspghrtghpthhtohepvddpmhhouggvpehsmhhtphho uhhtpdhrtghpthhtohepshhpfihhihhtthhonhesshhpfihhihhtthhonhdrnhgrmhgvpd hrtghpthhtohepjeeltddvgeesuggvsggsuhhgshdrghhnuhdrohhrgh X-ME-Proxy: Feedback-ID: i07de48aa:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 30 Jul 2025 08:41:49 -0400 (EDT) Message-ID: <79ed6d6b-d984-4eb5-9fe3-97f93251aca2@gutov.dev> Date: Wed, 30 Jul 2025 15:41:47 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87wm7r2kvc.fsf@zephyr.silentflame.com> <87bjp23pvl.fsf@zephyr.silentflame.com> Content-Language: en-US From: Dmitry Gutov In-Reply-To: <87bjp23pvl.fsf@zephyr.silentflame.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 30/07/2025 14:00, Sean Whitton wrote: >> Ideally we should be able to think of some other usage scenarios as well, not >> just from this worktree feature. Maybe add them to the docstring. > > Right. I can most readily imagine code that wants to prompt the user to > select a project, but limit the selection to projects under a particular > directory. > > For example if I have a whole bunch of Elisp that's on my load-path > under, say, ~/.emacs.d/elpa/, I could write a function which will bind > project-prompter-predicate to filter out all other projects. So then I > have a command which is "switch to the source of one of my ELPA packages". > > I can also imagine something which filters the selection by forge URI. > So if all my work projects are on a private gitlab instance, I could > write a command which would allow me to select only from my work > projects by matching on the configured remote URI and filtering out > projects on other kinds of remote. > > I can imagine something with active nix-envs or something too. > > Do you find these examples compelling? They are pretty solid, thanks. Please go ahead. >> Questions about implementation: >> >> Will 'project-known-project-roots' use (and be affected by) that predicate? > > I don't think so, because that's not an interactive function, and so its > caller can apply a predicate to the return value if wanted. All right. >> Also IIUC if we consider the "other-working-trees API" approach, I guess it >> wouldn't exactly fit as a solution, because we'd want to substitute the full >> list instead of filtering. (Is that right?) Then an alternative could be just >> a separate user option for the prompter function here. > > I don't think there is an inherent clash here. The predicate would just > be (lambda (p) (member p working-trees)) where working-trees is the > result of having called known-other-working-trees. Could be a bit less efficient than just substituting a list. Not sure if noticeable. Also, this way we could miss worktrees previously created outside of Emacs, and not registered in the project history yet. Again, not sure if it's critical. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 09:59:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.1754301496695 (code B ref 79024); Mon, 04 Aug 2025 09:59:01 +0000 Received: (at 79024) by debbugs.gnu.org; 4 Aug 2025 09:58:16 +0000 Received: from localhost ([127.0.0.1]:49346 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uirxQ-0000B8-KM for submit@debbugs.gnu.org; Mon, 04 Aug 2025 05:58:16 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:32978) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uirxN-0000As-Gh for 79024@debbugs.gnu.org; Mon, 04 Aug 2025 05:58:14 -0400 DKIM-Signature: a=rsa-sha256; b=Jkt3GnPtM1FZvR+78257b1wigHvlqoWdAozyDTMiQPIrriGTCEaZP+Y/o614WKbFMriboNfYltwhnsRGKY0bOhOuz+7KooO1AdsIjfVkbI0ycGJpDVitbSgSPmTPilgD2UpE+IuyhclPuf4I5bmmIag9f/IEuZbccHhFfLfy9owrZw/opQvTXP3Y64oOViFNKeZcUlqxWB/7H9pJyXvrYTOhPSdVjmEdOk0ORMbY5MkAjpcWjOWkc1SW4YGISsBkEi9XBdQcsBRdR3Ojb903LYibigNc1v0d+01M/IsxKm76R8gt2/gU6QeQYemc5ZUkrVUZ5U9vWyrHyZVQM2Xn5A==; s=purelymail3; d=spwhitton.name; v=1; bh=MWWPaGjp9ED2GZgiJv+IynYvLt50WGIcnk/i5/ZCV1Q=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=Mg+hhh3h+eKEvu1IpqRpjkHEICBSs86J3jmUxRs0VcuYoTgKEopzekft1OdtDOqvbDhmT1NbQ+yeD4CbXBGBZ6LEJtar4V+YrrPZK3EWvDBJy1f0DntkEI8DzUqGTIJXljluJbHYEyevxgtj8scEvjkWacDY1jrn1OHt4XKFTjp1hE/YLqlrcac22UVJ1f9ZXG5yNd5DyKveTiTcXMKFDttKAbpTW+bS4YmC2McsxOX/bCUqyJ+rInSGoVfFjeU7G9lOG/2cIm1tgN4yrj0AyZvzqQa+VscBngbNuRu1/xAMb/42Pq9OpEddW+iDMh32zQZz0/53aR7+PnaTETplhA==; s=purelymail3; d=purelymail.com; v=1; bh=MWWPaGjp9ED2GZgiJv+IynYvLt50WGIcnk/i5/ZCV1Q=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -703477781; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 04 Aug 2025 09:58:05 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id C4FD294012E; Mon, 04 Aug 2025 10:58:02 +0100 (BST) From: Sean Whitton In-Reply-To: <87y0s8hyyz.fsf@zephyr.silentflame.com> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> Date: Mon, 04 Aug 2025 10:58:02 +0100 Message-ID: <87ectrjtn9.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.0 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.0 (--) Hello Eli, On Mon 28 Jul 2025 at 08:55pm +01, Sean Whitton wrote: > Okay, based on adding some tracing to vc-git-command and vc-git--call, > and inserting 'mv' and 'cd' commands to correspond to other things the > test does, this is what I have for you: Mattias sent a fix which may resolve at least the failures you were seeing on Windows; I just installed it. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 04 Aug 2025 20:10:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Dmitry Gutov Cc: 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.17543381932786 (code B ref 79024); Mon, 04 Aug 2025 20:10:01 +0000 Received: (at 79024) by debbugs.gnu.org; 4 Aug 2025 20:09:53 +0000 Received: from localhost ([127.0.0.1]:52755 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uj1VI-0000ir-Rn for submit@debbugs.gnu.org; Mon, 04 Aug 2025 16:09:53 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:58354) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uj1VF-0000ic-Ev for 79024@debbugs.gnu.org; Mon, 04 Aug 2025 16:09:50 -0400 DKIM-Signature: a=rsa-sha256; b=J7MHWaKXbHjFqD+u2jlGUkdc3J6eF42wYSudLsKC2Ll0WvX3fgYCBJJKaSMY7gw3wVHMteytZzjcswRrd9GltoxDg/mtrhcem883t0RwnZu5TJRcmelgTT4ecBHr02lBZ2uLiO5qNebatnpEXk6HMrhQZoXvx/MhRzjrJWyEmgWZ72ZcxYMP9svf7nRD+EBPZ0JSMSEC6AJSMypf6CkSVMGuqHsEQCo3nH+S18cRfjldrE/AQkB1mCoN1p3njDVP5Eo4g5kb353KV4J4w/CHX6i5urwzG0cHBsuxqRJZuY+JTFIpNHE5r1peg627fJV46YSAKB3IK1WqYTyqNpehhw==; s=purelymail3; d=spwhitton.name; v=1; bh=nIBisk02D3FD1a5bVjp3qTZ+7ff3JSue9KSGeVqjNhw=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=VC+kmnGVFpgRQM14fGuwHqbRFTAz/LK3kN0suS/uULJ7fify5pruKZHeu283isvFWoRtC+X5aOrUJhbZrEBkoDoAFeM0uMVTkgbGjxoopbWTm4Vy+GGv7UcsjKNXPFaJAXcfK5hPzH1TSjqK34SaZii3z/OcPXM/ZDNEPecoqzxmbB2YIL8rs/snNvUd4jtBAqV0fV4Qcr9jntx7zUpW4qH98lw1FZwk1WYiud95solgUCMT0NNHIsc/nzPMua3oBHWBzPZgd3X8fNF12FmUPz4BQgNHSsI6S2FREMzVO/QY1rA40qoypyRO5HJ+0Rwz/JFcu1EpLPNiYEYPcrwsrw==; s=purelymail3; d=purelymail.com; v=1; bh=nIBisk02D3FD1a5bVjp3qTZ+7ff3JSue9KSGeVqjNhw=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -519261820; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 04 Aug 2025 20:09:43 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id BD508940421; Mon, 04 Aug 2025 21:09:40 +0100 (BST) From: Sean Whitton In-Reply-To: <79ed6d6b-d984-4eb5-9fe3-97f93251aca2@gutov.dev> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87wm7r2kvc.fsf@zephyr.silentflame.com> <87bjp23pvl.fsf@zephyr.silentflame.com> <79ed6d6b-d984-4eb5-9fe3-97f93251aca2@gutov.dev> Date: Mon, 04 Aug 2025 21:09:40 +0100 Message-ID: <877bzig86z.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Wed 30 Jul 2025 at 03:41pm +03, Dmitry Gutov wrote: > On 30/07/2025 14:00, Sean Whitton wrote: > >>> Ideally we should be able to think of some other usage scenarios as well, not >>> just from this worktree feature. Maybe add them to the docstring. >> Right. I can most readily imagine code that wants to prompt the user to >> select a project, but limit the selection to projects under a particular >> directory. >> For example if I have a whole bunch of Elisp that's on my load-path >> under, say, ~/.emacs.d/elpa/, I could write a function which will bind >> project-prompter-predicate to filter out all other projects. So then I >> have a command which is "switch to the source of one of my ELPA packages". >> I can also imagine something which filters the selection by forge URI. >> So if all my work projects are on a private gitlab instance, I could >> write a command which would allow me to select only from my work >> projects by matching on the configured remote URI and filtering out >> projects on other kinds of remote. >> I can imagine something with active nix-envs or something too. >> Do you find these examples compelling? > > They are pretty solid, thanks. Please go ahead. I'd previously proposed a variable, project-prompter-predicate, which Lisp code would bind around calls to prompter-prompter. But I see that the API for project-prompter has already been changed in Emacs 31 to add a new optional PROMPT argument. So I've gone with adding two additional optional arguments instead of adding a new variable. >>> Also IIUC if we consider the "other-working-trees API" approach, I guess it >>> wouldn't exactly fit as a solution, because we'd want to substitute the full >>> list instead of filtering. (Is that right?) Then an alternative could be just >>> a separate user option for the prompter function here. >> I don't think there is an inherent clash here. The predicate would just >> be (lambda (p) (member p working-trees)) where working-trees is the >> result of having called known-other-working-trees. > > Could be a bit less efficient than just substituting a list. Not sure if > noticeable. Yeah. We'll see. > Also, this way we could miss worktrees previously created outside of Emacs, > and not registered in the project history yet. Again, not sure if it's > critical. This problem is unavoidable for Mercurial. For Git I've added a loop to vc--prompt-other-working-tree to call project-remember-project on the possibilities. This going back and forth between VC and project has become a bit convoluted but I think nicely serves the various needs we've identified. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 06 Aug 2025 02:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175444628013923 (code B ref 79024); Wed, 06 Aug 2025 02:12:02 +0000 Received: (at 79024) by debbugs.gnu.org; 6 Aug 2025 02:11:20 +0000 Received: from localhost ([127.0.0.1]:57441 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ujTcd-0003cV-MY for submit@debbugs.gnu.org; Tue, 05 Aug 2025 22:11:20 -0400 Received: from fout-b4-smtp.messagingengine.com ([202.12.124.147]:60725) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ujTca-0003cA-8l for 79024@debbugs.gnu.org; Tue, 05 Aug 2025 22:11:18 -0400 Received: from phl-compute-05.internal (phl-compute-05.phl.internal [10.202.2.45]) by mailfout.stl.internal (Postfix) with ESMTP id 175331D00149; Tue, 5 Aug 2025 22:11:10 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-05.internal (MEProxy); Tue, 05 Aug 2025 22:11:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm2; t=1754446269; x=1754532669; bh=ByHorqZKmyKoB+kTGdgXvg1SeB1gZATmBBDRVubkQnU=; b= bcmwfqEchGfhoA5PdO+k7y1PcShHC++MrL73Y2uqzPHJJFQUsysFoyo5sJ2ni5Jo CcrVUxXJ7Ca66jeOMh6Od9R/1j/Ia58vA4VKxKCNaCM1rmKXIpr8jhmdrFi87+sw 7wCgChSqzmGV8/oJ+0BwboeEETfT0HQbcuvnjTWPrz81I2bwfijjJSmH+lSYPvnW rdSa1klarUKusEmKJmH616Bq7r5d/XfXMNHgyY01LkOGrGJaIpZ7tDpwUOjwpPi2 3AnuDmGq2AaXnk4Gba/L7EqNvJ1bpNl9U4yUvRx+gqc1bT1XxlEeKki8AeuEOFju qcsLmj4ilVGlcgxgMGijmw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1754446269; x= 1754532669; bh=ByHorqZKmyKoB+kTGdgXvg1SeB1gZATmBBDRVubkQnU=; b=f qw7WnpkWX5PCw5NfvtZ4u8H86N3PR2OqgrGlziDh/zOgU7CQn4jjGHJNxeKklXg+ cdEztik4ZcaLM2ci+m7QH/F26maWE/wW0wY7jElceSPQFGaOnFOW7CBHQwjtqyeT UNOF4dwlWXFzA01aq7aYWY37wjESE7AEeBGrzzdZtyTJm8JsXlTWRbflZo4pujB9 Jf2FoE6As/YIN7fWhJ7J6DVupu64sM/EAFsWePd+S2bqDxl6ai0jldQJlj+1Syku A9e5BcAAXtMIbc8jZiHxc16CtFMP0arqrTp9HUyVp3s/bg8DnFqlvt7UDRclJrYD aEAhobSNrDBIjQHdpeoUg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduudeikedvucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdejnecuhfhrohhmpeffmhhithhr hicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrthhtvg hrnhepteduleejgeehtefgheegjeekueehvdevieekueeftddvtdevfefhvdevgedujeeh necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepughmih htrhihsehguhhtohhvrdguvghvpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhp ohhuthdprhgtphhtthhopehsphifhhhithhtohhnsehsphifhhhithhtohhnrdhnrghmvg dprhgtphhtthhopeejledtvdegseguvggssghughhsrdhgnhhurdhorhhg X-ME-Proxy: Feedback-ID: i07de48aa:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 5 Aug 2025 22:11:08 -0400 (EDT) Message-ID: <1dbda298-4c0b-4ab6-a4cb-022afb5d8361@gutov.dev> Date: Wed, 6 Aug 2025 05:11:06 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ldolzvq5.fsf@zephyr.silentflame.com> <87wm7r2kvc.fsf@zephyr.silentflame.com> <87bjp23pvl.fsf@zephyr.silentflame.com> <79ed6d6b-d984-4eb5-9fe3-97f93251aca2@gutov.dev> <877bzig86z.fsf@zephyr.silentflame.com> Content-Language: en-US From: Dmitry Gutov In-Reply-To: <877bzig86z.fsf@zephyr.silentflame.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi! On 04/08/2025 23:09, Sean Whitton wrote: >> They are pretty solid, thanks. Please go ahead. > > I'd previously proposed a variable, project-prompter-predicate, which > Lisp code would bind around calls to prompter-prompter. > > But I see that the API for project-prompter has already been changed in > Emacs 31 to add a new optional PROMPT argument. So I've gone with > adding two additional optional arguments instead of adding a new > variable. Unexpected, but looks reasonable. >> Also, this way we could miss worktrees previously created outside of Emacs, >> and not registered in the project history yet. Again, not sure if it's >> critical. > > This problem is unavoidable for Mercurial. > > For Git I've added a loop to vc--prompt-other-working-tree to call > project-remember-project on the possibilities. > > This going back and forth between VC and project has become a bit > convoluted but I think nicely serves the various needs we've identified. Nice to see we've avoided using the "private" parts of the package, too. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Aug 2025 10:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175482302014925 (code B ref 79024); Sun, 10 Aug 2025 10:51:02 +0000 Received: (at 79024) by debbugs.gnu.org; 10 Aug 2025 10:50:20 +0000 Received: from localhost ([127.0.0.1]:44117 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ul3d6-0003sM-0n for submit@debbugs.gnu.org; Sun, 10 Aug 2025 06:50:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57294) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ul3d3-0003n5-03 for 79024@debbugs.gnu.org; Sun, 10 Aug 2025 06:50:18 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ul3cv-0005iJ-EC; Sun, 10 Aug 2025 06:50:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=tJYvdmlDrz4lfpmW9Bb68/71XP9JfxGta/ynyVNetz4=; b=AKztesntZCnZ 5FBNZ5XryutncMUPib7veUJHUZvedZKl18JeL9cwSPKNRORrFrtqB486nZ0Ii3MNYJHIlx5V4iYH+ q0bKC5mhejrHZRpPkJsYckxo3soA1Ed5lKnXQPJnnHYiZwt5D3RbEvYdnwXFL02VitwPONKzmoxx3 SwsYNpyEYPd8ukAz7tkr88BxT9XtUVpm/gKaiXlBRXciGOEgZGJLYFcoqKq4kR96AahMJsO3mYkOc rkUn21LKvtUntbMwitH35lUeS0L8+tP9u0aH9npHEg3UFZICgrnp2PcEuin9en8yN9k+2r1vi7z7F DyjLV2JUdP7tIz96OzEq0w==; Date: Sun, 10 Aug 2025 13:50:07 +0300 Message-Id: <86ldnrjvs0.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87y0s8hyyz.fsf@zephyr.silentflame.com> (message from Sean Whitton on Mon, 28 Jul 2025 20:55:32 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Mon, 28 Jul 2025 20:55:32 +0100 > > > Please show the Git commands we issue during this test, and I will try > > running them from the shell to see what's going on and why. > > Okay, based on adding some tracing to vc-git-command and vc-git--call, > and inserting 'mv' and 'cd' commands to correspond to other things the > test does, this is what I have for you: See the results below, sorry for a long delay. Where I show nothing after a command it means the command seemed to have succeeded. > mkdir first > cd first > git init > # create 'foo' > git --no-pager ls-files -c -z -- foo > git --no-pager ls-tree --name-only -z HEAD -- foo This fails: fatal: Not a valid object name HEAD > git update-index --add -- foo > git --no-pager ls-files -c -z -- foo > git --no-pager status --porcelain -z --untracked-files --ignored -- foo > git --no-pager rev-parse HEAD This also fails: HEAD fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git [...] -- [...]' > git --no-pager symbolic-ref HEAD > git commit -F c:/Users/... --only -- foo # make a commit msg temp file > git --no-pager rev-parse HEAD > git for-each-ref --format=%(refname) -- nil This fails: bash: syntax error near unexpected token `(' > git worktree add --detach ../second/ > git worktree prune > git worktree list --porcelain -z This fails: error: unknown switch `z' usage: git worktree add [] [] or: git worktree list [] or: git worktree lock [] or: git worktree prune [] or: git worktree unlock --porcelain machine-readable output (All the other "list --porcelain -z" commands fail as well. They do succeed if used without -z.) > cd ../second > git worktree prune > git worktree list --porcelain -z > cd ../first > mv ../second ../third > git worktree repair This fails: fatal: Not a git repository: D:/gnu/git/first/.git/worktrees/second > git worktree prune Likewise. > git worktree list --porcelain -z Likewise. > cd ../third > mv ../first ../second > git worktree repair Likewise. > git worktree prune Likewise. > git worktree list --porcelain -z Likewise. > mv ../second ../first > git worktree repair Fails: fatal: Not a git repository: D:/gnu/git/first/.git/worktrees/second > cd ../first > git update-index --refresh > git --no-pager rev-parse --verify HEAD > git diff-index --relative -z -M HEAD -- > git ls-files -z -d -- > git ls-files -z -u -- > git ls-files -z -o --exclude-standard -- > git worktree remove -f ../third/ This fails: usage: git worktree add [] [] or: git worktree list [] or: git worktree lock [] or: git worktree prune [] or: git worktree unlock Does this provide useful info about the failure reason(s)? From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Aug 2025 10:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175482304814990 (code B ref 79024); Sun, 10 Aug 2025 10:51:02 +0000 Received: (at 79024) by debbugs.gnu.org; 10 Aug 2025 10:50:48 +0000 Received: from localhost ([127.0.0.1]:44122 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ul3dX-0003tg-OS for submit@debbugs.gnu.org; Sun, 10 Aug 2025 06:50:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59630) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ul3dV-0003tR-Ei for 79024@debbugs.gnu.org; Sun, 10 Aug 2025 06:50:46 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ul3dQ-0005kJ-4H; Sun, 10 Aug 2025 06:50:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=C/XqWVAqsu2y9xa4QwkkXAhSeuCcdCee5LYloWVweLw=; b=A+MRtqOkiNU/ Yh7zc3iodzGZ5Igk1ey0TjrrgwBvU2gBazyy81RIL3zbVcZasRqkHnH32UUm5gI+S4CITSkJCPgPy HQ3ndWyQl3rm9qXOcr3i+giI0gOvKGUrEglMWaBIF6JwJvnhU9srxkmvxPLOCgmVCtqWfgGkYhKM8 QlDz5CY//F/8Yqj8l+eroWMKvGkFHKs8AySlAJlWMfNAgvbMGKN+1LZP6CaYiv/PeHxgQcAFHTLeC idxQrB+PSHa9aerD0RWC7KxyzhK4KvMWBOS2s//mRy8UxpEfsZ3BQMq6dEIxBPg4wjl/OtfssZDQM XLf3FgoOMLJI2iRbY9CL6w==; Date: Sun, 10 Aug 2025 13:50:38 +0300 Message-Id: <86ikivjvr5.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87ectrjtn9.fsf@zephyr.silentflame.com> (message from Sean Whitton on Mon, 04 Aug 2025 10:58:02 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <877bzxu0xv.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <87ectrjtn9.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Mon, 04 Aug 2025 10:58:02 +0100 > > Hello Eli, > > On Mon 28 Jul 2025 at 08:55pm +01, Sean Whitton wrote: > > > Okay, based on adding some tracing to vc-git-command and vc-git--call, > > and inserting 'mv' and 'cd' commands to correspond to other things the > > test does, this is what I have for you: > > Mattias sent a fix which may resolve at least the failures you were > seeing on Windows; I just installed it. The tests still fail in the same way. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Aug 2025 11:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175482497920866 (code B ref 79024); Sun, 10 Aug 2025 11:23:01 +0000 Received: (at 79024) by debbugs.gnu.org; 10 Aug 2025 11:22:59 +0000 Received: from localhost ([127.0.0.1]:44173 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ul48h-0005QU-2B for submit@debbugs.gnu.org; Sun, 10 Aug 2025 07:22:59 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:51290) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ul48d-0005Q4-3A for 79024@debbugs.gnu.org; Sun, 10 Aug 2025 07:22:57 -0400 DKIM-Signature: a=rsa-sha256; b=K1occjMfQRK6QZCV78V3nM5bxSDNi+ZEsODr1u9/9VTjM/gfcdftB4FpQyRu1HIRsHCtw9nbWESy9uHSBLiUk4iXuORHwkzarczWvhqSknkjs+5YuG68LplBtqaRMkPmUgbUiJOjas9p+gcJI++OfKaXOtoJU3qnknzQALmWWv4B6aZUFvZ4LluY3RT4eWzN/FGSeG5aVPktd3vvUPb+Cq7tkftRYvad8Ul55iYaLeSCEv0DL+aEhOJH7w33a08GJir2Va2wqA3P9UGXf4IPYasf7vjL3uBYE+35MWaYUWJe6Dso+hurdDT9cI4hjymKMQm58cF3aVsW5r1Zvmh2nw==; s=purelymail1; d=spwhitton.name; v=1; bh=H3giG9+3RcdEGMhNqe1i8dY4bHLNB4H52IuauZ4vd7I=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=smOkb5RJFKVhRkoh5guOMogoYNZj8jJVSuzfSTTi7cWw2Bm2y/htxiGVhBmhBtRzLmhS585k1ZTuJQdLzBxu668nBT1suxsP+KYUBhbrvgDaAlhp4/6EJ8OotiYhgXtfbN/pR40rzSg+3WeatW9YVbN4wZQ5aycVoSIWgeTMQhUVxUE7bVR2PW8KTRi5u6mUsmvNacitugxXwBwrO4qOStNK8hxLnKk7o/HHtSrgsZOexrHzrGDMv7WZSnV8h+Y3K1g3ll7hdNXyrLiexk9L/R+AvwvLRtluja8yb+2jQcPC6ikzGT3ABX1vJNhgEmIr3BMbq/dX3XebOEulNVrkeA==; s=purelymail1; d=purelymail.com; v=1; bh=H3giG9+3RcdEGMhNqe1i8dY4bHLNB4H52IuauZ4vd7I=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -829207585 for <79024@debbugs.gnu.org> (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sun, 10 Aug 2025 11:22:45 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id BD05A9404E5; Sun, 10 Aug 2025 12:22:44 +0100 (BST) From: Sean Whitton In-Reply-To: <87v7nt4qr9.fsf@zephyr.silentflame.com> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> Date: Sun, 10 Aug 2025 12:22:44 +0100 Message-ID: <87pld3v2t7.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Tue 15 Jul 2025 at 12:50pm +01, Sean Whitton wrote: > X-debbugs-cc: sbaugh@janestreet.com, dmitry@gutov.dev > > Hello, > > I would like to add support for multiple working trees to VC. This is > 'git worktree' for Git and 'hg share' for Mercurial. It may or may not > map onto trunk/ vs. branch/ in SVN; see below. Just to note that all the features discussed in this bug are now implemented, so once the test failures have been resolved we can close it. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Aug 2025 12:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175482879410691 (code B ref 79024); Sun, 10 Aug 2025 12:27:01 +0000 Received: (at 79024) by debbugs.gnu.org; 10 Aug 2025 12:26:34 +0000 Received: from localhost ([127.0.0.1]:44291 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ul58D-0002mN-81 for submit@debbugs.gnu.org; Sun, 10 Aug 2025 08:26:33 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:60188) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ul587-0002m2-RU for 79024@debbugs.gnu.org; Sun, 10 Aug 2025 08:26:31 -0400 DKIM-Signature: a=rsa-sha256; b=SxvP2J1tXDzYEM8lgyaQ/eBeB0YthTWIfQPFwqZFo0DVZWVDyXMBrbtkGVDKdmkK1modveU2wJk3MtmG8VfCX6xX7qTbd9/ANBoLTTt6+anQj/Ewqi2Pus0V8RodWFf4kjUd1SJttOo+81TtnnStg5LsdX7j/Y5dIN7Q3lqCA6fsFww8KBRp8iCDIK72yM0jS1ad0ZfaMpiCyqfnJzHt2CApzcI6sxL0r5jc87YlBqKqDelqRtCTWze8DhEi8ESABUGLt9xhP6wQ1MXGaO0E0NzdhfLB6TPG5eteywZsEdBRp1MyrOS9E28bu9JCXsdICof4jk2Cp2G3205FZ2qU+A==; s=purelymail1; d=spwhitton.name; v=1; bh=Iavd6PSiRBnLlrABRxC+BzTVLHzVV3Nr17wDCDY9YwQ=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=RenR+0HsI2Pa/kBWxC6HhuTyqJogRb75bNpLj7hgTI+hbKJR7SHbFJWudub7ZE/Et6l7UWJ0h7nFtzvjF+EhiiHrurYgi+7ICyJkFVmT3ffd6SKfRBPpqlnRo1aAIr85qberNHObgpZiRIW77Wz08j7JkTrDLanbdLZFrhBtoab2XDbWJQMSjGy72fRrhB1w7BF9gADcwbhlZ7RdGdIEWuUuD6/LoDR9/UIpgPKJU27BN+veMxqEF+0ZPWET+FZCAACUyHJakfFDLf0gLdnzOAVhvpwhkMf4nwqNf8EbPELzIDJDuMpuKCIDI2iWQjD1j3yooYH56i6hXcMx5vu+zA==; s=purelymail1; d=purelymail.com; v=1; bh=Iavd6PSiRBnLlrABRxC+BzTVLHzVV3Nr17wDCDY9YwQ=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1051225723; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sun, 10 Aug 2025 12:26:20 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 19EFD9404E5; Sun, 10 Aug 2025 13:26:20 +0100 (BST) From: Sean Whitton In-Reply-To: <86ldnrjvs0.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> Date: Sun, 10 Aug 2025 13:26:20 +0100 Message-ID: <87349zuzv7.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello Eli, Thanks, this helps in a few ways. I think that your git doesn't support any of the 'repair', 'move' and 'remove' subcommands of git-worktree. We can do without 'git worktree remove'. I've changed that on master. I don't think that vc-git-move-working-tree is possible without either of 'move' or 'repair', unless we start manually modifying things inside .git, which as discussed elsewhere in the bug is not a good idea. So I've added a guard to the tests to not try the vc-move-working-tree tests with older Git. If the tests still fail, please show me the output and I'll try to determine where they're failing and possibly send you a new list of commands. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Aug 2025 12:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175482968513405 (code B ref 79024); Sun, 10 Aug 2025 12:42:02 +0000 Received: (at 79024) by debbugs.gnu.org; 10 Aug 2025 12:41:25 +0000 Received: from localhost ([127.0.0.1]:44317 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ul5Mb-0003U8-4I for submit@debbugs.gnu.org; Sun, 10 Aug 2025 08:41:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40626) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ul5MY-0003Tr-AG for 79024@debbugs.gnu.org; Sun, 10 Aug 2025 08:41:23 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ul5MS-0006D5-Ed; Sun, 10 Aug 2025 08:41:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=n4D83PcEtzlxfZllTfTDOOsPFFraLAqG5PqqfSIU9Lk=; b=igrfS2WiJazt 7PwrncO65PpCuEg1DgtNEHOjJWD6gtB7cPcGny7p0Pt1JYTN1NimtGRCelumYrXpzmrTudu0UOyXN 0a3Hh0xCupk3Dkmfs+fvBHEszDH8uAeDLwc47kuZPLNyd/xuAG1n8ZqKgPB8gP0dxfhoCxFFmYajt UuvqM+oI0hf23I0Jv/mmK4kT7PWKTsxdPaT1dRzohLUN5pRQVMsrHO5gBPvL6WVbKwQ3Mfj1XwBcL OxusssRAD3jRCgKzyHd+G48gd7q23ONhKGqmBZk5i6eX/ZvPOyz1jyolSo2W+WibzwHu9AgL8IHVH cZmlv7nzL6FSW52CrJRIxg==; Date: Sun, 10 Aug 2025 15:41:13 +0300 Message-Id: <86cy93jqmu.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87349zuzv7.fsf@zephyr.silentflame.com> (message from Sean Whitton on Sun, 10 Aug 2025 13:26:20 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Sun, 10 Aug 2025 13:26:20 +0100 > > Thanks, this helps in a few ways. I think that your git doesn't support > any of the 'repair', 'move' and 'remove' subcommands of git-worktree. > > We can do without 'git worktree remove'. I've changed that on master. > > I don't think that vc-git-move-working-tree is possible without either > of 'move' or 'repair', unless we start manually modifying things inside > .git, which as discussed elsewhere in the bug is not a good idea. What do we need "move" and "repair" for? > So I've added a guard to the tests to not try the vc-move-working-tree > tests with older Git. Not to run them at all? Does it mean that worktrees will be unavailable in VC in that case? > If the tests still fail, please show me the > output and I'll try to determine where they're failing and possibly send > you a new list of commands. vc-test-git07-other-working-trees still fails, and it fails while committing: Test vc-test-git07-other-working-trees condition: (error "Failed (status 128): git --no-pager commit -F c:/Users/EliZ/AppData/Local/Temp/git-msgWZPFOT --only -- foo") What is special about invoking "git commit" from this test? Because committing generally does work in the other tests. vc-test-hg07-other-working-trees also fails: Test vc-test-hg07-other-working-trees condition: (error "Failed (status 255): hg --config ui.report_untrusted=0 --config=extensions.share= commit -m Testing other working trees\n\nTesting other working trees\n foo") but this is because Windows doesn't support newlines in command lines (we need to use a file, as with Git). From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Aug 2025 13:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: spwhitton@spwhitton.name Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175483268022721 (code B ref 79024); Sun, 10 Aug 2025 13:32:02 +0000 Received: (at 79024) by debbugs.gnu.org; 10 Aug 2025 13:31:20 +0000 Received: from localhost ([127.0.0.1]:44398 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ul68t-0005uP-Ko for submit@debbugs.gnu.org; Sun, 10 Aug 2025 09:31:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51606) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ul68q-0005u8-2t for 79024@debbugs.gnu.org; Sun, 10 Aug 2025 09:31:17 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ul68k-0005Di-6I; Sun, 10 Aug 2025 09:31:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=JbWEgUsElCs07ZUtfFTuoVxxzJIoNZePgVyTRrPK0vI=; b=p16ESpZwVE7v viBHFLFHUvmFInnOR8ZVy3FCtZzV5Nalq3EhRfEATgSwdBqAxK78GJVzl/o5b6Kk1O2wOoMBFImBn 34j9U1mDhP1g/JpfzsevXl+/KSg961DZyu8cn0T2SuJOtPdHvL8oG5VJVOf/mwFCDAhEnIyrTgWY2 vkXdEu8j+e4F8tZ7DOyvg5Ieg5TFS7yAoOOwjy1I8fupE8it+oOVn1hE/h6JhP+5FLHVWvzwaty3U yOrzWRvRwPgG4ZtoVlYJReHrrgMkUSZY82jHWnuyH8QsZmUwM3ZXE302E8gVpsxuklzqH0mmt0lDS 660t92XnHYolOvAWcNjxwg==; Date: Sun, 10 Aug 2025 16:31:07 +0300 Message-Id: <86a547jobo.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <86cy93jqmu.fsf@gnu.org> (message from Eli Zaretskii on Sun, 10 Aug 2025 15:41:13 +0300) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <8734altyle.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Sun, 10 Aug 2025 15:41:13 +0300 > From: Eli Zaretskii > > vc-test-git07-other-working-trees still fails, and it fails while > committing: > > Test vc-test-git07-other-working-trees condition: > (error > "Failed (status 128): git --no-pager commit -F c:/Users/EliZ/AppData/Local/Temp/git-msgWZPFOT --only -- foo") After some tinkering, my conclusion is that "git worktree" is too buggy in my version of Git, so it isn't worth our while to keep wasting time on this. Maybe add a version check to skip the test is Git is too old (which version of Git has complete enough implementation of worktrees?). From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Aug 2025 13:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.1755004537797 (code B ref 79024); Tue, 12 Aug 2025 13:16:02 +0000 Received: (at 79024) by debbugs.gnu.org; 12 Aug 2025 13:15:37 +0000 Received: from localhost ([127.0.0.1]:52579 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uloqm-0000Ck-RP for submit@debbugs.gnu.org; Tue, 12 Aug 2025 09:15:37 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:40724) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uloqb-0000BQ-Jj for 79024@debbugs.gnu.org; Tue, 12 Aug 2025 09:15:32 -0400 DKIM-Signature: a=rsa-sha256; b=t8JPRBk9cH5pYuniu3Y5dh+lg/z4aYyuRXP8zcPF6A1pzgY8wPM/QWPF9sGNxYPHMbkJfRvZMPqqRvUg9QKpdEDh3KZvwtuWHN0rSdFiMjGSBe6sJuJfwFR+M16g+x3kZWzkQMlHDY8wAqm6V0Fni0hjhoc2ehm/oxkPbJPYdvW9aAg4sJSa0YjlO1HgbGh5fo/0E0vSmVEeQj9lSlJQRIes+MPnqHajf7OjPJZZ5xHGth6Q+RkdWxzzX2ecYRbj8RhSsFoMlTR6i4odTIdUOwSKTwIfdfP+nX1TS3dfPk6+0PBJDikme8tLoV+n6RoEYCDMncWg/phULCR+HkqfEA==; s=purelymail1; d=spwhitton.name; v=1; bh=Fi70Kc1OSDYlGFXSCMo2xNP2M3yzT8wuFWkfVFrpL4c=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=JOMAEoX9nHUC32jf63GLvdFfFIKxTOP1lbAMbfx9yOHdH7qftNp8uJAYPdOsutbZR/mmVE9U72YlP3Do9H3S5qfZxQXLsbVhLIWAeCckBnoXC1mvvlb3ApQXtoqHJ4dsczw/5ssp1PxY4vAffncEUbD8SK0o8Xix4OCGMvQCyDuTHxiWbHWUBETcF0Rc48Rseoz19xhz7OpDZZLt7mpNUQ62VF3Th9TuJlBoj1BRJ/NBoMpN1QoxvZuHmuNn/o75UZsUqyT1/Zj9q+MtM5Po9Axxvcd6EeBMrvciH4gJa1GSIiSG4HyU5TJBpXJk4JrVXT/7lleDce/yqtuYAvSo/Q==; s=purelymail1; d=purelymail.com; v=1; bh=Fi70Kc1OSDYlGFXSCMo2xNP2M3yzT8wuFWkfVFrpL4c=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -2143456595; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Tue, 12 Aug 2025 13:15:18 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 8FA7B94085E; Tue, 12 Aug 2025 14:15:17 +0100 (BST) From: Sean Whitton In-Reply-To: <86a547jobo.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> Date: Tue, 12 Aug 2025 14:15:17 +0100 Message-ID: <87sehwr89m.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Sun 10 Aug 2025 at 04:31pm +03, Eli Zaretskii wrote: > After some tinkering, my conclusion is that "git worktree" is too > buggy in my version of Git, so it isn't worth our while to keep > wasting time on this. Maybe add a version check to skip the test is > Git is too old Okay. I've now done that. > (which version of Git has complete enough implementation of > worktrees?). 2.17, I think. The remaining thing for this bug is fixing Mercurial committing. You wrote: > I don't think it matters with Mercurial, and it can never do any harm > to use Unix EOLs, I think. > > A more important question is the encoding: does hg expect the commit > log messages to be in UTF-8, or does it not care, or something else? I wrote: > makes it > sound like the file is assumed to be in the local encoding and then gets > converted. However, that page has not been updated for ten years. > > There is an option --encoding that one can pass. It defaults to utf-8. > That makes it seem like we could write out the commit message in UTF-8 > and know it'll be okay. Do you agree with the plan? That is, always use Unix line endings, write out the commit message in UTF-8. So the only thing that changes is going via a file. I should be able to write some tests to assert this is fine on Windows, which you can run. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Aug 2025 13:23:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.17550049591973 (code B ref 79024); Tue, 12 Aug 2025 13:23:02 +0000 Received: (at 79024) by debbugs.gnu.org; 12 Aug 2025 13:22:39 +0000 Received: from localhost ([127.0.0.1]:52591 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uloxY-0000Vi-RF for submit@debbugs.gnu.org; Tue, 12 Aug 2025 09:22:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41466) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uloxK-0000V8-OK for 79024@debbugs.gnu.org; Tue, 12 Aug 2025 09:22:27 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uloxA-0008Gi-83; Tue, 12 Aug 2025 09:22:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=iBrGJyv00/OooKC3jt0HDpIL+iDV+sLncKA7mnAPisU=; b=W6XWmHISuSWq htIfot7fM9LCJH/zolRMt4UCLf1R2VwMCzIxG7slk6YPidSnDfHrUxWdr5RefpCc2nGj3fIEv+xTO rNkwLLaOw4Icszn0OQMf/sVeMKP/0ssb0zr8tWILqrXmm22xo5EiXGZf0KscibNKYCNIHefSzBncb Npvldy+ONPRKAhyftFbZn8bOhEn4OaczKGw8U29ANHHk4oz7YJW3w1KYEwpZyFmvkvmsdO67JO78p u8U/ToUn231j0AwYFajKdlLbGkqJf3K4fq1J/HSY0p5kyUCdML3/9D0tkWgkZi5CIDe1lRu4I3+kO YR8SKkG6lS6/lHcthwegtQ==; Date: Tue, 12 Aug 2025 16:22:07 +0300 Message-Id: <86cy90ad4w.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87sehwr89m.fsf@zephyr.silentflame.com> (message from Sean Whitton on Tue, 12 Aug 2025 14:15:17 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87v7nhs5ca.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Tue, 12 Aug 2025 14:15:17 +0100 > > The remaining thing for this bug is fixing Mercurial committing. > > You wrote: > > > I don't think it matters with Mercurial, and it can never do any harm > > to use Unix EOLs, I think. > > > > A more important question is the encoding: does hg expect the commit > > log messages to be in UTF-8, or does it not care, or something else? > > I wrote: > > > makes it > > sound like the file is assumed to be in the local encoding and then gets > > converted. However, that page has not been updated for ten years. > > > > There is an option --encoding that one can pass. It defaults to utf-8. > > That makes it seem like we could write out the commit message in UTF-8 > > and know it'll be okay. > > Do you agree with the plan? That is, always use Unix line endings, > write out the commit message in UTF-8. So the only thing that changes > is going via a file. I should be able to write some tests to assert > this is fine on Windows, which you can run. Yes, agreed. My only comment is that perhaps we should introduce vc-hg-commits-coding-system, similar to vc-git-commits-coding-system, by default 'utf-8', and use it with the --encoding switch. But that could be added later. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Aug 2025 19:49:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.17550280822015 (code B ref 79024); Tue, 12 Aug 2025 19:49:01 +0000 Received: (at 79024) by debbugs.gnu.org; 12 Aug 2025 19:48:02 +0000 Received: from localhost ([127.0.0.1]:54949 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uluyY-0000WR-9k for submit@debbugs.gnu.org; Tue, 12 Aug 2025 15:48:02 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:57134) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uluyU-0000Vg-3Q for 79024@debbugs.gnu.org; Tue, 12 Aug 2025 15:47:59 -0400 DKIM-Signature: a=rsa-sha256; b=YiWnR7g2MLDGvwga7lxvYx+1BdBSblD0JNSN8cqjMNWZBdg+jwhAKX7jOgtIZEmei+sEo2bK613iZRm1AjrReXDAAlD9+LaZhgIlbyMvpNAp1FaabkLI4YrNx3IrSneRoVlCnndopzrhG7GyfWU+7zcUloMsVP1MzUcz/7le8q9QQd2fgyA85XwWKhlKICCP5yY5DHDHHlKKSY1V1+aYhDn3cLqWEAO3klGwnyJiu8mqVT7zyEHPogFR6oX8wsE0UIEeTlvs60RltyijAJ59mKkKHuXYGA4/1uojY8A1n57SnNhfixg2F587via0/XGcTjRwlmlqTV+Mru8gj1HS6Q==; s=purelymail2; d=spwhitton.name; v=1; bh=qeKNQWULMXo18S17lRwcENhVDdP7yD4OjyuYKXVHrU8=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=KB/NJgt//rLQ3s0jvj5LgeKfYmzRmY1udbbrXTcIYHocbN5t986nmv+l/fPjAuWxPWWc4F0cQe3393Gjpj1ho0FXvaGDQD2Epo7bIikuMbddM+bAHvm/WXzy3eImbDEwmw41x4y6tcV0oKVwV0OFpBHClqVSXFVzSCUicKskMa5N9+gRgin3Tsx5EFD74OawAjt7B9/4f0Y3M4DOKXCRPD32pS2cj59TAJLuk2IGD02gK1lVh+2DxNv4oSI9ywYmxW8vFccxfnasUcTcgGD+aiu2Q/svDcrads3bWY+98iaM8TLNASKEoQeuKQ1xJ2JeUr797UXtIM7/cPL2uf+vCw==; s=purelymail2; d=purelymail.com; v=1; bh=qeKNQWULMXo18S17lRwcENhVDdP7yD4OjyuYKXVHrU8=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 739870032; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Tue, 12 Aug 2025 19:47:50 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id CEB78940877; Tue, 12 Aug 2025 20:47:49 +0100 (BST) From: Sean Whitton In-Reply-To: <86cy90ad4w.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> Date: Tue, 12 Aug 2025 20:47:49 +0100 Message-ID: <871ppgfhju.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Tue 12 Aug 2025 at 04:22pm +03, Eli Zaretskii wrote: > Yes, agreed. My only comment is that perhaps we should introduce > vc-hg-commits-coding-system, similar to vc-git-commits-coding-system, > by default 'utf-8', and use it with the --encoding switch. But that > could be added later. Thanks. Reading #23076, it is not clear to me why you implemented both: encoding command line arguments using the system code page, and passing the commit message through a file. Your message to the bug first proposing these fixes suggests choosing between them. But we have both. Can you explain? Another question would be: do we need both for Mercurial, or is passing the commit message via a file sufficient? -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 13 Aug 2025 11:18:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175508385628305 (code B ref 79024); Wed, 13 Aug 2025 11:18:02 +0000 Received: (at 79024) by debbugs.gnu.org; 13 Aug 2025 11:17:36 +0000 Received: from localhost ([127.0.0.1]:56522 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1um9U5-0007MP-7k for submit@debbugs.gnu.org; Wed, 13 Aug 2025 07:17:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42452) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1um9Tx-0007Lu-E4 for 79024@debbugs.gnu.org; Wed, 13 Aug 2025 07:17:29 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1um9Tq-0006I7-13; Wed, 13 Aug 2025 07:17:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=zSEN86TBojl/j2yM3KO9JAJeQQUGok95SXKgghh6QT8=; b=C5KqhiCl3zXH 2Ltqf3O8LTAqjNC5x52MyR3L+yxW3CuKk2SqIQt292vfjCq7BIBxNJ7pwsnHJuuloW+UtRuC+k+Wb GkTndXyxkNby68L7ceihSe3UBbR4KtNnFoW6o7wDQkBfQgh2jeQbo9YWqPr0mw3aW+h6/iNtdFpFN BEBGwWUBGQcHp4Y1BuQ5obk0F/ErO2JEs/Ym9BbWsra7smt+A1K5txs3zFWW5ENmNCarIJiof7FAr rpDvLOL4+H7KXY/0ntmRiYdToHQ/Irgt8uzqhVHkGzN7EAqWmiPRicYUKgixubLwJX0ma/2ETUn/j U1/KjnLh08wZtrGEnYbP0A==; Date: Wed, 13 Aug 2025 14:17:13 +0300 Message-Id: <86frdvo4hy.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <871ppgfhju.fsf@zephyr.silentflame.com> (message from Sean Whitton on Tue, 12 Aug 2025 20:47:49 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ms8spckm.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Tue, 12 Aug 2025 20:47:49 +0100 > > Reading #23076, it is not clear to me why you implemented both: encoding > command line arguments using the system code page, and passing the > commit message through a file. > > Your message to the bug first proposing these fixes suggests choosing > between them. But we have both. Can you explain? It is impossible on Windows to use anything but the system codepage for encoding command-line arguments of Emacs subprocesses. At least not without some serious changes in how Emacs on Windows supports sub-processes. So, since Git prefers UTF-8 as encoding of log messages, we cannot use that encoding for command-line arguments, because most Windows users don't set their system codepage to UTF-8 (UTF-8 is still in diapers on Windows and produces some subtle problems and unexpected failures). With the log message written to a file, the problem with command-line arguments is smaller, since the actual text is in the file, but the temporary file's name could still include non-ASCII characters (e.g., if the user's name includes them). So we need to encode both, and each one needs to use what will usually be a different encoding, for the reasons explained above. > Another question would be: do we need both for Mercurial, or is passing > the commit message via a file sufficient? I think we need the same for Mercurial, for the same reasons. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 14 Aug 2025 12:28:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175517442426528 (code B ref 79024); Thu, 14 Aug 2025 12:28:01 +0000 Received: (at 79024) by debbugs.gnu.org; 14 Aug 2025 12:27:04 +0000 Received: from localhost ([127.0.0.1]:33086 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1umX2t-0006tn-Qj for submit@debbugs.gnu.org; Thu, 14 Aug 2025 08:27:04 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:46664) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1umX2m-0006tB-CH for 79024@debbugs.gnu.org; Thu, 14 Aug 2025 08:26:59 -0400 DKIM-Signature: a=rsa-sha256; b=i6pu3pW2pDlaDscU8ObJvwDqcYwGhlY3x9ux3hJEJJd0zCA6x5WMHR8+6LFSaWKRMZv46VcGysP9fG7Z1AGU0oIoEnOEFaj5TJcEwhn//Z3ej2mLfL8p/pY7CF3Yrho6OoJP/k8emPdrfj0c2G74zCxioNSxPYFgTjPowzL4aoL0T0oQWeavJ+C7+RG6oY0Mu/5zJTTh4aJY0ycG5SKzUsTUzT9RgaujCux7p5a8M2Mobm7loxKreCyEdEGC6a1WOE0XsuZgdehCQraFfGssRF6btnIYBNZkUt91XNMUrzkyx86ESDLl1L9ZCA9aygD9vHkAufkxvptu1ax7vJhXlQ==; s=purelymail2; d=spwhitton.name; v=1; bh=Q4/JFpTxNvVNn/CZUrB2RpXoqcqw8pNryQL3XKDEZq4=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=II+3x188+bjgq5k5aozDcikzxq2RBKrlZg9+nD/cYZRtktqm0D6DBTPyaXMIPnxozK5Lv4UVKVVMxZ9MGugOhpgUcq9NY1hy64IP1KW39pyqgtgVN2Thaj/pHotVB+55/1ulp68echNcDTPNMrPvJrm5/BIiM/6ZteGbFhIpToSNUh+h/C4AkPoA0Pe8rGm6/4mFwBleR1Nt/VFzjeorTDFmWAT6VISaX2e+Zh420cWv1zO0ECCufQ6haCPs9yhZZFPCGla/Qzp7lbe8LV+NEZbFAwTH/FDpgYAWKLIffaznfGVShoDSwt2gMH1eAUb+oHjjNTLimeXy68c128QeEA==; s=purelymail2; d=purelymail.com; v=1; bh=Q4/JFpTxNvVNn/CZUrB2RpXoqcqw8pNryQL3XKDEZq4=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1354604124; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Thu, 14 Aug 2025 12:26:44 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 373A3940329; Thu, 14 Aug 2025 13:26:44 +0100 (BST) From: Sean Whitton In-Reply-To: <86frdvo4hy.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> <86frdvo4hy.fsf@gnu.org> Date: Thu, 14 Aug 2025 13:26:44 +0100 Message-ID: <87cy8y84xn.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Hello, On Wed 13 Aug 2025 at 02:17pm +03, Eli Zaretskii wrote: > but the temporary file's name could still include non-ASCII characters > (e.g., if the user's name includes them). This is the point I was missing, thanks. Could you test the attached, please? I've also realised that vc-git-modify-change-comment needs the command line argument encoding, which I'll fix separately. -- Sean Whitton --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-lisp-vc-vc-hg.el-vc-hg-checkin-Fix-on-MS-Windows-bug.patch >From 76c3d9cbd6478ba5229744372b712d65bdafbaed Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Thu, 14 Aug 2025 13:23:24 +0100 Subject: [PATCH] * lisp/vc/vc-hg.el (vc-hg-checkin): Fix on MS-Windows (bug#79024). --- lisp/vc/vc-hg.el | 58 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el index 3a6580c16f4..dabf42757ce 100644 --- a/lisp/vc/vc-hg.el +++ b/lisp/vc/vc-hg.el @@ -1216,20 +1216,50 @@ 'vc-hg-async-checkins (defun vc-hg-checkin (files comment &optional _rev) "Hg-specific version of `vc-BACKEND-checkin'. REV is ignored." - (let ((args (nconc (list "commit" "-A" "-m") - (vc-hg--extract-headers comment)))) - (if vc-async-checkin - (let ((buffer (vc-hg--async-buffer))) - (vc-wait-for-process-before-save - (apply #'vc-hg--async-command buffer (nconc args files)) - "Finishing checking in files...") - (with-current-buffer buffer - (vc-run-delayed - (vc-compilation-mode 'hg))) - (vc-set-async-update buffer) - (list 'async (get-buffer-process buffer))) - (apply #'vc-hg-command nil 0 files args)))) - + (let* ((args (vc-hg--extract-headers comment)) + (file1 (or (car files) default-directory)) + (msg-file + ;; On MS-Windows, pass the commit log message through a file, + ;; to work around the limitation that command-line arguments + ;; must be in the system codepage, and therefore might not + ;; support non-ASCII characters in the log message. + ;; Also handle remote files. + (and (eq system-type 'windows-nt) + (let ((default-directory (or (file-name-directory file1) + default-directory))) + (make-nearby-temp-file "hg-msg"))))) + (when msg-file + (write-region (car args) nil msg-file)) + (let ((coding-system-for-write + ;; On MS-Windows, we must encode command-line arguments in + ;; the system codepage. + (if (eq system-type 'windows-nt) + locale-coding-system + coding-system-for-write)) + (args (if msg-file + (cl-list* "commit" "-A" "-l" (file-local-name msg-file) + (cdr args)) + (cl-list* "commit" "-A" "-m" args))) + (post (lambda () + (when (and msg-file (file-exists-p msg-file)) + (delete-file msg-file))))) + (if vc-async-checkin + (let ((buffer (vc-hg--async-buffer))) + (vc-wait-for-process-before-save + (apply #'vc-hg--async-command buffer (nconc args files)) + "Finishing checking in files...") + (with-current-buffer buffer + (vc-run-delayed + (vc-compilation-mode 'hg) + (funcall post))) + (vc-set-async-update buffer) + (list 'async (get-buffer-process buffer))) + (apply #'vc-hg-command nil 0 files args) + (funcall post))))) + +;; FIXME: Needs MS-Windows encoding issues handling. +;; Possibly we want fix this by merging this function into the preceeding one. +;; Figure out resolution of #79235 first. (defun vc-hg-checkin-patch (patch-string comment) (let ((patch-file (make-nearby-temp-file "hg-patch"))) (write-region patch-string nil patch-file) -- 2.47.2 --=-=-=-- From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 14 Aug 2025 12:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175517550029715 (code B ref 79024); Thu, 14 Aug 2025 12:45:02 +0000 Received: (at 79024) by debbugs.gnu.org; 14 Aug 2025 12:45:00 +0000 Received: from localhost ([127.0.0.1]:33104 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1umXKD-0007j6-FF for submit@debbugs.gnu.org; Thu, 14 Aug 2025 08:45:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40334) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1umXK9-0007in-2h for 79024@debbugs.gnu.org; Thu, 14 Aug 2025 08:44:54 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1umXK2-0002Hq-4B; Thu, 14 Aug 2025 08:44:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=g0kXUZuXEcym9QF+u6u0x7f1FZ6wSk01l0GKYU3qtZA=; b=HIyE45/WMing KTuyBvJSO+E+OPA22tzIqQWbWfRtZ2opkTTJHgivc7SdZQ8Ugf5/Z9JY6dFJ8zPNcPii9QJxwP34l pGnLvofedcoS5rCvh8GqOEg+p451uAvN9ZzNfx48NUVvVklrcJiVz8fkFqsKBXak0xPlUm7+Li9e2 VGd8zE5LtEXad4hP7Y4KhkOksPLTKD6vcnB/RHTE4MVFPZlMW28iTCgHXQ7CzlyhRwr4wmcqnC5zO Y1RXHs76PPMLabho+nNN3hIV3C4iuQakZTCspN4kzrHwthzWW83pVLnCeu0MN7PUGKl2Fabf88qQ3 kW5gc1E8yW0x+xP7DtHmqw==; Date: Thu, 14 Aug 2025 15:44:41 +0300 Message-Id: <86o6sim5s6.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87cy8y84xn.fsf@zephyr.silentflame.com> (message from Sean Whitton on Thu, 14 Aug 2025 13:26:44 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> <86frdvo4hy.fsf@gnu.org> <87cy8y84xn.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Thu, 14 Aug 2025 13:26:44 +0100 > > Could you test the attached, please? It didn't apply for some reason, so I patched manually. The vc-test-hg07-other-working-trees test still fails, but in a different place now: Test vc-test-hg07-other-working-trees condition: (error "Failed (status 255): hg --config ui.report_untrusted=0 --config=extensions.share= commit -A -l c:/Users/EliZ/AppData/Local/Temp/hg-msgjR8Sup foo") Any ideas? > + (when msg-file > + (write-region (car args) nil msg-file)) Shouldn't we bind coding-system-for-write to 'utf-8' here? From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 14 Aug 2025 13:44:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.17551790078849 (code B ref 79024); Thu, 14 Aug 2025 13:44:02 +0000 Received: (at 79024) by debbugs.gnu.org; 14 Aug 2025 13:43:27 +0000 Received: from localhost ([127.0.0.1]:33196 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1umYEp-0002Id-6A for submit@debbugs.gnu.org; Thu, 14 Aug 2025 09:43:27 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:52448) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1umYEj-0002IC-5z for 79024@debbugs.gnu.org; Thu, 14 Aug 2025 09:43:24 -0400 DKIM-Signature: a=rsa-sha256; b=dqF+twdgQzyWbGfFdIDe8NjTwqBOP+smhS1BLUpRbHoqGdNpJe16f5AQbo2rofCJuwa+wC2bu03SkkjRxSIRuQjSNFj8XebjpZFTxwCLb+N1OnG9QBtKeLGdQqlW4Ds9JONaTh927Rgy/imdLaA7Xm2UMs96XuNLBUsdN023iqjdUmRzxSyTsHBCveAOc0+e/RoNPYwHd2GDG29q1k7VBqAptvEpyc782mnNa+tqKhFfhmJe8f3uezf0q46+HLmVZKN4eyMCdw7EgMfyIqD4Eb+FMA3kveRocJ1T2v0sTaCkil752/Ke6ehOpwsTzF33TxrPxO3qcx3c15MmU6NM/w==; s=purelymail2; d=spwhitton.name; v=1; bh=FWLwdKMhTMvCCICHifScLueSh0xzRWP1lbNpJJ52mtI=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=FRH532JCzsRQbSzL8JJKhlypTkPMAHooOQ04SNvU8tBVdhuny9FFwabvSUod+MMutFmunhQ4hxerZVS6G1FWDvuq9SNgsCcuv4wkCAxYwusSSiz/XH9MWF20O8e1XfyfuhasjKV3hsGNGO2sqw+kty/N63iVXT8Bf012vAS4EWSxLYXgLxuLT14tBtHCcTQY6sZxPmPtPJdMNLy+Kl46dlU3c6jJQgpnwZgeK0xgU/e7HJujmMbHEYh3nIzClvA7hM1CW2u27nBKp00IU/XtbZD/fewFH9XbRvicxtIFXyLw+wKlDzdN8l1TOPe+TeqJiATGO2jjt+n4KPtQHNXyyw==; s=purelymail2; d=purelymail.com; v=1; bh=FWLwdKMhTMvCCICHifScLueSh0xzRWP1lbNpJJ52mtI=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -804709875; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Thu, 14 Aug 2025 13:43:11 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 1A3179405EE; Thu, 14 Aug 2025 14:43:10 +0100 (BST) From: Sean Whitton In-Reply-To: <86o6sim5s6.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> <86frdvo4hy.fsf@gnu.org> <87cy8y84xn.fsf@zephyr.silentflame.com> <86o6sim5s6.fsf@gnu.org> Date: Thu, 14 Aug 2025 14:43:10 +0100 Message-ID: <87plcy6mtt.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Thu 14 Aug 2025 at 03:44pm +03, Eli Zaretskii wrote: >> From: Sean Whitton >> Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org >> Date: Thu, 14 Aug 2025 13:26:44 +0100 >> >> Could you test the attached, please? > > It didn't apply for some reason, so I patched manually. > > The vc-test-hg07-other-working-trees test still fails, but in a > different place now: > > Test vc-test-hg07-other-working-trees condition: > (error > "Failed (status 255): hg --config ui.report_untrusted=0 --config=extensions.share= commit -A -l c:/Users/EliZ/AppData/Local/Temp/hg-msgjR8Sup foo") > > Any ideas? Hmm, I recently changed vc-do-command to print command output for failing commands. I assume there's nothing showing up? Is it possible that your version of Mercurial lacks one of the -A or -l options? I think we established that you do have the share extension, though maybe you don't? I would suggest trying this manually something like this (translated to Windows speak) mkdir foo cd foo hg init echo foo >bar hg add bar echo msg >../tmp hg --config ui.report_untrusted=0 --config=extensions.share= commit -A -l ../tmp bar >> + (when msg-file >> + (write-region (car args) nil msg-file)) > > Shouldn't we bind coding-system-for-write to 'utf-8' here? Yes, thanks, done locally. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 14 Aug 2025 14:04:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175518023113474 (code B ref 79024); Thu, 14 Aug 2025 14:04:01 +0000 Received: (at 79024) by debbugs.gnu.org; 14 Aug 2025 14:03:51 +0000 Received: from localhost ([127.0.0.1]:34008 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1umYYZ-0003VF-7C for submit@debbugs.gnu.org; Thu, 14 Aug 2025 10:03:51 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:38840) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1umYYU-0003Uv-Ao for 79024@debbugs.gnu.org; Thu, 14 Aug 2025 10:03:49 -0400 DKIM-Signature: a=rsa-sha256; b=LsBinPbKtXCFD6tWsvfn+0yjDfTJiW8Nw4RNMcgR9UY5h8MtCF+8F4C72IaFlbOoIFxuXlmfRzafvBr/i+C/mLnZ8GQag4oTEH9xtTnfxQohz1nZqlTAF4DrlqURaN7hoRDwp4NuJb6z7QiK2mvBAd23f1ctNfiyfuNU9GelEQ0MuAvP/FZFKm2Wn1n3dsqk3xe41RASzdIvmU1kK5OICbzgODG0/FATgaSCIaOFvOvwbXoTTia2GS9+7HRLLmM/IeX1emtSABjhxLUMlihrtUXgUkq9jrPT/a1gbLcA8ktNv7faquRBc7ld/Wn8T05Ka3eRF0M4RjPdHW3f9XtO2g==; s=purelymail2; d=spwhitton.name; v=1; bh=YAtNJglVykpRQv9VV7QYGdv4+wf4SELsCdz4Ulekt5g=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=F0FPxgRUiIcfpsgjmxYCB+3TfylzTHHfkUUCPMU3zzUS2MjIasdu8pN4Wo9Kte7mGiYcFfhptXPdPJ+EI70y2JR/1W9JBkPYYOydqDLe0awiBKK6ZoBBGl7ogyBd6YeZA0P6LDTahShWz5RBCyiS+77b/VYEpFWVHgluwT2U/5Dxlzp2Erq6Fvz35tP7f2zVI8WeuCdo0m0b9OMwzyej3ve4Fc4t2iVR/sb4xh2J2PZtad0jhTTfWmwacHH9Xg6i66vinO8KLtnTUhJF0x9ItCZtcdJafAFvuxBtixIZPF11CB2ul+V64zI5Um+B+EibLELOMAuqMi6pPy2Ll1lBxw==; s=purelymail2; d=purelymail.com; v=1; bh=YAtNJglVykpRQv9VV7QYGdv4+wf4SELsCdz4Ulekt5g=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1466015442; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Thu, 14 Aug 2025 14:03:38 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 76E539405EE; Thu, 14 Aug 2025 15:03:37 +0100 (BST) From: Sean Whitton In-Reply-To: <86frdvo4hy.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> <86frdvo4hy.fsf@gnu.org> Date: Thu, 14 Aug 2025 15:03:37 +0100 Message-ID: <87ecte6lvq.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Hello again Eli, Do you know of any reason we couldn't refactor things in vc-git.el like this? It would reduce complexity a fair bit. -- Sean Whitton --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Refactor-binding-coding-system-for-write-for-command.patch >From 5112ef83409ea181de1c61c9257d30c0e11e2e80 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Thu, 14 Aug 2025 15:02:02 +0100 Subject: [PATCH] Refactor binding coding-system-for-write for command arguments * lisp/vc/vc-git.el (vc-git-command): Handle binding coding-system-for-write to locale-coding-system on MS-Windows. (vc-git-checkin, vc-git-modify-change-comment): Don't bind coding-system-for-write solely for the sake of handling command line arguments. (Continue to bind it for other purposes.) --- lisp/vc/vc-git.el | 47 +++++++++++++++++++---------------------------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index f01807e0113..b243f9b37f9 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -1149,13 +1149,6 @@ vc-git-checkin (default-directory (expand-file-name root)) (only (or (cdr files) (not (equal root (abbreviate-file-name file1))))) - (pcsw coding-system-for-write) - (coding-system-for-write - ;; On MS-Windows, we must encode command-line arguments in - ;; the system codepage. - (if (eq system-type 'windows-nt) - locale-coding-system - (or coding-system-for-write vc-git-commits-coding-system))) (msg-file ;; On MS-Windows, pass the commit log message through a ;; file, to work around the limitation that command-line @@ -1226,14 +1219,13 @@ vc-git-checkin (t (push file-name to-stash))) (setq pos (point)))))) (unless (string-empty-p vc-git-patch-string) - (let (;; Temporarily countermand the let-binding at the - ;; beginning of this function. - (coding-system-for-write + (let ((coding-system-for-write + ;; On DOS/Windows, it is important for the patch file to + ;; have the Unix EOL format, because Git expects that, + ;; even on Windows. (coding-system-change-eol-conversion - ;; On DOS/Windows, it is important for the patch file - ;; to have the Unix EOL format, because Git expects - ;; that, even on Windows. - (or pcsw vc-git-commits-coding-system) 'unix))) + (or coding-system-for-write vc-git-commits-coding-system) + 'unix))) (vc-git--with-apply-temp-to-staging patch (with-temp-file patch (insert vc-git-patch-string))))) @@ -1251,7 +1243,7 @@ vc-git-checkin (vc-git-command t 0 nil "stash" "show" "-p"))))))) (when msg-file (let ((coding-system-for-write - (or pcsw vc-git-commits-coding-system))) + (or coding-system-for-write vc-git-commits-coding-system))) (write-region (car args) nil msg-file)) (setq args (cdr args))) (setq args (nconc (if msg-file @@ -2118,18 +2110,12 @@ vc-git-modify-change-comment (write-region message nil msg-file))) ;; Regardless of the state of the index and working tree, this ;; will always create an empty commit, thanks to --only. - (let ((coding-system-for-write - ;; On MS-Windows, we must encode command-line arguments in - ;; the system codepage. - (if (eq system-type 'windows-nt) - locale-coding-system - coding-system-for-write))) - (apply #'vc-git-command nil 0 nil - "commit" "--only" "--allow-empty" - (nconc (if msg-file - (list "-F" (file-local-name msg-file)) - (list "-m" message)) - args)))) + (apply #'vc-git-command nil 0 nil + "commit" "--only" "--allow-empty" + (nconc (if msg-file + (list "-F" (file-local-name msg-file)) + (list "-m" message)) + args))) (when (and msg-file (file-exists-p msg-file)) (delete-file msg-file)))) (with-environment-variables (("GIT_SEQUENCE_EDITOR" "true")) @@ -2493,7 +2479,12 @@ vc-git-command (let ((coding-system-for-read (or coding-system-for-read vc-git-log-output-coding-system)) (coding-system-for-write - (or coding-system-for-write vc-git-commits-coding-system)) + ;; On MS-Windows, we must encode command-line arguments in the + ;; system codepage. + (cond ((eq system-type 'windows-nt) + locale-coding-system) + (coding-system-for-write) + (vc-git-commits-coding-system))) (process-environment (append `("GIT_DIR" -- 2.47.2 --=-=-=-- From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 14 Aug 2025 15:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175518424326897 (code B ref 79024); Thu, 14 Aug 2025 15:11:02 +0000 Received: (at 79024) by debbugs.gnu.org; 14 Aug 2025 15:10:43 +0000 Received: from localhost ([127.0.0.1]:34121 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1umZbH-0006zj-0y for submit@debbugs.gnu.org; Thu, 14 Aug 2025 11:10:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49700) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1umZbC-0006yx-Rj for 79024@debbugs.gnu.org; Thu, 14 Aug 2025 11:10:40 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1umZb6-0003fu-RE; Thu, 14 Aug 2025 11:10:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=vsHsT8AJeMDzDpL0Kq0TX5aTSpotDO+V8qi6UMvYDew=; b=VEBDr73MCOhJ qH7Jbw1WfYsxnOrGrgQ0adE7QetyKssa1mkMLBKFwpk3aNuhARg9Y1OEfNbZ4cbLLwv+GFeG9KTh7 Qnt+SSnEpwxaQHk8WGgq+Gv6sI0G9CVHtFdfvwcIwAbRccWs3lp+SfC6yncfC80PyVM7Zpd/asJr8 8O2NMDFvDIC59Ur3WoWaDNDmUwV0Me/84GJ5bWlRazKdWCLbQbiWmYVsZh5UdgKMGrFQNt8X9RAko Dqv840GqctYXbcOtWLQabeuDG4yrZGkmQ5qvjo3R36RFfxQt1qRbrP6KYZwVlDE7XUJy0egc72Wcf tYDJv3VYHvPXVV3mbGsy7w==; Date: Thu, 14 Aug 2025 18:10:30 +0300 Message-Id: <86ldnmlz15.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87plcy6mtt.fsf@zephyr.silentflame.com> (message from Sean Whitton on Thu, 14 Aug 2025 14:43:10 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> <86frdvo4hy.fsf@gnu.org> <87cy8y84xn.fsf@zephyr.silentflame.com> <86o6sim5s6.fsf@gnu.org> <87plcy6mtt.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Thu, 14 Aug 2025 14:43:10 +0100 > > > The vc-test-hg07-other-working-trees test still fails, but in a > > different place now: > > > > Test vc-test-hg07-other-working-trees condition: > > (error > > "Failed (status 255): hg --config ui.report_untrusted=0 --config=extensions.share= commit -A -l c:/Users/EliZ/AppData/Local/Temp/hg-msgjR8Sup foo") > > > > Any ideas? > > Hmm, I recently changed vc-do-command to print command output for > failing commands. I assume there's nothing showing up? Do you mean this: Checking in foo... abort: no username supplied (use 'hg config --edit' to set your username) > Is it possible that your version of Mercurial lacks one of the -A or -l > options? Doesn't seem so, see below. > I think we established that you do have the share extension, > though maybe you don't? Yes, I think so. > I would suggest trying this manually something like this (translated to > Windows speak) > > mkdir foo > cd foo > hg init > echo foo >bar > hg add bar > echo msg >../tmp > hg --config ui.report_untrusted=0 --config=extensions.share= commit > -A -l ../tmp bar This works here, and the last command exits with zero status. Does the above really faithfully reproduces what the test does? From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 14 Aug 2025 15:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175518545430905 (code B ref 79024); Thu, 14 Aug 2025 15:31:02 +0000 Received: (at 79024) by debbugs.gnu.org; 14 Aug 2025 15:30:54 +0000 Received: from localhost ([127.0.0.1]:34182 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1umZun-00082O-P6 for submit@debbugs.gnu.org; Thu, 14 Aug 2025 11:30:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54606) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1umZuk-00082A-4I for 79024@debbugs.gnu.org; Thu, 14 Aug 2025 11:30:51 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1umZub-0006xD-Ji; Thu, 14 Aug 2025 11:30:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=5zjRzcY6HblleUdZJxD7hFJD5wVWly+ivNYV6yQgRUo=; b=P5Oe1SAKo6Pz t0Kpw7pGk/+8Ji1f4geeqKeNltiTlWWYZLqZuTSlhXZhURNFiJJ0GJkmi1cg1G7+fAnVLqnYzd633 N6x79WBcEamTkgPDchvKCfVHAMp+hcVmAkFzIF21JFgWBuXbNFQs6J7OIO40J8JXnO1nCGnNxP+U9 bOL5668fyb478xX94YoBPDFGKLmesQtu1WSVGiJHKWC/yriEDRxggKJB+6z5RrmfcfdQxnJ5QJLGT wnsj/68Cs/XWWPHzF28l/b2DpkFosm/CDVspMI+Jy2/E2vT4ydy8NQvd1MmT0MyGFQgvfYazzEn7G 766gsVXA4RM7k7iZ4HuPBA==; Date: Thu, 14 Aug 2025 18:30:37 +0300 Message-Id: <86jz35nco2.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87ecte6lvq.fsf@zephyr.silentflame.com> (message from Sean Whitton on Thu, 14 Aug 2025 15:03:37 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <87ikjgpaje.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> <86frdvo4hy.fsf@gnu.org> <87ecte6lvq.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Thu, 14 Aug 2025 15:03:37 +0100 > > Do you know of any reason we couldn't refactor things in vc-git.el like > this? It would reduce complexity a fair bit. The problem here is that coding-system-for-write is used for two purposes: (1) to encode the command-line arguments of a program we are about to run, and (2) to encode any text we send to the program. And on Windows we must use two different encodings: command-line arguments must be encoded with the system codepage, whereas Git prefers its input and output to be encoded in UTF-8. Binding coding-system-for-write to locale-coding-system in vc-git-command basically overrides any encoding forced by the callers, including by users (if the type "C-x RET c SOMETHING RET" when invoking VC commands). So unfortunately, I think this complexity is needed. From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Aug 2025 11:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175534478020269 (code B ref 79024); Sat, 16 Aug 2025 11:47:02 +0000 Received: (at 79024) by debbugs.gnu.org; 16 Aug 2025 11:46:20 +0000 Received: from localhost ([127.0.0.1]:41393 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1unFMa-0005Gq-7X for submit@debbugs.gnu.org; Sat, 16 Aug 2025 07:46:20 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:36020) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1unFMU-0005GM-AI for 79024@debbugs.gnu.org; Sat, 16 Aug 2025 07:46:16 -0400 DKIM-Signature: a=rsa-sha256; b=gkMXVRUBGuEb2W0MFSHPWPaB8wXmvRoR29cKt5kLLJCwQbdgJLspzjsvWQRyg/JCJXDRNIyFgWicKzcVcvXxlAScS01mKs9WJAeN/dprPpZckG8eteLs9ODUqgKvhu1tT6B5IFGm4FdemgLM6LizzSLNpfyCqF70r279F1TKrVbMmGPUGJN2dcDsoIP8XGJHhG1LrAJh3XAu8A2s1/IBYqdrJA85Gx9OYE/g2/vv2iajJA/dSXhu/kFs0sOxxpE9xIl21VTy7Izf11dFc1MI8xOMmiSeCUM2khjyy4d5jNSfOIIM6TFsNppSaWI890jgj9d+hdEZLjNSwhwQKD4V5w==; s=purelymail2; d=spwhitton.name; v=1; bh=+DpQnN8s4mD1AtT6SwacJEJMsojtmaZHSztGh1EYuX4=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=R2hZWPqRtMsQbfVZ3fgYOmyMgTaa6E3IBwnyfZPu0VLsKeMfQBjZk4J5IDsWfsrY6A6KpiqSQWzQbQXQg6Ljk1lu/JVgugA0OAk+8mXg2KF/+Utk1lustEt73+opI0ybQP4GqS+SR9zzZ6ZAHlb168uW/R2Tz3cUUMtr0Rj+0z3lsB8cEPYtB/MbB/tU/eQV+HiQQMYwTre99Xfcbo55lCowAzK1GyKjkMovbTId5onbngd0Y2sFPWFh/HTl0OJOBn0LN7hWBHsRONoSpyw6pCXul5rOrc+cIIi63ZpKBmsgQtBg9MN2apQYeHL4Sd/SY2IWAzV2g8RorufnTqLPog==; s=purelymail2; d=purelymail.com; v=1; bh=+DpQnN8s4mD1AtT6SwacJEJMsojtmaZHSztGh1EYuX4=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1476895828; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sat, 16 Aug 2025 11:46:05 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id A315C9402EB; Sat, 16 Aug 2025 12:46:04 +0100 (BST) From: Sean Whitton In-Reply-To: <86ldnmlz15.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> <86frdvo4hy.fsf@gnu.org> <87cy8y84xn.fsf@zephyr.silentflame.com> <86o6sim5s6.fsf@gnu.org> <87plcy6mtt.fsf@zephyr.silentflame.com> <86ldnmlz15.fsf@gnu.org> Date: Sat, 16 Aug 2025 12:46:04 +0100 Message-ID: <87ms7zjxqb.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Hello, On Thu 14 Aug 2025 at 06:10pm +03, Eli Zaretskii wrote: >> From: Sean Whitton >> Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org >> Date: Thu, 14 Aug 2025 14:43:10 +0100 >> >> > The vc-test-hg07-other-working-trees test still fails, but in a >> > different place now: >> > >> > Test vc-test-hg07-other-working-trees condition: >> > (error >> > "Failed (status 255): hg --config ui.report_untrusted=0 --config=extensions.share= commit -A -l c:/Users/EliZ/AppData/Local/Temp/hg-msgjR8Sup foo") >> > >> > Any ideas? >> >> Hmm, I recently changed vc-do-command to print command output for >> failing commands. I assume there's nothing showing up? > > Do you mean this: > > Checking in foo... > abort: no username supplied > (use 'hg config --edit' to set your username) Looks like the problem is determining the committer identity. I think the attached patch will fix this. I've tested it locally and it does result in the test commits having the john@doe.ee identity. Could you test it on Windows? Thanks. >> I would suggest trying this manually something like this (translated to >> Windows speak) >> >> mkdir foo >> cd foo >> hg init >> echo foo >bar >> hg add bar >> echo msg >../tmp >> hg --config ui.report_untrusted=0 --config=extensions.share= commit >> -A -l ../tmp bar > > This works here, and the last command exits with zero status. Does > the above really faithfully reproduces what the test does? It reproduces it in terms of commands but I guess that hg's identity autodetection works differently from the test's temporary directory than it does from the more ordinary directory where you tried these commands. -- Sean Whitton --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-vc-test-with-author-identity-Handle-Mercurial.patch >From a68f4d515026323f1f15683450e28376f8e387b7 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Sat, 16 Aug 2025 12:40:23 +0100 Subject: [PATCH] vc-test--with-author-identity: Handle Mercurial * test/lisp/vc/vc-tests/vc-tests.el (vc-hg-global-switches): Declare. (vc-test--with-author-identity): Handle Mercurial. --- test/lisp/vc/vc-tests/vc-tests.el | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/test/lisp/vc/vc-tests/vc-tests.el b/test/lisp/vc/vc-tests/vc-tests.el index 81789814350..02be0e722e4 100644 --- a/test/lisp/vc/vc-tests/vc-tests.el +++ b/test/lisp/vc/vc-tests/vc-tests.el @@ -584,20 +584,26 @@ vc-test--rename-file (ignore-errors (run-hooks 'vc-test--cleanup-hook)))))) +(defvar vc-hg-global-switches) + (defmacro vc-test--with-author-identity (backend &rest body) (declare (indent 1) (debug t)) - `(let ((process-environment process-environment)) + `(let ((process-environment process-environment) + (vc-hg-global-switches vc-hg-global-switches)) ;; git tries various approaches to guess a user name and email, ;; which can fail depending on how the system is configured. ;; Eg if the user account has no GECOS, git commit can fail with ;; status 128 "fatal: empty ident name". (when (memq ,backend '(Bzr Git)) - (setq process-environment (cons "EMAIL=john@doe.ee" - process-environment))) + (push "EMAIL=john@doe.ee" process-environment)) (when (eq ,backend 'Git) (setq process-environment (append '("GIT_AUTHOR_NAME=A" "GIT_COMMITTER_NAME=C") process-environment))) + + ;; Mercurial fails to autodetect an identity on MS-Windows. + (when (eq ,backend 'Hg) + (push "--config=ui.username=john@doe.ee" vc-hg-global-switches)) ,@body)) (declare-function log-edit-done "vc/log-edit") -- 2.47.2 --=-=-=-- From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Aug 2025 11:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175534541422389 (code B ref 79024); Sat, 16 Aug 2025 11:57:02 +0000 Received: (at 79024) by debbugs.gnu.org; 16 Aug 2025 11:56:54 +0000 Received: from localhost ([127.0.0.1]:41443 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1unFWo-0005p2-AD for submit@debbugs.gnu.org; Sat, 16 Aug 2025 07:56:54 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:53412) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1unFWk-0005oc-0T for 79024@debbugs.gnu.org; Sat, 16 Aug 2025 07:56:51 -0400 DKIM-Signature: a=rsa-sha256; b=U6h3dLGuEwuENZ4D2AacxWNzuJiay4YIY6LCsc1GeCiRw9TPU8TGyLEb2BpG5zoA9wN0OUfZ8+YXmrKPhbpm/YCpzZMNlHj8Up9ZkXJQjn7CiUbjNaiZ/kazH1KgA1eEgTXDQi5vxgsrH6ILiHmBLXwjNaasGgbZF22yudrqstmTrnfb6SHvhPhUYTGkyItz1xzowLg13znMyvWAGuHLV6eeqCZoJ+YZctMt/oeAFevpCE1iN5EreuFlX0p6n3f/4uknvIbeUZb7vtkymRgrRz4x+KT6KDqoS2hWIHg/ufw+nb6LoqCGaHJiX3SEOnX7eZYUf6MHSExVP01vORIztQ==; s=purelymail2; d=spwhitton.name; v=1; bh=n07pnIAu9uRAwt77+z1BjnBfIHDsUgT1q6/ib2bnbUg=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=j8Fo0gCbX0jzew5saRVAZtbsUQpj2joTDC2NjC78Afb5laYcLuF2ZdRZkuh4PfsmelFTA83+tHA8cUgQqpWcDtqMPFsmcAvvpexazEHcN8/dHRs4L2D6Ot4RM3kM4zxmiqwFg2rZopgZsaCUF96uJXbQ2Xw/yQV8GtSEtwsMh0HaoVYaBLcY4jE3t8bjdBS8InFzD2ElSpRFb26wSk0qzm/sdgDABPu1qdLbYA76m3fk3PIY/+vzctXzmoXMcykYEoB8uQP05PlERH8YacelmjE3tT8xqLguxdVdojM8V+tAdhZWk6IzbwKJUN+PdTVtUSQuG370QEdFs2Suk6JsUw==; s=purelymail2; d=purelymail.com; v=1; bh=n07pnIAu9uRAwt77+z1BjnBfIHDsUgT1q6/ib2bnbUg=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 475922395; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sat, 16 Aug 2025 11:56:43 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 770129402EB; Sat, 16 Aug 2025 12:56:42 +0100 (BST) From: Sean Whitton In-Reply-To: <86jz35nco2.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <878qkcp5vc.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> <86frdvo4hy.fsf@gnu.org> <87ecte6lvq.fsf@zephyr.silentflame.com> <86jz35nco2.fsf@gnu.org> Date: Sat, 16 Aug 2025 12:56:42 +0100 Message-ID: <87frdrjx8l.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Thu 14 Aug 2025 at 06:30pm +03, Eli Zaretskii wrote: >> From: Sean Whitton >> Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org >> Date: Thu, 14 Aug 2025 15:03:37 +0100 >> >> Do you know of any reason we couldn't refactor things in vc-git.el like >> this? It would reduce complexity a fair bit. > > The problem here is that coding-system-for-write is used for two > purposes: (1) to encode the command-line arguments of a program we are > about to run, and (2) to encode any text we send to the program. And > on Windows we must use two different encodings: command-line arguments > must be encoded with the system codepage, whereas Git prefers its > input and output to be encoded in UTF-8. > > Binding coding-system-for-write to locale-coding-system in > vc-git-command basically overrides any encoding forced by the callers, > including by users (if the type "C-x RET c SOMETHING RET" when > invoking VC commands). > > So unfortunately, I think this complexity is needed. Thanks. We *are* overriding the user, as described, in vc-git-checkin and vc-git-modify-change-comment, but we have to do so there. But we should limit how much we do that. I'll add to the comments. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Aug 2025 12:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175534637925627 (code B ref 79024); Sat, 16 Aug 2025 12:13:01 +0000 Received: (at 79024) by debbugs.gnu.org; 16 Aug 2025 12:12:59 +0000 Received: from localhost ([127.0.0.1]:41492 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1unFmM-0006fG-FS for submit@debbugs.gnu.org; Sat, 16 Aug 2025 08:12:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53062) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1unFmH-0006eu-IM for 79024@debbugs.gnu.org; Sat, 16 Aug 2025 08:12:54 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1unFm9-0003lD-VD; Sat, 16 Aug 2025 08:12:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Kn4X1P+YwS+3Q3HK1zLhT89pc/8/iv1K2h9IpV7OTd8=; b=pSzyrVvYZvUl S68i0IznMKa9GL3/qxqfXPN+ARhnkPV6oKXQFm7M1LSXopiiDnbLszaE2dcXMXIkhpIfEQZ/coZXW P1U6s9Ad3rxIT2brHUDt6lYFpCEZ97N1cBI6rQKfQsFiLm3pYHxAmXWe4xlQtFhThoSloGPFqsd8D dgI0zy+ORVJCvmfZnUlcfEP3+6lginvx4EsF+E/EHSFSEhuaELf0n6SYnu6dU6qib65ViRCcxY9zM dxaJC4sg7qDXHWlQSmqgzc6BwWy6nkQ4FPlFtOvqxJJdHyC15kjqfqprpC8/SNB834S6c04EcwWI5 LhxZxgu4FL3LpqnIWu8Fzw==; Date: Sat, 16 Aug 2025 15:12:41 +0300 Message-Id: <86ikinjwhy.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87ms7zjxqb.fsf@zephyr.silentflame.com> (message from Sean Whitton on Sat, 16 Aug 2025 12:46:04 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <86o6t7305p.fsf@gnu.org> <87tt2zm9f2.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> <86frdvo4hy.fsf@gnu.org> <87cy8y84xn.fsf@zephyr.silentflame.com> <86o6sim5s6.fsf@gnu.org> <87plcy6mtt.fsf@zephyr.silentflame.com> <86ldnmlz15.fsf@gnu.org> <87ms7zjxqb.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Sat, 16 Aug 2025 12:46:04 +0100 > > > Checking in foo... > > abort: no username supplied > > (use 'hg config --edit' to set your username) > > Looks like the problem is determining the committer identity. > > I think the attached patch will fix this. I've tested it locally and it > does result in the test commits having the john@doe.ee identity. > Could you test it on Windows? Thanks. I guess I should test this together with the previous patch you sent for vc-hg.el? I still get a failure in that test, but a different one now: Test vc-test-hg07-other-working-trees condition: (ert-test-failed ((should (equal (list second) (vc-call-backend backend ...))) :form (equal ("c:/Users/EliZ/AppData/Local/Temp/vc-testQIJW1t/second/") nil) :value nil :explanation (different-types ("c:/Users/EliZ/AppData/Local/Temp/vc-testQIJW1t/second/") nil))) FAILED 32/56 vc-test-hg07-other-working-trees (0.592570 sec) at lisp/vc/vc-tests/vc-tests.el:1 HTH From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Aug 2025 13:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.17553505857665 (code B ref 79024); Sat, 16 Aug 2025 13:24:01 +0000 Received: (at 79024) by debbugs.gnu.org; 16 Aug 2025 13:23:05 +0000 Received: from localhost ([127.0.0.1]:41641 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1unGsC-0001zW-Ol for submit@debbugs.gnu.org; Sat, 16 Aug 2025 09:23:05 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:59380) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1unGs9-0001yk-Gf for 79024@debbugs.gnu.org; Sat, 16 Aug 2025 09:23:03 -0400 DKIM-Signature: a=rsa-sha256; b=tRbK+24gVlLxHeRvRCfWjU1PzzyohmJmxZk2PyWH3oM9fyPW+EQUl+ffyGc5CDUUqWFe0im7oIDnFcQ/hcpply+vlZlC6HiwtIFE1NV15byYxKOUNVZSIDCXH5b9nmaB7scHQIqKrrwjHjrHf5ukm7Kj7R/mCQ64Z9Ls+Rhp3vSp0tafacD/8LCMgsw20lxERqhB1PRtFmw3yJFzqSqHW5RkANPOCm9GsJq22X9pkgWCS5gkBDw9EkLICwfXzjr5buXxz3BAE22tMysOB7ICsAzBcV7j2Jh9UcjvoKnrm5IzeYECR2rYr4SY4BfwBie2TV20YwF2M0O+3FV4wkAtgA==; s=purelymail2; d=spwhitton.name; v=1; bh=KXzaej1Ri7CfVCFCr4Hi0Tz8ifRCDZBCHyq7Sh/aRAA=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=cGuPTE1aobuFc2qV8ctS23ujDWK7iwgPaWR63a0AHeICmTn/E4WETTKNhmTlW+LQc5bOeZYjM8EvVF2zdUqLv7BHevr/NSUSVFgxxgop+GLGWkbPdnEN/q6nv5ro8XNOdJxopLWygFJwaItp3tZVRiUe1Fep6ueYdNQHAMaiH16Gk1lt9N1dMs5htSvQA00S/QTrQkg6JhAD5NtXdeW4c644AA9sYRBUNjo5D3yFSWM+TOrAmF81xzDV65gwajSUwtbgTJWlYU210V+ehtcJuwy7T8Jvi42YPp/5uJmcQWIC8H/LM4Vom4beMplTDP+U321+Bbl2jzJfJFnc3K52UQ==; s=purelymail2; d=purelymail.com; v=1; bh=KXzaej1Ri7CfVCFCr4Hi0Tz8ifRCDZBCHyq7Sh/aRAA=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1936431547; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sat, 16 Aug 2025 13:22:53 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 05E8E94061E; Sat, 16 Aug 2025 14:22:53 +0100 (BST) From: Sean Whitton In-Reply-To: <86ikinjwhy.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> <86frdvo4hy.fsf@gnu.org> <87cy8y84xn.fsf@zephyr.silentflame.com> <86o6sim5s6.fsf@gnu.org> <87plcy6mtt.fsf@zephyr.silentflame.com> <86ldnmlz15.fsf@gnu.org> <87ms7zjxqb.fsf@zephyr.silentflame.com> <86ikinjwhy.fsf@gnu.org> Date: Sat, 16 Aug 2025 14:22:52 +0100 Message-ID: <87ms7zieoj.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Sat 16 Aug 2025 at 03:12pm +03, Eli Zaretskii wrote: >> From: Sean Whitton >> Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org >> Date: Sat, 16 Aug 2025 12:46:04 +0100 >> >> > Checking in foo... >> > abort: no username supplied >> > (use 'hg config --edit' to set your username) >> >> Looks like the problem is determining the committer identity. >> >> I think the attached patch will fix this. I've tested it locally and it >> does result in the test commits having the john@doe.ee identity. >> Could you test it on Windows? Thanks. > > I guess I should test this together with the previous patch you sent > for vc-hg.el? Right. > I still get a failure in that test, but a different one now: > > Test vc-test-hg07-other-working-trees condition: > (ert-test-failed > ((should (equal (list second) (vc-call-backend backend ...))) :form > (equal ("c:/Users/EliZ/AppData/Local/Temp/vc-testQIJW1t/second/") > nil) > :value nil :explanation > (different-types > ("c:/Users/EliZ/AppData/Local/Temp/vc-testQIJW1t/second/") nil))) > FAILED 32/56 vc-test-hg07-other-working-trees (0.592570 sec) at lisp/vc/vc-tests/vc-tests.el:1 > > HTH It does, thanks. So, looks like my implementation of the coding systems hack for Mercurial is fine. So I've installed that. Then I think what we have is an actual bug instead of just a test suite problem. One or both of vc-hg-add-working-tree and vc-hg-known-other-working-trees don't work on Windows. I suspect that it is the latter. Could you take a glance over vc-hg-known-other-working-trees and see if perhaps it is making obviously invalid assumptions about Windows paths? If that doesn't reveal anything, I'd like to ask you to try manually creating a new working tree, from Emacs, to rule out any problems with vc-hg-add-working-tree. Something like this: - M-x mkdir RET ~/foo RET - C-x C-f ~/foo/bar RET blah C-x C-s - C-x v v + it should prompt for the backend, choose Hg - C-x v v blahblah C-c C-c + checks in the file - C-x v w c foo2 RET Now check that there is a new tree foo/../foo2/ (or wherever you put it) and that the file foo/../foo2/.hg/sharedpath contains the path of the original foo. If there is then we can be pretty sure the problem is vc-hg-known-other-working-trees. -- Sean Whitton From unknown Sat Sep 20 03:14:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79024: 31.0.50; Multiple working trees support for VC Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Aug 2025 14:04:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79024 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org Received: via spool by 79024-submit@debbugs.gnu.org id=B79024.175535302517233 (code B ref 79024); Sat, 16 Aug 2025 14:04:02 +0000 Received: (at 79024) by debbugs.gnu.org; 16 Aug 2025 14:03:45 +0000 Received: from localhost ([127.0.0.1]:43019 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1unHVY-0004Tt-HJ for submit@debbugs.gnu.org; Sat, 16 Aug 2025 10:03:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36364) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1unHVT-0004TT-35 for 79024@debbugs.gnu.org; Sat, 16 Aug 2025 10:03:41 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1unHVM-0004bU-S0; Sat, 16 Aug 2025 10:03:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=UqJ+Ox6VTVnbl1vo1mDTUZDWkqOOpXr8vpH9nykSHVs=; b=GE7PmK7v8vk4 vck3jLjR74MpL72A002deJwm6O7tS+Gk3DrOEsf1lKpGVSL5irOfjmh3JGYbvMSK411k/8fVdtF0E ONDZ/cwcYM/RaFAS6ltsRBgEaW2N4Vx1gb8Jpa1ZvTxQYKyQhVc1bIN80A7pGXU1mW1bNBnZrrMBR MzATU/jozIVWhEeoGX7hXKvFSs8C5RfobkP9VH/l9lt0YyPYHku9OXEkFigZnkydeyIiCvyxL2mPH EsRbTGblS59o+3hM/jx/RzaP3PlkIapwqSEG2Dfd42JSu+ogS4s+hmywaS7oEMNLWyIW+/3tpYz9R Y4kinZ52S4xLlSaKM+l8yQ==; Date: Sat, 16 Aug 2025 17:03:30 +0300 Message-Id: <86bjofjrd9.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87ms7zieoj.fsf@zephyr.silentflame.com> (message from Sean Whitton on Sat, 16 Aug 2025 14:22:52 +0100) References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <86qzy3ysce.fsf@gnu.org> <87v7nekoso.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> <86frdvo4hy.fsf@gnu.org> <87cy8y84xn.fsf@zephyr.silentflame.com> <86o6sim5s6.fsf@gnu.org> <87plcy6mtt.fsf@zephyr.silentflame.com> <86ldnmlz15.fsf@gnu.org> <87ms7zjxqb.fsf@zephyr.silentflame.com> <86ikinjwhy.fsf@gnu.org> <87ms7zieoj.fsf@zephyr.silentflame.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Sean Whitton > Cc: dmitry@gutov.dev, 79024@debbugs.gnu.org > Date: Sat, 16 Aug 2025 14:22:52 +0100 > > > Test vc-test-hg07-other-working-trees condition: > > (ert-test-failed > > ((should (equal (list second) (vc-call-backend backend ...))) :form > > (equal ("c:/Users/EliZ/AppData/Local/Temp/vc-testQIJW1t/second/") > > nil) > > :value nil :explanation > > (different-types > > ("c:/Users/EliZ/AppData/Local/Temp/vc-testQIJW1t/second/") nil))) > > FAILED 32/56 vc-test-hg07-other-working-trees (0.592570 sec) at lisp/vc/vc-tests/vc-tests.el:1 > > > > HTH > > It does, thanks. So, looks like my implementation of the coding systems > hack for Mercurial is fine. So I've installed that. > > Then I think what we have is an actual bug instead of just a test suite > problem. One or both of vc-hg-add-working-tree and > vc-hg-known-other-working-trees don't work on Windows. I suspect that > it is the latter. > > Could you take a glance over vc-hg-known-other-working-trees and see if > perhaps it is making obviously invalid assumptions about Windows paths? > > If that doesn't reveal anything, I'd like to ask you to try manually > creating a new working tree, from Emacs, to rule out any problems with > vc-hg-add-working-tree. Something like this: > > - M-x mkdir RET ~/foo RET > - C-x C-f ~/foo/bar RET blah C-x C-s > - C-x v v > + it should prompt for the backend, choose Hg > - C-x v v blahblah C-c C-c > + checks in the file > - C-x v w c foo2 RET > > Now check that there is a new tree foo/../foo2/ (or wherever you put it) > and that the file foo/../foo2/.hg/sharedpath contains the path of the > original foo. If there is then we can be pretty sure the problem is > vc-hg-known-other-working-trees. Thanks, I hope the problem and its solution are clear from the patch below. With that, the test now passes. I hope using expand-file-name doesn't slow this down too much. (I considered using file-equal-p, but the results are undefined if one or both of the files don't exist.) diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el index e9095b7..564cb00 100644 --- a/lisp/vc/vc-hg.el +++ b/lisp/vc/vc-hg.el @@ -1738,7 +1738,10 @@ vc-hg-known-other-working-trees (if (file-exists-p our-sp) (with-temp-buffer (insert-file-contents-literally our-sp) - (setq our-store (string-trim (buffer-string))) + ;; On MS-Windows, ".hg/sharedpath" gives file names with + ;; backslashes; expand-file-name normalizes that to forward + ;; slashes, needed for 'equal' comparison below. + (setq our-store (expand-file-name (string-trim (buffer-string)))) (push (abbreviate-file-name (file-name-directory our-store)) shares)) (setq our-store (expand-file-name ".hg" our-root))) @@ -1748,7 +1751,9 @@ vc-hg-known-other-working-trees ((file-exists-p sp))) (with-temp-buffer (insert-file-contents-literally sp) - (when (equal our-store (buffer-string)) + (when (equal our-store + ;; See above why we use expand-file-name + (expand-file-name (string-trim (buffer-string)))) (push root shares))))) shares)) From unknown Sat Sep 20 03:14:08 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Sean Whitton Subject: bug#79024: closed (Re: bug#79024: 31.0.50; Multiple working trees support for VC) Message-ID: References: <874iu7hzyj.fsf@zephyr.silentflame.com> <87v7nt4qr9.fsf@zephyr.silentflame.com> X-Gnu-PR-Message: they-closed 79024 X-Gnu-PR-Package: emacs Reply-To: 79024@debbugs.gnu.org Date: Sat, 16 Aug 2025 18:42:01 +0000 Content-Type: multipart/mixed; boundary="----------=_1755369721-18190-1" This is a multi-part message in MIME format... ------------=_1755369721-18190-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #79024: 31.0.50; Multiple working trees support for VC which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 79024@debbugs.gnu.org. --=20 79024: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D79024 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1755369721-18190-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 79024-done) by debbugs.gnu.org; 16 Aug 2025 18:41:12 +0000 Received: from localhost ([127.0.0.1]:43490 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1unLq3-0004hm-Ji for submit@debbugs.gnu.org; Sat, 16 Aug 2025 14:41:12 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:39744) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1unLpx-0004h3-Jz for 79024-done@debbugs.gnu.org; Sat, 16 Aug 2025 14:41:09 -0400 DKIM-Signature: a=rsa-sha256; b=kSW68X1PNPEWeAcO/tkkYxShh2Itt9VfZgSp1phS55RQfiUyZ8DDYjnvrfrEd8NUIE5kynzj4M0dugiHdgpjpoE/3vAdlYz1UHEBzsaJjamjdvnB49MH6hsdfnmlBzjMjC4p9B/UOTD9+eDxNYCif+oB4/NmuFuStWETUdpYUH+PSWdsDV4bkHQhBsWcCXbdMs6Jhr4Cjikv7qyCZZljMvnrZbBP06D5IZDVtVPmGjxwdkaHVMSDSX8uV+25F5p1RfIZduZmfq0yxkg3UxSb0KMl/oAHlW9eahdQjrODEF6vy0VW9jehbIRP4MvJoHEyxGvGHH3+3c+SIqL0gO6d2g==; s=purelymail2; d=spwhitton.name; v=1; bh=88RfoJm1WIQptkVxYBIkpuBYlO4om2mViC+y0LiNIvE=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=OqMuLUTnV4wE6MxduZNxfZX1oKy9uQQdYT15diF/SwC6yJABzQiw8Jc057Cv1E7m+2+dohHiQP6QhuoaTLMujP7PHaVIsH85clkKqwvTw43PMo04CRVMq78GxmkG6TNcNTP/vz1gDyiA0Tjg5sNcAa03/NKb69/mEPJMWWKbfXRdnd9oecXBI6Zp6HaVB/MqQYdNboXj2/iztyGDGloMHUoN0OYnGLzyk+a29c2dhpYhu3bU7iAkHEfRUYSwuj0tjubbwooUSn+6M/hEYbidBhMSNrSMaSvTgPhqX2rfEPLO9wYygjEz19O624YId83sku1+lwFjkf/FVo4rm6+Ykg==; s=purelymail2; d=purelymail.com; v=1; bh=88RfoJm1WIQptkVxYBIkpuBYlO4om2mViC+y0LiNIvE=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024-done@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1655359733; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sat, 16 Aug 2025 18:40:52 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 5484E94053D; Sat, 16 Aug 2025 19:40:52 +0100 (BST) From: Sean Whitton To: Eli Zaretskii Subject: Re: bug#79024: 31.0.50; Multiple working trees support for VC In-Reply-To: <86bjofjrd9.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> <86frdvo4hy.fsf@gnu.org> <87cy8y84xn.fsf@zephyr.silentflame.com> <86o6sim5s6.fsf@gnu.org> <87plcy6mtt.fsf@zephyr.silentflame.com> <86ldnmlz15.fsf@gnu.org> <87ms7zjxqb.fsf@zephyr.silentflame.com> <86ikinjwhy.fsf@gnu.org> <87ms7zieoj.fsf@zephyr.silentflame.com> <86bjofjrd9.fsf@gnu.org> Date: Sat, 16 Aug 2025 19:40:52 +0100 Message-ID: <874iu7hzyj.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79024-done Cc: dmitry@gutov.dev, 79024-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, Excellent, thanks. With your patch applied the tests pass here too. Installed and closing the bug. -- Sean Whitton ------------=_1755369721-18190-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 15 Jul 2025 11:50:56 +0000 Received: from localhost ([127.0.0.1]:40706 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ubeBU-0000tO-3n for submit@debbugs.gnu.org; Tue, 15 Jul 2025 07:50:56 -0400 Received: from lists.gnu.org ([2001:470:142::17]:45436) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ubeBQ-0000t2-0f for submit@debbugs.gnu.org; Tue, 15 Jul 2025 07:50:53 -0400 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 1ubeBG-00080j-MZ for bug-gnu-emacs@gnu.org; Tue, 15 Jul 2025 07:50:44 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubeBC-0003wQ-K6 for bug-gnu-emacs@gnu.org; Tue, 15 Jul 2025 07:50:42 -0400 DKIM-Signature: a=rsa-sha256; b=JUxBzZ+IREulnJXnjqmTspujnX7S3+g+sY5E2vYYAm3xAiDXBjD6JpxofA+gmaTGJfV6rXk2jBiPOnbURscXEZVckFtriRqsNO5erC0LiMIhvsKuCdEHv/k0l15riwH+cAXI1/dzWg549+TO7NXu2bo70gcGRYKaoes/A9nDqjaxlttCWDIe5mUsfnJN4m+nYAMvBAFNSMd0ugc6XJUeLfQewZaO4yWlSLwcB8bvEb3xxkBZ41gzeupOrmVcg7JIADCmnUVq5hCO/uzdenZJWkARX+5iXdxitFRmgQzoXooPp5XZ4biyw3wwuW7ThpitsZWJhSazI14CR9DzF6zBsA==; s=purelymail3; d=spwhitton.name; v=1; bh=DQAiSG77lwa2quMwMso1EyEBqjXJu/h7GDBQzpkmSus=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=rHhDpLmpEUWUzgovcqJ+rgxJSqrDaERp3u9lyoH7NE4L/NbfvOVRAwXq6BV/QKHhNM65d4BrVEf87gnK9PdPCJiJDj/uU9EkDRWgMc01QnuAlWlIoM52CQJviGMz8AZVRpVJ1rPkA8FP+FMrWF6PisSebcmQx0GGEs5/o86DXWZx0ztAV5Ra5aNZCMi1HNSpBshfsSPQTWGwV9AEucSVNhaas3nVU73qZGWX/z+hid8W201iIlymg6TGV6NnKfAPHu0WdZ0AVTrafNnMofkeCcDCN9ChLac8EshECwZYNtYhpuo6+pmpN2YyFyZQ80FcGs0j6+b0BVLOcdTBw5xQdw==; s=purelymail3; d=purelymail.com; v=1; bh=DQAiSG77lwa2quMwMso1EyEBqjXJu/h7GDBQzpkmSus=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: bug-gnu-emacs@gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -212229368 for (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Tue, 15 Jul 2025 11:50:34 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 1354A941B63; Tue, 15 Jul 2025 12:50:34 +0100 (BST) From: Sean Whitton To: bug-gnu-emacs@gnu.org Subject: 31.0.50; Multiple working trees support for VC Date: Tue, 15 Jul 2025 12:50:34 +0100 Message-ID: <87v7nt4qr9.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=34.202.193.197; envelope-from=spwhitton@spwhitton.name; helo=sendmail.purelymail.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) X-debbugs-cc: sbaugh@janestreet.com, dmitry@gutov.dev Hello, I would like to add support for multiple working trees to VC. This is 'git worktree' for Git and 'hg share' for Mercurial. It may or may not map onto trunk/ vs. branch/ in SVN; see below. TERMINOLOGY VC's documentation consistently uses "working tree" to refer to what we often also call the "working directory", "clone", "checkout". I think that we can introduce the idea of "other working trees" and commands that operate on them. I don't believe we need to distinguish between primary and secondary working trees, which is a VCS-specific concept. If a Git user tries to delete the primary worktree from a secondary worktree, for example, it's just an error, signalled by the relevant backend-specific function. These commands would probably be meaningful only for changeset-based VCS, not file-based VCS. COMMANDS - C-x v w c: Add a new working tree. The user must specify what branch, revision or tag to check out there. Probably the prompting should be as similar as possible to C-x v r and/or C-x v b s (which we might want to improve and/or unify first). - C-x v w w: Switch to another working tree. This is a contextual command. When used in a file-visiting or dired buffer, it means visit that same file name under one of the other working trees. E.g. if you have worktrees for the Emacs master and release branches, you can use it to hop between vc.el on master and vc.el on emacs-30. In *vc-dir* it means to switch to *vc-dir* for the other worktree. Each working tree is already a separate project.el project, which is what we want. + If we keep the list of other working trees sorted by recency, then C-x v w w RET would allow you to switch back and forth between (the same file name in) your two most recently used working trees. - C-x v w s: A wrapper around C-x p p but with selection limited to other working trees of this project. - C-x v w x: Delete a working tree. - C-x v w R: Relocate a working tree. Move or rename it, updating VC and project.el metadata as appropriate. BACKEND FUNCTIONS - other-working-trees: Return a list of all other working trees. - add-working-tree, delete-working-tree, move-working-tree. SVN BRANCHES Adding a new working tree is the same as creating a new branch, I think? I think there are two ways we could go here: 1. Decide that SVN does not support other working trees in the sense of these new commands, such that they are no-ops. 2. Make the new commands effectively synonyms of existing branch-related commands for SVN. QUESTIONS - Are there other things that we might want to support that wouldn't be covered by this API? - Does project.el need to know about these relationships between trees, or do we leave it all up to VC? I think the latter. I.e., from project.el's point of view, each working tree is its own project. - What shall we do with CVS/SVN branches? I've made two suggestions. - How are the bindings I've suggested? Intuitive enough? Thank you in advance for any feedback. -- Sean Whitton ------------=_1755369721-18190-1-- From unknown Sat Sep 20 03:14:08 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Paul Eggert Subject: bug#79104: closed (Re: bug#79024: 31.0.50; Multiple working trees support for VC) Message-ID: References: <874iu7hzyj.fsf@zephyr.silentflame.com> <55f64ad9-546a-45cb-b984-3904d2dcdaa1@cs.ucla.edu> X-Gnu-PR-Message: they-closed 79104 X-Gnu-PR-Package: emacs Reply-To: 79104@debbugs.gnu.org Date: Sat, 16 Aug 2025 18:42:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1755369722-18190-3" This is a multi-part message in MIME format... ------------=_1755369722-18190-3 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #79024: vc-test-git07-other-working-trees failure with current master which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 79104@debbugs.gnu.org. --=20 79024: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D79024 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1755369722-18190-3 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 79024-done) by debbugs.gnu.org; 16 Aug 2025 18:41:12 +0000 Received: from localhost ([127.0.0.1]:43490 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1unLq3-0004hm-Ji for submit@debbugs.gnu.org; Sat, 16 Aug 2025 14:41:12 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:39744) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1unLpx-0004h3-Jz for 79024-done@debbugs.gnu.org; Sat, 16 Aug 2025 14:41:09 -0400 DKIM-Signature: a=rsa-sha256; b=kSW68X1PNPEWeAcO/tkkYxShh2Itt9VfZgSp1phS55RQfiUyZ8DDYjnvrfrEd8NUIE5kynzj4M0dugiHdgpjpoE/3vAdlYz1UHEBzsaJjamjdvnB49MH6hsdfnmlBzjMjC4p9B/UOTD9+eDxNYCif+oB4/NmuFuStWETUdpYUH+PSWdsDV4bkHQhBsWcCXbdMs6Jhr4Cjikv7qyCZZljMvnrZbBP06D5IZDVtVPmGjxwdkaHVMSDSX8uV+25F5p1RfIZduZmfq0yxkg3UxSb0KMl/oAHlW9eahdQjrODEF6vy0VW9jehbIRP4MvJoHEyxGvGHH3+3c+SIqL0gO6d2g==; s=purelymail2; d=spwhitton.name; v=1; bh=88RfoJm1WIQptkVxYBIkpuBYlO4om2mViC+y0LiNIvE=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=OqMuLUTnV4wE6MxduZNxfZX1oKy9uQQdYT15diF/SwC6yJABzQiw8Jc057Cv1E7m+2+dohHiQP6QhuoaTLMujP7PHaVIsH85clkKqwvTw43PMo04CRVMq78GxmkG6TNcNTP/vz1gDyiA0Tjg5sNcAa03/NKb69/mEPJMWWKbfXRdnd9oecXBI6Zp6HaVB/MqQYdNboXj2/iztyGDGloMHUoN0OYnGLzyk+a29c2dhpYhu3bU7iAkHEfRUYSwuj0tjubbwooUSn+6M/hEYbidBhMSNrSMaSvTgPhqX2rfEPLO9wYygjEz19O624YId83sku1+lwFjkf/FVo4rm6+Ykg==; s=purelymail2; d=purelymail.com; v=1; bh=88RfoJm1WIQptkVxYBIkpuBYlO4om2mViC+y0LiNIvE=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79024-done@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1655359733; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sat, 16 Aug 2025 18:40:52 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 5484E94053D; Sat, 16 Aug 2025 19:40:52 +0100 (BST) From: Sean Whitton To: Eli Zaretskii Subject: Re: bug#79024: 31.0.50; Multiple working trees support for VC In-Reply-To: <86bjofjrd9.fsf@gnu.org> References: <87v7nt4qr9.fsf@zephyr.silentflame.com> <86ms8qxaaw.fsf@gnu.org> <8734ahl8lr.fsf@zephyr.silentflame.com> <86ecu0xzt1.fsf@gnu.org> <87y0s8hyyz.fsf@zephyr.silentflame.com> <86ldnrjvs0.fsf@gnu.org> <87349zuzv7.fsf@zephyr.silentflame.com> <86cy93jqmu.fsf@gnu.org> <86a547jobo.fsf@gnu.org> <87sehwr89m.fsf@zephyr.silentflame.com> <86cy90ad4w.fsf@gnu.org> <871ppgfhju.fsf@zephyr.silentflame.com> <86frdvo4hy.fsf@gnu.org> <87cy8y84xn.fsf@zephyr.silentflame.com> <86o6sim5s6.fsf@gnu.org> <87plcy6mtt.fsf@zephyr.silentflame.com> <86ldnmlz15.fsf@gnu.org> <87ms7zjxqb.fsf@zephyr.silentflame.com> <86ikinjwhy.fsf@gnu.org> <87ms7zieoj.fsf@zephyr.silentflame.com> <86bjofjrd9.fsf@gnu.org> Date: Sat, 16 Aug 2025 19:40:52 +0100 Message-ID: <874iu7hzyj.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79024-done Cc: dmitry@gutov.dev, 79024-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, Excellent, thanks. With your patch applied the tests pass here too. Installed and closing the bug. -- Sean Whitton ------------=_1755369722-18190-3 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 26 Jul 2025 20:08:40 +0000 Received: from localhost ([127.0.0.1]:45317 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uflCB-0001Xd-ND for submit@debbugs.gnu.org; Sat, 26 Jul 2025 16:08:40 -0400 Received: from lists.gnu.org ([2001:470:142::17]:55044) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uflC9-0001X3-Du for submit@debbugs.gnu.org; Sat, 26 Jul 2025 16:08:38 -0400 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 1uflBy-000771-3V for bug-gnu-emacs@gnu.org; Sat, 26 Jul 2025 16:08:26 -0400 Received: from mail.cs.ucla.edu ([131.179.128.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uflBv-0002Y8-Ai for bug-gnu-emacs@gnu.org; Sat, 26 Jul 2025 16:08:25 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id E60B03C010860; Sat, 26 Jul 2025 13:08:20 -0700 (PDT) Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP id Vitt5yjpAepz; Sat, 26 Jul 2025 13:08:20 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id BCFDA3C0149C9; Sat, 26 Jul 2025 13:08:20 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu BCFDA3C0149C9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1753560500; bh=DRM2enXv+jAyt3bhqJOE5B8OQtmovTNM4bHUGGvE0ZA=; h=Message-ID:Date:MIME-Version:To:From; b=bEWZrPE13fEl74CA6c4Lp2RxGYM47C99703PIQDZgVkxkHoiHO8rokSvpWc2d/Klw gkarxphzsduohlBfD92VKyvqajeeZ2mSWhKPEInkvBjKOM88uVyuQYuJ+xn0n6bTeE QcoEsFhUwaUbgWCfuyMcBAeenwgrcjT1zBVMh7gBSzYe3cV8YQ3aRqB4nHWFMZ+u7W 29IL7T0+nQy7kVLDmsGDYqEkT+YdvoeB5VBjSmvrZAZIFhQaAhKXXdE7hK5AtQJ2+x 50DQb5jVEkUCRL9BMdmjVV5Ujjj9NBwYSVx8+Esle3ytdJfxrgAAL44U+fsdHL9b6i PhgZVWEGrkDXg== X-Virus-Scanned: amavis at mail.cs.ucla.edu Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP id ZsBaBLSYLVeY; Sat, 26 Jul 2025 13:08:20 -0700 (PDT) Received: from penguin.cs.ucla.edu (47-154-30-222.fdr01.snmn.ca.ip.frontiernet.net [47.154.30.222]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id 8E8623C010860; Sat, 26 Jul 2025 13:08:20 -0700 (PDT) Message-ID: <55f64ad9-546a-45cb-b984-3904d2dcdaa1@cs.ucla.edu> Date: Sat, 26 Jul 2025 13:08:20 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Emacs bug reports and feature requests From: Paul Eggert Subject: vc-test-git07-other-working-trees failure with current master Organization: UCLA Computer Science Department Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=131.179.128.66; envelope-from=eggert@cs.ucla.edu; helo=mail.cs.ucla.edu X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit Cc: Sean Whitton X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) I just now got the following failure with "make -j12 check" on current=20 master (commit 547525176f23bb543687de1be853da9ad556d60e), when running=20 on Ubuntu 25.04 x86-64. I see that recent changes were made to lisp/vc=20 so I expect that's related. Running 32 tests (2025-07-26 12:56:09-0700, selector =E2=80=98(not (or (t= ag=20 :expensive-test) (tag :unstable) (tag :nativecomp)))=E2=80=99) passed 1/32 vc-test-cvs00-create-repo (0.002621 sec) Registering (/tmp/vc-testlWDBzL/foo bla)... Registering (/tmp/vc-testlWDBzL/foo bla)... done passed 2/32 vc-test-cvs01-register (0.005654 sec) vc-state2 nil vc-state3 CVS unregistered Registering (foo)... Registering (foo)... done vc-state4 added vc-state5 unsupported passed 3/32 vc-test-cvs02-state (0.006105 sec) vc-working-revision1 nil vc-working-revision2 nil vc-working-revision3 nil Registering (foo)... Registering (foo)... done vc-working-revision4 0 vc-working-revision5 unsupported passed 4/32 vc-test-cvs03-working-revision (0.005702 sec) vc-checkout-model1 implicit vc-checkout-model2 implicit vc-checkout-model3 implicit Registering (foo)... Registering (foo)... done vc-checkout-model4 implicit vc-checkout-model5 unsupported passed 5/32 vc-test-cvs04-checkout-model (0.005205 sec) skipped 6/32 vc-test-cvs05-rename-file (0.000097 sec) Registering (foo)... Registering (foo)... done Checking out /tmp/vc-testFlG5xW/foo... Checking out /tmp/vc-testFlG5xW/foo...done Mark set Press C-c C-c when you are done editing. Enter a change comment. Type C-c C-c when done Checking in foo... Checking in foo...done Checking out /tmp/vc-testFlG5xW/foo... Checking out /tmp/vc-testFlG5xW/foo...done Finding changes in /tmp/vc-testFlG5xW/foo... passed 7/32 vc-test-cvs06-version-diff (0.745799 sec) skipped 8/32 vc-test-cvs07-other-working-trees (0.000085 sec) passed 9/32 vc-test-git00-create-repo (0.002417 sec) Registering (/tmp/vc-testURuCd3/foo bla)... Registering (/tmp/vc-testURuCd3/foo bla)... done passed 10/32 vc-test-git01-register (0.034710 sec) vc-state2 nil vc-state3 Git unregistered Registering (foo)... Registering (foo)... done vc-state4 added vc-state5 Git unregistered passed 11/32 vc-test-git02-state (0.014457 sec) vc-working-revision1 nil vc-working-revision2 nil vc-working-revision3 nil Registering (foo)... Registering (foo)... done vc-working-revision4 nil vc-working-revision5 nil passed 12/32 vc-test-git03-working-revision (0.016560 sec) vc-checkout-model1 implicit vc-checkout-model2 implicit vc-checkout-model3 implicit Registering (foo)... Registering (foo)... done vc-checkout-model4 implicit vc-checkout-model5 implicit passed 13/32 vc-test-git04-checkout-model (0.008949 sec) Registering (foo)... Registering (foo)... done passed 14/32 vc-test-git05-rename-file (0.013171 sec) Registering (foo)... Registering (foo)... done Mark set Press C-c C-c when you are done editing. Enter a change comment. Type C-c C-c when done Checking in foo... Checking in foo...done Finding changes in /tmp/vc-testoYI4Tv/foo... passed 15/32 vc-test-git06-version-diff (0.025248 sec) Registering (foo)... Registering (foo)... done Mark set Press C-c C-c when you are done editing. Enter a change comment. Type C-c C-c when done Checking in foo... Test vc-test-git07-other-working-trees backtrace: signal(error ("Failed (status 128): git --no-pager commit -m Testing error("Failed (%s): %s" "status 128" "git --no-pager commit -m Testi vc-do-command("*vc*" 0 "git" ("foo") "--no-pager" "commit" "-m" "Tes apply(vc-do-command "*vc*" 0 "git" ("foo") "--no-pager" ("commit" "- vc-git-command(nil 0 ("foo") "commit" "-m" "Testing other working tr apply(vc-git-command nil 0 ("foo") ("commit" "-m" "Testing other wor vc-git-checkin(("foo") #("Summary: Testing other working trees\n" 0 apply(vc-git-checkin (("foo") #("Summary: Testing other working tree vc-call-backend(Git checkin ("foo") #("Summary: Testing other workin #f(compiled-function (backend rev patch-string files comment) #) vc-finish-logentry() funcall-interactively(vc-finish-logentry) call-interactively(vc-finish-logentry) log-edit-done() vc-test--other-working-trees(Git) #f(lambda () :dynbind (let ((value-90 (gensym "ert-form-evaluation-a #f(compiled-function () #)() handler-bind-1(#f(compiled-function () # ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test ert-run-test(#s(ert-test :name vc-test-git07-other-working-trees :do ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m ert-run-tests((not (or (tag :expensive-test) (tag :unstable) (tag :n ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable) ( ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) ( command-line-1(("-L" ":." "-l" "ert" "--eval" "(setq treesit-extra-l command-line() normal-top-level() Test vc-test-git07-other-working-trees condition: (error "Failed (status 128): git --no-pager commit -m Testing other=20 working trees\n\n --only -- foo") FAILED 16/32 vc-test-git07-other-working-trees (0.022482 sec) at=20 lisp/vc/vc-tests/vc-tests.el:1 passed 17/32 vc-test-hg00-create-repo (0.190110 sec) Registering (/tmp/vc-testLxDt02/foo bla)... Registering (/tmp/vc-testLxDt02/foo bla)... done passed 18/32 vc-test-hg01-register (2.158374 sec) vc-state2 nil vc-state3 Hg unregistered Registering (foo)... Registering (foo)... done vc-state4 added vc-state5 Hg unregistered passed 19/32 vc-test-hg02-state (0.737868 sec) vc-working-revision1 nil vc-working-revision2 nil vc-working-revision3 nil Registering (foo)... Registering (foo)... done vc-working-revision4 -1 vc-working-revision5 nil passed 20/32 vc-test-hg03-working-revision (0.739917 sec) vc-checkout-model1 implicit vc-checkout-model2 implicit vc-checkout-model3 implicit Registering (foo)... Registering (foo)... done vc-checkout-model4 implicit vc-checkout-model5 implicit passed 21/32 vc-test-hg04-checkout-model (0.402822 sec) Registering (foo)... Registering (foo)... done passed 22/32 vc-test-hg05-rename-file (0.728403 sec) Registering (foo)... Registering (foo)... done Mark set Press C-c C-c when you are done editing. Enter a change comment. Type C-c C-c when done Checking in foo... Checking in foo...done Finding changes in /tmp/vc-testafHXmn/foo... passed 23/32 vc-test-hg06-version-diff (0.985252 sec) skipped 24/32 vc-test-hg07-other-working-trees (0.090941 sec) passed 25/32 vc-test-rcs00-create-repo (0.000237 sec) Registering (/tmp/vc-testcfaANA/foo bla)... Registering (/tmp/vc-testcfaANA/foo bla)... done passed 26/32 vc-test-rcs01-register (0.010584 sec) vc-state2 nil vc-state3 RCS unregistered Registering (foo)... Registering (foo)... done vc-state4 up-to-date vc-state5 RCS unregistered passed 27/32 vc-test-rcs02-state (0.004707 sec) vc-working-revision1 nil vc-working-revision2 nil vc-working-revision3 nil Registering (foo)... Registering (foo)... done vc-working-revision4 1.1 vc-working-revision5 nil passed 28/32 vc-test-rcs03-working-revision (0.004764 sec) vc-checkout-model1 locking vc-checkout-model2 locking vc-checkout-model3 locking Registering (foo)... Registering (foo)... done vc-checkout-model4 locking vc-checkout-model5 locking passed 29/32 vc-test-rcs04-checkout-model (0.004797 sec) Registering (foo)... Registering (foo)... done passed 30/32 vc-test-rcs05-rename-file (0.006994 sec) Registering (foo)... Registering (foo)... done Checking out /tmp/vc-testERJ7gd/foo... Checking out /tmp/vc-testERJ7gd/foo...done Mark set Press C-c C-c when you are done editing. Enter a change comment. Type C-c C-c when done Checking in foo... Checking in foo...done Checking out /tmp/vc-testERJ7gd/foo... Checking out /tmp/vc-testERJ7gd/foo...done Finding changes in /tmp/vc-testERJ7gd/foo... passed 31/32 vc-test-rcs06-version-diff (0.014712 sec) skipped 32/32 vc-test-rcs07-other-working-trees (0.000066 sec) Ran 32 tests, 27 results as expected, 1 unexpected, 4 skipped=20 (2025-07-26 12:56:16-0700, 7.097466 sec) 1 unexpected results: FAILED vc-test-git07-other-working-trees 4 skipped results: SKIPPED vc-test-cvs05-rename-file SKIPPED vc-test-cvs07-other-working-trees SKIPPED vc-test-hg07-other-working-trees SKIPPED vc-test-rcs07-other-working-trees make[3]: *** [Makefile:184: lisp/vc/vc-tests/vc-tests.log] Error 1 make[3]: Leaving directory '/home/eggert/src/gnu/emacs/static-checking/te= st' make[2]: [Makefile:348: check-doit] Error 2 (ignored) ------------=_1755369722-18190-3--