GNU bug report logs - #77122
[PATCH] project--find-in-directory resolves symlinks

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Ship Mints <shipmints@HIDDEN>; Keywords: patch; dated Wed, 19 Mar 2025 16:56:04 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 26 Mar 2025 13:00:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 26 09:00:31 2025
Received: from localhost ([127.0.0.1]:42025 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1txQMw-0006Oz-MG
	for submit <at> debbugs.gnu.org; Wed, 26 Mar 2025 09:00:31 -0400
Received: from fout-b7-smtp.messagingengine.com ([202.12.124.150]:46913)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1txQMr-0005rS-NP
 for 77122 <at> debbugs.gnu.org; Wed, 26 Mar 2025 09:00:26 -0400
Received: from phl-compute-10.internal (phl-compute-10.phl.internal
 [10.202.2.50])
 by mailfout.stl.internal (Postfix) with ESMTP id F1F6E11401C9;
 Wed, 26 Mar 2025 09:00:19 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-10.internal (MEProxy); Wed, 26 Mar 2025 09:00:20 -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=fm3; t=1742994019;
 x=1743080419; bh=n3vTdityEva+aQqemP95BVBhdHqbZsjS6+0TXrPmBZ4=; b=
 XS0dHKGN4Dwy0LN/MbS3D3wxrJcIy/hmtbht++qcZqZlzq9vaInxUwTpfHSUgqJ2
 j76jd0zbpKZcDzKov7XHrV/Mj2SVtJoLl/Eh1GkTwMcvahUyK9jHxp4S9LceDEKR
 4Y0rHJfr5yNY3m7BG2avOXrJH6DUYM+vQEBTnXUei10Ybks//a5+2rUL9wYLjrie
 h2VuvxLN2n/ERvk2qRQx/xkqvorKO1jeYUYD/s2ZJ8SLKQbYyRE9lcT7n1dYR254
 LeTAP7cF1g1IN/csPZRqsVr8VOkSq1dcx3d87Eza5Pn8/SAnTZWaqIsn6GCKI1uY
 Nc6vsrtHmO9w97L/jTS1LQ==
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=fm2; t=1742994019; x=
 1743080419; bh=n3vTdityEva+aQqemP95BVBhdHqbZsjS6+0TXrPmBZ4=; b=s
 WCSDm1MoHAvbcDVBXz7fli0dKD8c/dQNMPRTFfbYo2QW/wsX6CCCY4DMRC8dhYX6
 uxalqEPcD6oKDLoIYwhYQ9TzmI4BUdaa2GKl++/3vgLDSJZ8svNMazfH2u9hp0I/
 zJISlkVtRHSQszTqBQ4+yo87tHVpd3U3kkvsQYJPIExNNLDR1vkG9plRYucCIAMN
 lBNX0/ELD+CRJLDXoTuN6yOIBmgsga4ZabbaoFePnngqPF92IFvnUohuHaSk1i6w
 Xuaws0H7YD7Ey/AbRdBteuPqvTfc4KhN6aF9O0pUNnD9ONjsDbDnYq88rLz5JccM
 Kc/qvissIPACFpiFCMScQ==
X-ME-Sender: <xms:YvrjZ-d9issl9DAzoHxZz82baRmmkyn3ap4iVIRT9ORJ3FDexMymNg>
 <xme:YvrjZ4NB_8EHeOlz1cC0PAlH9a9X0IsxIXa4ZOyyDSbxmV2MDn04aPmX7zmCTjtwG
 cpiEaWFDllu9U_Tn_I>
X-ME-Received: <xmr:YvrjZ_juruTwypIYRPf07zOATJKz1E2ITt49NSl8EgVybrciByhnWclGyNLvuNbzIV8Z>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduieehheelucetufdoteggodetrf
 dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
 pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
 gvnhhtshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddt
 vdejnecuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovh
 druggvvheqnecuggftrfgrthhtvghrnhepfedvjeeviefffeeukeelveeikeegtddtveei
 leevgfdvgffhtdfggeeffeegiefgnecuffhomhgrihhnpehgihhthhhusgdrtghomhenuc
 evlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumhhithhr
 hiesghhuthhovhdruggvvhdpnhgspghrtghpthhtohepgedpmhhouggvpehsmhhtphhouh
 htpdhrtghpthhtohepshhhihhpmhhinhhtshesghhmrghilhdrtghomhdprhgtphhtthho
 pegurghntgholhesuggrnhgtohhlrdhorhhgpdhrtghpthhtohepvghlihiisehgnhhurd
 horhhgpdhrtghpthhtohepjeejuddvvdesuggvsggsuhhgshdrghhnuhdrohhrgh
X-ME-Proxy: <xmx:YvrjZ7_7sSqGwcLQfAKnfu44E071FlJTVVjGoLiyDFl0xfXskY56rg>
 <xmx:YvrjZ6uOTQiiiU1oB1ZG6IzCU4I66wsKtYuG3CB_8IxnFiTUU4N5Lw>
 <xmx:YvrjZyH9vYcGYLEXl6C1ruISZ2UHVaepm1pf1xzKcJA7Ruu3QuVRgQ>
 <xmx:YvrjZ5P-WegvGr3VSIc5dcESW-lR84-vguLl9AW_EG26uNZdcwuFkA>
 <xmx:Y_rjZ8Ks50XAWivjfJaGJmLDdsIvFec-RBWPXhEGUo6RbDanDZGw1IVr>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 26 Mar 2025 09:00:17 -0400 (EDT)
Message-ID: <fe070220-cfaa-4619-afe5-5075179dc4fd@HIDDEN>
Date: Wed, 26 Mar 2025 15:00:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Ship Mints <shipmints@HIDDEN>
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <99a063ba-59b2-4875-a05e-3d0360f99a74@HIDDEN>
 <CAN+1HboRb=eCVVKKGmW9uhpko=uS9hy4zfuTct6w3W-oZ4hCZQ@HIDDEN>
 <FEFB8C93-34B5-4F70-AC83-11898910F253@HIDDEN>
 <CAN+1Hbp+D7bc3L0H9R3av0Xu23ocDQAiybG0J4Abq7jC4HYNYg@HIDDEN>
 <CAN+1HbpgSZK-d_2yq5EwmVv6MAaqSVqL1CazNtArBpL5j9+VrQ@HIDDEN>
 <0d3cddcd-8f4c-4a4a-9b3f-18a539f71b0f@HIDDEN>
 <CAN+1HboP9O47CDD0DhTD-vbThr=0WXYdZ0-PthszoTqH8Sudgw@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <CAN+1HboP9O47CDD0DhTD-vbThr=0WXYdZ0-PthszoTqH8Sudgw@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>,
 Daniel Colascione <dancol@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

On 26/03/2025 13:48, Ship Mints wrote:
> On Tue, Mar 25, 2025 at 11:11 PM Dmitry Gutov <dmitry@HIDDEN 
> <mailto:dmitry@HIDDEN>> wrote:
> 
>     On 25/03/2025 17:42, Ship Mints wrote:
>      > I just got bitten by project-buffers not reporting all the buffers
>      > "strictly" related to the project because project.el thinks there
>     are
>      > two different projects.  I can't imagine that me and the
>     colleagues of
>      > mine that use convenience symlinks are the only ones to see these
>     kinds
>      > of inconsistencies.  Just thought I'd leave a concrete example in
>     this
>      > thread.
> 
>     Thanks for the example.
> 
>      > I've turned my advice back on to force truename canonicalization
>     for the
>      > time being.
> 
>     Does that change really help?
> 
> 
> It does for unifying project-name and project-root.

Do they have corresponding scenarios that cause confusion?

>     In my testing, what it results in, is showing only the buffers
>     belonging
>     to the "canonical" project, both when project-switch-buffer is called
>     when in it, or when inside a "symlinked" version. Buffers visited from
>     the "symlinked" project are not suggested in completion anymore.
> 
>     When reproducing, try using find-file (C-x C-f) to open the buffers.
> 
> 
> Yes, indeed, project-buffers also needs some help.

We could add a user option for project-buffers specifically, as one 
approach.

> Thanks for the continuing discussion.
> 
> WRT projectile, having only eyeballed the code (I haven't used it), it 
> seems truename use is not optional.  It looks like projectile-project- 
> buffer-p is defined in terms of truename https://github.com/bbatsov/ 
> projectile/blob/55db082cdf7b849335ccf24b7ba5aa2607d6fe93/ 
> projectile.el#L1775 <https://github.com/bbatsov/projectile/ 
> blob/55db082cdf7b849335ccf24b7ba5aa2607d6fe93/ 
> projectile.el#L1775>, project-root caches the truename (but I see a bug 
> in the code which doesn't normalize dir on the way in so users likely 
> get odd results) https://github.com/bbatsov/projectile/ 
> blob/55db082cdf7b849335ccf24b7ba5aa2607d6fe93/projectile.el#L1385 
> <https://github.com/bbatsov/projectile/ 
> blob/55db082cdf7b849335ccf24b7ba5aa2607d6fe93/projectile.el#L1385>, the 
> file cache is in terms of truename https://github.com/bbatsov/ 
> projectile/blob/55db082cdf7b849335ccf24b7ba5aa2607d6fe93/ 
> projectile.el#L1262 <https://github.com/bbatsov/projectile/ 
> blob/55db082cdf7b849335ccf24b7ba5aa2607d6fe93/projectile.el#L1262>. </>

I wonder how it affects Projectile's performance over Tramp.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 26 Mar 2025 11:49:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 26 07:49:04 2025
Received: from localhost ([127.0.0.1]:41811 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1txPFo-0001N5-7j
	for submit <at> debbugs.gnu.org; Wed, 26 Mar 2025 07:49:04 -0400
Received: from mail-ua1-x92a.google.com ([2607:f8b0:4864:20::92a]:61946)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1txPFk-0001MV-1Q
 for 77122 <at> debbugs.gnu.org; Wed, 26 Mar 2025 07:49:00 -0400
Received: by mail-ua1-x92a.google.com with SMTP id
 a1e0cc1a2514c-86b31db3c3bso2656934241.3
 for <77122 <at> debbugs.gnu.org>; Wed, 26 Mar 2025 04:49:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742989734; x=1743594534; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=uIjoYj2isJAZdioxusEYXIEKqQmF954ILcMiYCstOGM=;
 b=Ynck/nSDRWSAw7cG+AlDQSgwI72cIuiOsyyPu4LlnH14reu/G9jwH5+VFn6p3YslOA
 97AGhkuvDTCJDhwvyVKLTcUxUx69ZsaekXXxYZTi6yGjE30p/sFmAwPZxGiA5B8k4YFr
 PN+f2m9vXXgOSEVAx0y8cL9UZfUTQNu+VoPTeN7rcbib3Vc/L6dgAtL0FacVLegvvEtt
 nBruUUCOCPU9Zhfd5V/xV94qv5Pw7x3VAQht/LRM9+r8LFeqD2PxLTiY1NyWejP9a5S5
 /vdbQH9cEPvx13N3QGTdIAbdG/fqhFvMtwuZBwhIv8Nk9DATQ6NMKdYi7eAke802bt98
 MVGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742989734; x=1743594534;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=uIjoYj2isJAZdioxusEYXIEKqQmF954ILcMiYCstOGM=;
 b=Mut4+R+M3W+p4m98mZlPbgtG0i4CSHqWT4D4AbeZZrw8HgQfBwSLPs6Iw285OSW3AA
 lBBUzMfae7QE+Agn0Fte+Vo8zIDPiKeItC3Ds/bHYP4YpyxYQicnwvIYLGz9hxav6jvl
 pF0xCANLVO6akBVA9iIq5G9GAU3zHcEEvpWScfz70epXW0nwmP6XfLce28u0o8Qd90dR
 4BgEV+bB7ha/9mftc4WHhcsMCqPJWP1kUJ6khLByblQTGJi78iQSYKaRvzlZC5bmRLd1
 ngsMKHlWUb2toh3Xr0rQw5pDi220fttv1EkQaTvbpo7t6sjPzUdwIMjzUwAoE7nY6Sxo
 i9rA==
X-Forwarded-Encrypted: i=1;
 AJvYcCVqL/sAJ3zSznJhZDrNSqll+SP/T18Lh4s36No8xXIUjD2CqHHq+ISrALqvqagMG5hXblPE+g==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yw8By92FgJc6d0rkf63rzy+Tm6rwthL9xmyULpP6bmXwyOsNt+x
 E/gAfQQ869uBWIPXn4A2BV3QmtVl3ZX4wgPlruUvKEVKJ2VSmRzTZEDYUT0+2hBADoH6T8+6x5d
 hlpFZfPsgMrxHmQNTiJrQgKQdjKw=
X-Gm-Gg: ASbGncuUXtM/dN/6QJQaIy5dfVPidd0diTM42MYxrvg/IciY0vHkorCcRDgfGeL0hQ/
 xc4veP5/GSMSvNyoQ2nVzwHO2QAbV/mjuhXOKiSrZyQIUpnTaiYK1DxMOcBvujNKY/eVAQbUCH1
 txLw+Qq3yi+H9N8GkbWe9z7RiItQ==
X-Google-Smtp-Source: AGHT+IEY4cC3o8/AyRINA2HNDEhAYDTnZ3L3WOfl0Edc/ID/2/BbM2FYnAQxiUlAw6LiFleWagVK0N6HOz4m+KXoVE8=
X-Received: by 2002:a05:6102:54ab:b0:4c1:903e:7bf0 with SMTP id
 ada2fe7eead31-4c50d51c4acmr15497350137.13.1742989732166; Wed, 26 Mar 2025
 04:48:52 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <99a063ba-59b2-4875-a05e-3d0360f99a74@HIDDEN>
 <CAN+1HboRb=eCVVKKGmW9uhpko=uS9hy4zfuTct6w3W-oZ4hCZQ@HIDDEN>
 <FEFB8C93-34B5-4F70-AC83-11898910F253@HIDDEN>
 <CAN+1Hbp+D7bc3L0H9R3av0Xu23ocDQAiybG0J4Abq7jC4HYNYg@HIDDEN>
 <CAN+1HbpgSZK-d_2yq5EwmVv6MAaqSVqL1CazNtArBpL5j9+VrQ@HIDDEN>
 <0d3cddcd-8f4c-4a4a-9b3f-18a539f71b0f@HIDDEN>
In-Reply-To: <0d3cddcd-8f4c-4a4a-9b3f-18a539f71b0f@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Wed, 26 Mar 2025 07:48:41 -0400
X-Gm-Features: AQ5f1Jqbr51l_CFPHXFxU0V8dArUYk-btq_psctIWTssuXB77dcTGpNHBsedM6E
Message-ID: <CAN+1HboP9O47CDD0DhTD-vbThr=0WXYdZ0-PthszoTqH8Sudgw@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Dmitry Gutov <dmitry@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000d5450606313d6b7d"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>,
 Daniel Colascione <dancol@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000d5450606313d6b7d
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Mar 25, 2025 at 11:11=E2=80=AFPM Dmitry Gutov <dmitry@HIDDEN> wr=
ote:

> On 25/03/2025 17:42, Ship Mints wrote:
> > I just got bitten by project-buffers not reporting all the buffers
> > "strictly" related to the project because project.el thinks there are
> > two different projects.  I can't imagine that me and the colleagues of
> > mine that use convenience symlinks are the only ones to see these kinds
> > of inconsistencies.  Just thought I'd leave a concrete example in this
> > thread.
>
> Thanks for the example.
>
> > I've turned my advice back on to force truename canonicalization for th=
e
> > time being.
>
> Does that change really help?
>

It does for unifying project-name and project-root.

In my testing, what it results in, is showing only the buffers belonging
> to the "canonical" project, both when project-switch-buffer is called
> when in it, or when inside a "symlinked" version. Buffers visited from
> the "symlinked" project are not suggested in completion anymore.
>
> When reproducing, try using find-file (C-x C-f) to open the buffers.
>

Yes, indeed, project-buffers also needs some help.

Thanks for the continuing discussion.

WRT projectile, having only eyeballed the code (I haven't used it), it
seems truename use is not optional.  It looks like
projectile-project-buffer-p is defined in terms of truename
https://github.com/bbatsov/projectile/blob/55db082cdf7b849335ccf24b7ba5aa26=
07d6fe93/projectile.el#L1775,
project-root
caches the truename (but I see a bug in the code which doesn't normalize
dir on the way in so users likely get odd results)
https://github.com/bbatsov/projectile/blob/55db082cdf7b849335ccf24b7ba5aa26=
07d6fe93/projectile.el#L1385,
the file cache is in terms of truename
https://github.com/bbatsov/projectile/blob/55db082cdf7b849335ccf24b7ba5aa26=
07d6fe93/projectile.el#L1262
.

--000000000000d5450606313d6b7d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Tue, Mar 25, 2025 at 11:11=E2=80=AFPM Dmitry Gutov &lt;<a href=3D"mailto=
:dmitry@HIDDEN">dmitry@HIDDEN</a>&gt; wrote:</span></div></div><div c=
lass=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote=
" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);=
padding-left:1ex">On 25/03/2025 17:42, Ship Mints wrote:<br>
&gt; I just got bitten by project-buffers not reporting all the buffers <br=
>
&gt; &quot;strictly&quot; related to the project because project.el=C2=A0th=
inks there are <br>
&gt; two different projects.=C2=A0 I can&#39;t imagine that me and the coll=
eagues of <br>
&gt; mine that use convenience symlinks are the only ones to see these kind=
s <br>
&gt; of inconsistencies.=C2=A0 Just thought I&#39;d leave a concrete exampl=
e in this <br>
&gt; thread.<br>
<br>
Thanks for the example.<br>
<br>
&gt; I&#39;ve turned my advice back on to force truename=C2=A0canonicalizat=
ion for the <br>
&gt; time being.<br>
<br>
Does that change really help?<br></blockquote><div><br></div><div class=3D"=
gmail_default" style=3D"font-family:monospace">It does for unifying project=
-name and project-root.</div><div class=3D"gmail_default" style=3D"font-fam=
ily:monospace"><br></div><blockquote class=3D"gmail_quote" style=3D"margin:=
0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
In my testing, what it results in, is showing only the buffers belonging <b=
r>
to the &quot;canonical&quot; project, both when project-switch-buffer is ca=
lled <br>
when in it, or when inside a &quot;symlinked&quot; version. Buffers visited=
 from <br>
the &quot;symlinked&quot; project are not suggested in completion anymore.<=
br>
<br>
When reproducing, try using find-file (C-x C-f) to open the buffers.<br></b=
lockquote><div><span style=3D"font-family:monospace"><br></span></div><div>=
<span style=3D"font-family:monospace"><span class=3D"gmail_default" style=
=3D"font-family:monospace">Yes, indeed,=C2=A0</span>project-buffers also ne=
ed<span class=3D"gmail_default" style=3D"font-family:monospace">s</span>=C2=
=A0<span class=3D"gmail_default" style=3D"font-family:monospace"></span>s<s=
pan class=3D"gmail_default" style=3D"font-family:monospace">ome=C2=A0help.<=
/span></span></div><div class=3D"gmail_default" style=3D"font-family:monosp=
ace"><br></div><div class=3D"gmail_default" style=3D"font-family:monospace"=
>Thanks for the continuing discussion.</div><div class=3D"gmail_default" st=
yle=3D"font-family:monospace"><br></div><div class=3D"gmail_default" style=
=3D"font-family:monospace">WRT projectile, having only eyeballed the code (=
I haven&#39;t used it), it seems truename use is not optional.=C2=A0 It loo=
ks like projectile-project-buffer-p is defined in terms of truename=C2=A0<a=
 href=3D"https://github.com/bbatsov/projectile/blob/55db082cdf7b849335ccf24=
b7ba5aa2607d6fe93/projectile.el#L1775">https://github.com/bbatsov/projectil=
e/blob/55db082cdf7b849335ccf24b7ba5aa2607d6fe93/projectile.el#L1775</a>,=C2=
=A0project-root caches the truename (but I see a bug in the code which does=
n&#39;t normalize dir on the way in so users likely get odd results) <a hre=
f=3D"https://github.com/bbatsov/projectile/blob/55db082cdf7b849335ccf24b7ba=
5aa2607d6fe93/projectile.el#L1385">https://github.com/bbatsov/projectile/bl=
ob/55db082cdf7b849335ccf24b7ba5aa2607d6fe93/projectile.el#L1385</a>, the fi=
le cache is in terms of truename=C2=A0<a href=3D"https://github.com/bbatsov=
/projectile/blob/55db082cdf7b849335ccf24b7ba5aa2607d6fe93/projectile.el#L12=
62">https://github.com/bbatsov/projectile/blob/55db082cdf7b849335ccf24b7ba5=
aa2607d6fe93/projectile.el#L1262</a>.=C2=A0<a href=3D"/"></a></div></div></=
div>

--000000000000d5450606313d6b7d--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 26 Mar 2025 03:11:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 25 23:11:34 2025
Received: from localhost ([127.0.0.1]:40733 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1txHAz-0003KM-Pl
	for submit <at> debbugs.gnu.org; Tue, 25 Mar 2025 23:11:34 -0400
Received: from fout-b1-smtp.messagingengine.com ([202.12.124.144]:34213)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1txHAw-0003K3-Fs
 for 77122 <at> debbugs.gnu.org; Tue, 25 Mar 2025 23:11:31 -0400
Received: from phl-compute-07.internal (phl-compute-07.phl.internal
 [10.202.2.47])
 by mailfout.stl.internal (Postfix) with ESMTP id 9E9C5114018F;
 Tue, 25 Mar 2025 23:11:24 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-07.internal (MEProxy); Tue, 25 Mar 2025 23:11: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=fm3; t=1742958684;
 x=1743045084; bh=ei74YckK5B3iYqcaZoEry1wa6i+DD95oyviI3B9o8+4=; b=
 L4O8tBpUPUFXy84RnucLgD/8g9R6aTCMyFZbx53zWECNDL7p/300QdTEghByfDep
 EzpbNne1ig7ubdSfvsLNlpTQh8IiUo4c2liHTgl3bZhT9BuHcttH8EXAoI2kcrge
 dY2Y6RtX1Pu3hGxR+5BEg2lGDscGE/0QBn4f8aEPUkMkj+8eFA/B5K/SFTglSraZ
 ulTncZ5oNf3z9H9nfdW7vT6LlfXjxamgaTu08rzDi2PSASlCM/enjflQEspZursx
 pJYRH+8pttsoWbfvmmw+Z4ZKYXQ/IqGkM9DitaNZCWqdpk/yVoOOWOSFhW8QiV6T
 llbQF2xjtlGabiusjgOQ6Q==
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=fm2; t=1742958684; x=
 1743045084; bh=ei74YckK5B3iYqcaZoEry1wa6i+DD95oyviI3B9o8+4=; b=Y
 HwIN5uV/3vbFxtJwuipA1ATCRDwSWb+WraSdd86mgmau71XUOp3uP/gQsS8MY0c/
 +6ewcfnr7Ie2c/4KBJZjXaqLkXQ/0iCpCl65U5Uy/8v8k+ktjdq7nwk4wj47GKBB
 /9VI7iwVfv1nzdErjVZyxHBymzlSsHtLACSvgb9jUi8LuBl8B1oL6dp0gHoxMzbk
 ryCo303gkui+7v96aKpwr5bwySEHe/8gvZkl3aXtSVXpf5ew1Sy1XzGNgZZgU5IR
 Fzcq7zk0bWAFcLEGLjedG6KXlVothXAMJcgMljSYo/ZyBNyc/7nRkV5hsUX33ke4
 3sXQIUUfoV8mijMtKxXXQ==
X-ME-Sender: <xms:W3DjZ9L2jpdXPWvxQ5KKxzdGbvmh0cL9GTgTgItuHM3Rd-2Whb1RqQ>
 <xme:W3DjZ5LfLedya6igVKpuNQAjauEQ-ySoruyWjViGoYm2QMssgKEB33Ypn9pkI9k_7
 c8PHxsoQPd-T6hhaIk>
X-ME-Received: <xmr:W3DjZ1u1XVOAem5sUR9sxvFmzC7-5KTtHGzus12iEYEZ2Wh2SMs3lIelSx7jSszFJA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduieeggeduucetufdoteggodetrf
 dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
 pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
 gvnhhtshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddt
 vdejnecuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovh
 druggvvheqnecuggftrfgrthhtvghrnhepgeelfeetkefghfdvhfdtgeevveevteetgeet
 veegtedthefhudekteehffeukeeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg
 hmpehmrghilhhfrhhomhepughmihhtrhihsehguhhtohhvrdguvghvpdhnsggprhgtphht
 thhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehshhhiphhmihhnthhsse
 hgmhgrihhlrdgtohhmpdhrtghpthhtohepuggrnhgtohhlsegurghntgholhdrohhrghdp
 rhgtphhtthhopegvlhhiiiesghhnuhdrohhrghdprhgtphhtthhopeejjeduvddvseguvg
 gssghughhsrdhgnhhurdhorhhg
X-ME-Proxy: <xmx:XHDjZ-ZlnQ5x5yduRejHI2Il6M15_rWOjh9oBdhdSQqJpn_kifuWXA>
 <xmx:XHDjZ0bL3EJR2IEjfEO0c7UO2l34vE-FVuEktKfI26CdO1JAIcrsgg>
 <xmx:XHDjZyANEnDMYxUGA-BR6st67eZO5CmVgdIEIjsjkkZT2B2bJp0vHQ>
 <xmx:XHDjZybolzssHxbAb9ULj45XQ3erAkUg4U9Htg1db9JoRgEf-f7Avw>
 <xmx:XHDjZ7UVNIRQZT_6VT_Gcv8z8ikN7S1UOlc1LQyiUwa0HGnzazY0el01>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 25 Mar 2025 23:11:22 -0400 (EDT)
Message-ID: <0d3cddcd-8f4c-4a4a-9b3f-18a539f71b0f@HIDDEN>
Date: Wed, 26 Mar 2025 05:11:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Ship Mints <shipmints@HIDDEN>, Daniel Colascione <dancol@HIDDEN>
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <99a063ba-59b2-4875-a05e-3d0360f99a74@HIDDEN>
 <CAN+1HboRb=eCVVKKGmW9uhpko=uS9hy4zfuTct6w3W-oZ4hCZQ@HIDDEN>
 <FEFB8C93-34B5-4F70-AC83-11898910F253@HIDDEN>
 <CAN+1Hbp+D7bc3L0H9R3av0Xu23ocDQAiybG0J4Abq7jC4HYNYg@HIDDEN>
 <CAN+1HbpgSZK-d_2yq5EwmVv6MAaqSVqL1CazNtArBpL5j9+VrQ@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <CAN+1HbpgSZK-d_2yq5EwmVv6MAaqSVqL1CazNtArBpL5j9+VrQ@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

On 25/03/2025 17:42, Ship Mints wrote:
> I just got bitten by project-buffers not reporting all the buffers 
> "strictly" related to the project because project.el thinks there are 
> two different projects.  I can't imagine that me and the colleagues of 
> mine that use convenience symlinks are the only ones to see these kinds 
> of inconsistencies.  Just thought I'd leave a concrete example in this 
> thread.

Thanks for the example.

> I've turned my advice back on to force truename canonicalization for the 
> time being.

Does that change really help?

In my testing, what it results in, is showing only the buffers belonging 
to the "canonical" project, both when project-switch-buffer is called 
when in it, or when inside a "symlinked" version. Buffers visited from 
the "symlinked" project are not suggested in completion anymore.

When reproducing, try using find-file (C-x C-f) to open the buffers.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 26 Mar 2025 03:02:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 25 23:02:21 2025
Received: from localhost ([127.0.0.1]:40671 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1txH25-0002q4-7w
	for submit <at> debbugs.gnu.org; Tue, 25 Mar 2025 23:02:21 -0400
Received: from fout-b1-smtp.messagingengine.com ([202.12.124.144]:56741)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1txH20-0002pn-Gq
 for 77122 <at> debbugs.gnu.org; Tue, 25 Mar 2025 23:02:17 -0400
Received: from phl-compute-07.internal (phl-compute-07.phl.internal
 [10.202.2.47])
 by mailfout.stl.internal (Postfix) with ESMTP id 8E20A1140125;
 Tue, 25 Mar 2025 23:02:10 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-07.internal (MEProxy); Tue, 25 Mar 2025 23:02: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=fm3; t=1742958130;
 x=1743044530; bh=vBuvicTll1i5AP47DECI+99UJWT/kjoiNra3G7I4oHk=; b=
 K8qQm16RRRi+YIM7JUtAXHc60Z4M7bQHmOKv4AEwvd+yJ2rTayyn5BY5prpp+CRl
 D8z7z2mYllbCaqpDsVfIHL+Ph23Kko/uzoddXuDWh+VZIeiA3ClB0pJo6xciFegh
 mlb+wDA1NLATvR+DHn9Fj2nhNkW51buyVOlA7hogSZIBpJwFZo3b6U5sIWF3ZF3A
 QI6cIKlQFmZ0h4lsBDoftroz2Q5urgSd/ZSQSEaAdQwr+8VNdLUDYBuoBZUACFf8
 tlf5Ic0bALr8s0H+InYLmZnJyjIQ+2SaWzvxCkR03OJNxHCExIgzbls/hP4W8SfK
 EjR/+qMKClToZQ62eMCPxg==
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=fm2; t=1742958130; x=
 1743044530; bh=vBuvicTll1i5AP47DECI+99UJWT/kjoiNra3G7I4oHk=; b=n
 WEw518+HXtZvPdwo67Xgy6fShRkMHkQSGDJOhVIvOr7feJUQripzD/BNaZEg5fiM
 P6jhS6oEOBod89ELNfcluFGMbrWzg9IvETrUNgLflAP/lAoYzPZ0iFbPFmXl51LD
 njsWm+eVxA1Vl7Bb0zzCFEXeJ1fQ/xHAfX2R8AeZD6dgsC5XQblX1z+jPRFoSiMl
 EXx756JfVNuHknB3pSAjLub5oJbxwu+mi6GZxAQJBXUVfJ05Z2MIrPeHWdBlzehB
 f4jEg+1f7PoEBSQ2HD4Zehf/BA3A32vZY5sZLIH2yfXUweylUhSxqiwVlwdboDaB
 THLl8BxBz/qw6l1ULz7SA==
X-ME-Sender: <xms:MW7jZ0XUrpdNHesZBeoOzf1nonwRymlB8sHxd6F_RmMS05ln8bDuBg>
 <xme:MW7jZ4l7uHVbeYO9_3xmnl7-QpDDIXcgETbJt_7yvVS3DCWZHVW70KroEoXFqVsbE
 F5dH-HAYPAP1wm6vlI>
X-ME-Received: <xmr:MW7jZ4YHNoZfpDeuNaoBH_jBnVQr8TvlwFSP2XTjxo3vrXIxqH8MXrIkv0Ro1A_Jug>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduieegfeelucetufdoteggodetrf
 dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
 pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
 gvnhhtshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddt
 vdejnecuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovh
 druggvvheqnecuggftrfgrthhtvghrnhepgeelfeetkefghfdvhfdtgeevveevteetgeet
 veegtedthefhudekteehffeukeeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg
 hmpehmrghilhhfrhhomhepughmihhtrhihsehguhhtohhvrdguvghvpdhnsggprhgtphht
 thhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehshhhiphhmihhnthhsse
 hgmhgrihhlrdgtohhmpdhrtghpthhtohepvghlihiisehgnhhurdhorhhgpdhrtghpthht
 ohepuggrnhgtohhlsegurghntgholhdrohhrghdprhgtphhtthhopeejjeduvddvseguvg
 gssghughhsrdhgnhhurdhorhhg
X-ME-Proxy: <xmx:MW7jZzUELxit12blnXsBz2D1KVm1xaINY6NUIgzKG_-V7ukM2DJIPg>
 <xmx:MW7jZ-ks7JyjrIFFJhb_J0JMNLVMtoU3pSQOth1y_060v8I7fWQtAg>
 <xmx:MW7jZ4cRm_av5PkjCylNy7ovzltEmng1zbLn5lnQVTykOCO0qI6tpg>
 <xmx:MW7jZwFS1_542Qbb1ylNkWx-aPcXPy2YCCqbT0kK2FrmWNTkdQkNgw>
 <xmx:Mm7jZ_C_xmPICQu4xFkAbMxXtBrbSEOHK7avKBj54ShKtsXXvgioJTTd>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 25 Mar 2025 23:02:08 -0400 (EDT)
Message-ID: <fc3ae6fa-3920-428f-8498-8dd28a69b689@HIDDEN>
Date: Wed, 26 Mar 2025 05:02:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Ship Mints <shipmints@HIDDEN>
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <99a063ba-59b2-4875-a05e-3d0360f99a74@HIDDEN>
 <CAN+1HboRb=eCVVKKGmW9uhpko=uS9hy4zfuTct6w3W-oZ4hCZQ@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <CAN+1HboRb=eCVVKKGmW9uhpko=uS9hy4zfuTct6w3W-oZ4hCZQ@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

On 25/03/2025 12:54, Ship Mints wrote:

> Ochen funny. I'll submit a separate patch for that one day (sarcasm 
> doesn't work in email, sorry).

I was not making a joke. Wouldn't it be easier, for your purposes, if 
symlinks were followed right away?

> In the meantime, I maintain my view that project.el needs to report 
> uniform project names and roots for identical projects approached from 
> different places, even if optional.
> 
> I just took a look at projectile.el, which I'd never looked at before 
> because I prefer using/improving core features.  It has a longer user 
> history to see what they've experienced (and it looks like some of 
> project.el's approach is copied almost verbatim e.g., the implementation 
> of project-name).  projectile seems to both have users that want symlink 
> chasing and those that don't (looks like ClearCase users--but out of 
> necessity not desire?).

Does it have that decision configurable as well? Could you point to the 
user option, or whatever else it has for that purpose?





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 25 Mar 2025 18:58:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 25 14:58:47 2025
Received: from localhost ([127.0.0.1]:40017 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tx9U7-0004CP-5c
	for submit <at> debbugs.gnu.org; Tue, 25 Mar 2025 14:58:47 -0400
Received: from mail-vk1-xa35.google.com ([2607:f8b0:4864:20::a35]:58387)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1tx9U1-0004By-UZ
 for 77122 <at> debbugs.gnu.org; Tue, 25 Mar 2025 14:58:45 -0400
Received: by mail-vk1-xa35.google.com with SMTP id
 71dfb90a1353d-5240317b3e0so2282082e0c.0
 for <77122 <at> debbugs.gnu.org>; Tue, 25 Mar 2025 11:58:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742929116; x=1743533916; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=LdjHuSfh576Ot9YzGtIpHM4iAm7rqvYCgdIbTXkArrw=;
 b=ZZv/I5a4r2GKAHS89friXzCxIVvVaFkkeUhEkksUJHtjnn2NPwOplh1q6ZtA/jn2Mj
 DUdrlTVITXFuRfpkrUyALkeCvTlPTIJu93UTWWux9xJ4LdAh4mGcNtciFpeYLWd1gi3L
 n/g4MRDo1KOdmLMdJwGFzerZVognotcLpuyxk5WDBBQpjIEy31BJ65AWT55iDhhVa6DA
 IHM+cj+6GC70QocvH1Xo2WUkq3GPNJ77Uj8qB/1PXT8M/JwsTQIMDZe+osOEFzjAsNHl
 cfhJvnb0sryIwiEJ/+9R5/T9sy04sTnOZldrwd3Qw45hvPq7YfElZSWFb8ImCjn0pghZ
 KR4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742929116; x=1743533916;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=LdjHuSfh576Ot9YzGtIpHM4iAm7rqvYCgdIbTXkArrw=;
 b=dktgC97GdvR0QB2pvjwjFn/Jp+UKN+NzPG6fjwZNMg+m6m1zAKYwFUkV4lQp2Lqs9Q
 X0EdcOEhOxyCh+VhnIUYGlVI9JSVGYpM7vWxLkUge7UHFMnSKCoERzbu8u/e85ySYN0l
 Gag/Lhcgx6qaLG/CU2cSbTRT26R7EzcYADAH1uxOj5IV3opBpeQD+H/oh5MST9a70o0S
 CkcGPvIaW4EAcFKr2ln01iozgT7KZIxnKFqrB7lB5TPq22Gk9kWpnkAPLxFjRgNdFcH1
 rGGjYr5gjh00/278TwouaLgehpvefT4aZnluHTqBglD+2dk/VsXcua6ifegVoovHVi7K
 s2Wg==
X-Forwarded-Encrypted: i=1;
 AJvYcCUhWhXKH3ou8Q9ejRanG57yqiyscAFCg3ObEsXrNo28pUdq7hoI3nY4PubhbUsqEQ9kEMBq4w==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YzQcvWho9uPYhKBn53Wu3fN1YwxsOY/hgClcUBNyTxf8tKiSRCN
 XVVOdmBQQ7PhnkA/Ts/OxmyUUt2jVTbwA2wvCbTh/bHmJleBuBAJx96fMvCEfzjyu26Xgi23NLL
 3dewOySzuV3YQV949kR0O1ud/cPU=
X-Gm-Gg: ASbGncudPkO7ermAKCtQBLi5fBTYg7eqBvRk2hJv4hI3KXjnlDPPX5XBxIlZ30n5BLN
 b6avmuR2xloyQXTDKVVDBFjvF2cJfSu0cHZ14RODpigkKUZ2kCR8GgEk4kSF1hpvoIFYiLPpKac
 F6M8ObOIP30adgFaARALrODJb9nA==
X-Google-Smtp-Source: AGHT+IGKlxHLisx2YEyqmsgBM6e1mnlGrLXmYTdeAgE2t8tS1PY1jlw5G4GbJxobAWxhxr570Ej3q9DN3H7wI+pSCO8=
X-Received: by 2002:a05:6122:f06:b0:518:6286:87a4 with SMTP id
 71dfb90a1353d-525a834e589mr14176864e0c.4.1742929115809; Tue, 25 Mar 2025
 11:58:35 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <86y0wue188.fsf@HIDDEN>
 <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
 <86sen2dxyp.fsf@HIDDEN>
 <CAN+1Hbr1Y4jfGZnKzqp3d9C1orPJBHhGC8OGhvcqdovoPOnr4g@HIDDEN>
 <86r02mdwjx.fsf@HIDDEN>
 <CAN+1HboXWN-1wRghOj7oFj99DS1LQuMfLJF=oS8K9QyBcNDgEA@HIDDEN>
 <CAN+1Hbpw0PfVEJCEO2VVOUfO+L-U3p_y2QAh+Wnv2MNwctDL9A@HIDDEN>
 <86ldste24n.fsf@HIDDEN>
 <CAN+1Hbo5AWMAF9D=pVwV=jQF3oMAL569sYhZ9iXoJw4Ls3RAvg@HIDDEN>
 <m11pulndpf.fsf@HIDDEN>
In-Reply-To: <m11pulndpf.fsf@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Tue, 25 Mar 2025 14:58:23 -0400
X-Gm-Features: AQ5f1JqUtEZrH4GuwHIAu6PHXj4P73de-bhaZxjLZiGgjz4HK0BoATAc8f_LTT4
Message-ID: <CAN+1Hbousm7THnwoh8wmzc_mvWBfrCS9_L4c0fEG0HM8J1jweA@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Daniel Colascione <dancol@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000d1115906312f4e73"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000d1115906312f4e73
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Mar 25, 2025 at 2:54=E2=80=AFPM Daniel Colascione <dancol@HIDDEN=
g> wrote:

> Ship Mints <shipmints@HIDDEN> writes:
>
> > On Tue, Mar 25, 2025 at 8:17=E2=80=AFAM Eli Zaretskii <eliz@HIDDEN> wr=
ote:
> >
> >> > From: Ship Mints <shipmints@HIDDEN>
> >> > Date: Mon, 24 Mar 2025 16:25:44 -0400
> >> > Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
> >> >
> >> > To concretely demonstrate the differences, the function project-name
> >> will return different results for each
> >> > project object based on buffers loaded from different paths, despite
> the
> >> projects being equivalent.
> >> >
> >> > project-name is defined as:
> >> >
> >> > (file-name-nondirectory (directory-file-name (project-root project))=
)
> >> >
> >> > If the root directory is determined to be different, the objects
> return
> >> different names (and different roots).
> >>
> >> Unless I'm misunderstanding what Daniel wrote, the above is actually a
> >> feature from his POV.
> >>
> >
> > Indeed, it might be, but I'm curious what tooling he's using that depen=
ds
> > on project-root not being "absolute" so to speak, and relative to his
> > ambient default-directory.
>
> =F0=9F=A7=A0.
>
> If I have a project under ~/foo/bar/qux/blah and I want to symlink to it
> from ~/blah, and I specifically find-file ~/blah/something.txt, then I
> want my project to be ~/blah-related, not ~/foo/bar/qux/blah!
> The difference matters for things like project-shell.
>
> Isn't the feature you really want a hypothetical
> find-file-resolves-symlinks flag that has find-file find the absolute
> version of anything visited?  Some people sincerely want this behavior.
> Then you'd always be "in" your truename directory in the first place
> (modulo other entry points like dired, which you could similarly
> modify).
>
> For my use case, I'd actually like to tweak file-truename to report
> anything under ~/foo/bar/qux/blah as being under ~/blah, but that's a
> separate and low-priority subject.
>

That, too, but this all started when I got sufficiently frustrated that
project-name doesn't match for both real and symlinked directory avenues.
Making project-root's match, solves a bunch of other things where
implementations of code, including project-buffers, rely on project-root.

--000000000000d1115906312f4e73
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Tue, Mar 25, 2025 at 2:54=E2=80=AFPM Daniel Colascione &lt;<a href=3D"ma=
ilto:dancol@HIDDEN">dancol@HIDDEN</a>&gt; wrote:</span></div></div>=
<div class=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail=
_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204=
,204);padding-left:1ex">Ship Mints &lt;<a href=3D"mailto:shipmints@HIDDEN=
m" target=3D"_blank">shipmints@HIDDEN</a>&gt; writes:<br>
<br>
&gt; On Tue, Mar 25, 2025 at 8:17=E2=80=AFAM Eli Zaretskii &lt;<a href=3D"m=
ailto:eliz@HIDDEN" target=3D"_blank">eliz@HIDDEN</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; &gt; From: Ship Mints &lt;<a href=3D"mailto:shipmints@HIDDEN" t=
arget=3D"_blank">shipmints@HIDDEN</a>&gt;<br>
&gt;&gt; &gt; Date: Mon, 24 Mar 2025 16:25:44 -0400<br>
&gt;&gt; &gt; Cc: <a href=3D"mailto:dancol@HIDDEN" target=3D"_blank">da=
ncol@HIDDEN</a>, <a href=3D"mailto:77122 <at> debbugs.gnu.org" target=3D"_bl=
ank">77122 <at> debbugs.gnu.org</a>, <a href=3D"mailto:dmitry@HIDDEN" target=
=3D"_blank">dmitry@HIDDEN</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; To concretely demonstrate the differences, the function proje=
ct-name<br>
&gt;&gt; will return different results for each<br>
&gt;&gt; &gt; project object based on buffers loaded from different paths, =
despite the<br>
&gt;&gt; projects being equivalent.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; project-name is defined as:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; (file-name-nondirectory (directory-file-name (project-root pr=
oject)))<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; If the root directory is determined to be different, the obje=
cts return<br>
&gt;&gt; different names (and different roots).<br>
&gt;&gt;<br>
&gt;&gt; Unless I&#39;m misunderstanding what Daniel wrote, the above is ac=
tually a<br>
&gt;&gt; feature from his POV.<br>
&gt;&gt;<br>
&gt;<br>
&gt; Indeed, it might be, but I&#39;m curious what tooling he&#39;s using t=
hat depends<br>
&gt; on project-root not being &quot;absolute&quot; so to speak, and relati=
ve to his<br>
&gt; ambient default-directory.<br>
<br>
=F0=9F=A7=A0.<br>
<br>
If I have a project under ~/foo/bar/qux/blah and I want to symlink to it<br=
>
from ~/blah, and I specifically find-file ~/blah/something.txt, then I<br>
want my project to be ~/blah-related, not ~/foo/bar/qux/blah!<br>
The difference matters for things like project-shell.<br>
<br>
Isn&#39;t the feature you really want a hypothetical<br>
find-file-resolves-symlinks flag that has find-file find the absolute<br>
version of anything visited?=C2=A0 Some people sincerely want this behavior=
.<br>
Then you&#39;d always be &quot;in&quot; your truename directory in the firs=
t place<br>
(modulo other entry points like dired, which you could similarly<br>
modify).<br>
<br>
For my use case, I&#39;d actually like to tweak file-truename to report<br>
anything under ~/foo/bar/qux/blah as being under ~/blah, but that&#39;s a<b=
r>
separate and low-priority subject.<br></blockquote><div><br></div><div clas=
s=3D"gmail_default" style=3D"font-family:monospace">That, too, but this all=
 started when I got sufficiently frustrated that project-name doesn&#39;t m=
atch for both real and symlinked directory avenues.=C2=A0 Making project-ro=
ot&#39;s match, solves a bunch of other things where implementations of cod=
e, including project-buffers, rely on project-root.</div></div></div>

--000000000000d1115906312f4e73--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 25 Mar 2025 18:54:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 25 14:54:30 2025
Received: from localhost ([127.0.0.1]:40009 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tx9Py-0003yb-7g
	for submit <at> debbugs.gnu.org; Tue, 25 Mar 2025 14:54:30 -0400
Received: from dancol.org ([2600:3c01:e000:3d8::1]:34868)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dancol@HIDDEN>) id 1tx9Ps-0003yK-9K
 for 77122 <at> debbugs.gnu.org; Tue, 25 Mar 2025 14:54:27 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; 
 s=x;
 h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:Date:
 References:In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=4FEFWU7yel/cXlpPkHrjFtcgmmjt1AT6eqguRrIBFMQ=; b=NTAX8k0c27cKBfpgDzfzxCeduO
 Jz/o0OT3P9V4M+Op2EQAmRzaOyBuskZ/Z4UpptWu2Hwyy3H+PLLdfI0smbA0I0RXF0WiWoIwn1DeX
 fSccg6sytLUAqvfar1rlfvX2Y9GN24ejKq+c/FoUzYxipJ6A34I0qIksFdl7eBAoMOU3fqDYzBdIr
 3FuAuqFnrGiVixqWbIrbj7qBZzDPU1EusxRfQRE4wKm48MPXvfWm+rb7kHzzSdoXBCuS84ztcYjH4
 85nlFZvI5uHY2MhKv7Icm+VcoqlL+uEF9MiJ7YwNwWUoFlW4IZZiR7Ywz6oq8rTadOJylwq0wbR9d
 xLJ7S58w==;
Received: from dancol by dancol.org with local (Exim 4.96)
 (envelope-from <dancol@HIDDEN>) id 1tx9PS-0041TU-1O;
 Tue, 25 Mar 2025 14:53:58 -0400
From: Daniel Colascione <dancol@HIDDEN>
To: Ship Mints <shipmints@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
In-Reply-To: <CAN+1Hbo5AWMAF9D=pVwV=jQF3oMAL569sYhZ9iXoJw4Ls3RAvg@HIDDEN>
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN>
 <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <86y0wue188.fsf@HIDDEN>
 <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
 <86sen2dxyp.fsf@HIDDEN>
 <CAN+1Hbr1Y4jfGZnKzqp3d9C1orPJBHhGC8OGhvcqdovoPOnr4g@HIDDEN>
 <86r02mdwjx.fsf@HIDDEN>
 <CAN+1HboXWN-1wRghOj7oFj99DS1LQuMfLJF=oS8K9QyBcNDgEA@HIDDEN>
 <CAN+1Hbpw0PfVEJCEO2VVOUfO+L-U3p_y2QAh+Wnv2MNwctDL9A@HIDDEN>
 <86ldste24n.fsf@HIDDEN>
 <CAN+1Hbo5AWMAF9D=pVwV=jQF3oMAL569sYhZ9iXoJw4Ls3RAvg@HIDDEN>
User-Agent: mu4e 1.12.8; emacs 31.0.50
Date: Tue, 25 Mar 2025 14:54:20 -0400
Message-ID: <m11pulndpf.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Ship Mints <shipmints@HIDDEN> writes:

> On Tue, Mar 25, 2025 at 8:17=E2=80=AFAM Eli Zaretskii <eliz@HIDDEN> wrot=
e:
>
>> > From: Ship Mints <shipmints@HIDDEN>
>> > Date: Mon, 24 Mar 2025 16:25:44 -0400
>> > Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
>> >
>> > To concretely demonstrate the differences, the function project-name
>> will return different results for each
>> > project object based on buffers loaded from different paths, despite t=
he
>> projects being equivalent.
>> >
>> > project-name is defined as:
>> >
>> > (file-name-nondirectory (directory-file-name (project-root project)))
>> >
>> > If the root directory is determined to be different, the objects return
>> different names (and different roots).
>>
>> Unless I'm misunderstanding what Daniel wrote, the above is actually a
>> feature from his POV.
>>
>
> Indeed, it might be, but I'm curious what tooling he's using that depends
> on project-root not being "absolute" so to speak, and relative to his
> ambient default-directory.

=F0=9F=A7=A0.

If I have a project under ~/foo/bar/qux/blah and I want to symlink to it
from ~/blah, and I specifically find-file ~/blah/something.txt, then I
want my project to be ~/blah-related, not ~/foo/bar/qux/blah!
The difference matters for things like project-shell.

Isn't the feature you really want a hypothetical
find-file-resolves-symlinks flag that has find-file find the absolute
version of anything visited?  Some people sincerely want this behavior.
Then you'd always be "in" your truename directory in the first place
(modulo other entry points like dired, which you could similarly
modify).

For my use case, I'd actually like to tweak file-truename to report
anything under ~/foo/bar/qux/blah as being under ~/blah, but that's a
separate and low-priority subject.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 25 Mar 2025 15:42:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 25 11:42:33 2025
Received: from localhost ([127.0.0.1]:39701 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tx6QC-0002sy-Gp
	for submit <at> debbugs.gnu.org; Tue, 25 Mar 2025 11:42:33 -0400
Received: from mail-ua1-x930.google.com ([2607:f8b0:4864:20::930]:57370)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1tx6Q9-0002sh-2w
 for 77122 <at> debbugs.gnu.org; Tue, 25 Mar 2025 11:42:30 -0400
Received: by mail-ua1-x930.google.com with SMTP id
 a1e0cc1a2514c-86ba07fe7a4so4900735241.2
 for <77122 <at> debbugs.gnu.org>; Tue, 25 Mar 2025 08:42:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742917343; x=1743522143; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=OOI6kRN2XmtqTEp8P5SrFfmmKs0TzRX0Yh8f8YD2ga0=;
 b=CVYo6DwqaJGKP9LOiQkRTefjjgolRxCZaioaf88gI+MBZJO1AtDOjVMDLCjLZeEzaa
 t3ivdMynyFXmA/WywfCbSO4BjLglNM1OonLaetm4vO80Bzn/vJ3Rqe4MvpTfUGA5AnPl
 k4jjqisq7AA+wA0VoB/QOTB2Vs422RxJXjDrzQ6kPOT3sd2zfJQrwo/+mmq1WLyKcH6P
 BgjjqP89G6m6AzbDXaFSovGAHyw+dAo1M/ci+KcNUN8ROFw1EPDMrgjtEYSGiVxJKLw9
 GEUmw3F5trSwO3d62YTBKng79qfbCROnlrblVJ3U55Wi3KYcw+YZrU2hOaZvTwysKrRt
 g1lA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742917343; x=1743522143;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=OOI6kRN2XmtqTEp8P5SrFfmmKs0TzRX0Yh8f8YD2ga0=;
 b=HuCBAbuTQzSltC69+ktWHUX00Vwgn8e1V8fEE5mT/Z7oAd2DioAnPRk3COM673f82+
 Zmy6WVsXDIf/mPB3EaUqKjHwUiCA/qbg3l2hSbU7XldTS0aw2Yhj2DcLbR5eABEJT90B
 fyExQ+DXUIaKbDH+lFA9jB2S/r4pI2/EXwgnXvOYvirHoG54eiOy8bK1h0ihABBjN6PZ
 yjI3N0e/r9VrB9zCfBAq2pwfwFrPDRT/p0/3C7Ywwokf/JdB4ttTDVrFPSodtvhfwu++
 UCbYYN1TaA6b0l6JvQ7021Sc1LcL1lUtVi+KzQyX+cIlvZFEjieGiHvSejrbaC4PrNgY
 ePYA==
X-Forwarded-Encrypted: i=1;
 AJvYcCXBkYJbGwTH2sKU1xU/O58lRMm8s2Z+3NOsvNtOUYhLZEZ2GtFjayoP7fw3pd0l+ZvsHuzUQQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyZ+Tb++npW+6ig3XML6KTt9RJfjv4ezcHYswsZ/X1VJGv9SlMm
 58cpgSjueo3CWnce4zrB6R5LH+ZogmQCsTBlSK5oC78qPyYLak2T/cv5iGJT8vzMbQYxwX2oQI6
 U4u8kOl1ezZVOx96QpmKYTljCERA=
X-Gm-Gg: ASbGnctxZL20iFSrYkM06LqlCss+LolgoytxDL0N7D7u0wxThqy7bDbpiJntk7jUt/A
 MYTr1MpnloETZyLD8rXPmMls5qeg6ZW4QObsTp9MePbJ6hI2FUZWlDssdY92b342ZLCbkRKEhOt
 h2MRgINaTWLIB02gAkaHWk+QpkmQ==
X-Google-Smtp-Source: AGHT+IFMXm15JHTTmn9rHSTVmK/LWtddSwvlKmMaZQLQluiTHSuyxjR2QMrrikIrFIFpFgA8PVf5XR0GK5K9/SAIHh4=
X-Received: by 2002:a05:6102:dca:b0:4c4:e451:6f24 with SMTP id
 ada2fe7eead31-4c50d623b0amr14441620137.22.1742917343154; Tue, 25 Mar 2025
 08:42:23 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <99a063ba-59b2-4875-a05e-3d0360f99a74@HIDDEN>
 <CAN+1HboRb=eCVVKKGmW9uhpko=uS9hy4zfuTct6w3W-oZ4hCZQ@HIDDEN>
 <FEFB8C93-34B5-4F70-AC83-11898910F253@HIDDEN>
 <CAN+1Hbp+D7bc3L0H9R3av0Xu23ocDQAiybG0J4Abq7jC4HYNYg@HIDDEN>
In-Reply-To: <CAN+1Hbp+D7bc3L0H9R3av0Xu23ocDQAiybG0J4Abq7jC4HYNYg@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Tue, 25 Mar 2025 11:42:11 -0400
X-Gm-Features: AQ5f1JpzYqkyGwvLQuJ9yJQiZB7JkLzZ_tvLyFBrdQk_fkWhJab4YVsfmSzX8MI
Message-ID: <CAN+1HbpgSZK-d_2yq5EwmVv6MAaqSVqL1CazNtArBpL5j9+VrQ@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Daniel Colascione <dancol@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000001c993206312c9170"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, Dmitry Gutov <dmitry@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0000000000001c993206312c9170
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Mar 25, 2025 at 9:01=E2=80=AFAM Ship Mints <shipmints@HIDDEN> wr=
ote:

> On Tue, Mar 25, 2025 at 8:54=E2=80=AFAM Daniel Colascione <dancol@dancol.=
org>
> wrote:
>
>>
>>
>> On March 25, 2025 6:54:34 AM EDT, Ship Mints <shipmints@HIDDEN> wrote=
:
>> >On Mon, Mar 24, 2025 at 10:16=E2=80=AFPM Dmitry Gutov <dmitry@HIDDEN=
> wrote:
>> >
>> >> On 24/03/2025 17:15, Ship Mints wrote:
>> >> > I'm curious to hear more about why people would object to
>> (project-root
>> >> > project-obj) being canonicalized.  I don't think many people ever
>> >> > manually enter project dirs.  The persisted known projects, I'd
>> think,
>> >> > would also benefit from no duplicates.
>> >>
>> >> I wonder if you yourself would prefer for all buffer-file-name values=
,
>> >> and default-directory values, to be canonicalized as well.
>> >>
>> >> The same reasoning would seem to apply to them too anyway.
>> >>
>> >
>> >Ochen funny. I'll submit a separate patch for that one day (sarcasm
>> doesn't
>> >work in email, sorry).
>> >
>> >In the meantime, I maintain my view that project.el needs to report
>> uniform
>> >project names and roots for identical projects approached from differen=
t
>> >places, even if optional.
>> >
>> >I just took a look at projectile.el, which I'd never looked at before
>> >because I prefer using/improving core features.  It has a longer user
>> >history to see what they've experienced (and it looks like some of
>> >project.el's approach is copied almost verbatim e.g., the implementatio=
n
>> of
>> >project-name).  projectile seems to both have users that want symlink
>> >chasing and those that don't (looks like ClearCase users--but out of
>> >necessity not desire?).  As those concerns seem to be project dependent=
,
>> we
>> >could an option that is a list of paths or matchers to include/exclude
>> from
>> >chasing, and also a project root semaphore file or project config as I
>> >suggested in another message in this thread.
>> >
>> >I'd enable chasing as my default, opt out in a specific project should =
I
>> >ever have one that needs it rather than the other way around, and enjoy
>> >project-name and project-root uniformity.
>> >
>> >-Stephane
>>
>> Eli is right. You want either global path normalization or you don't.
>> Doing it peacemeal at the project level might satisfy some small immedia=
te
>> need, but it won't solve the whole problem and will inevitably cause
>> downstream problems due to the incoherence.
>>
>> Also, it's just not universally true that I want to regard the "real"
>> version of something as its realpath. People use symlinks differently. I=
n a
>> world in which we had ubiquitous unprivileged bind mounts *and* symlinks=
,
>> the realpath as identity concept might be more powerful, but we don't.
>>
>
> Again...I'm not saying universally, I'm saying optionally, and preferably
> flexibly optional.
>

I just got bitten by project-buffers not reporting all the buffers
"strictly" related to the project because project.el thinks there are two
different projects.  I can't imagine that me and the colleagues of mine
that use convenience symlinks are the only ones to see these kinds of
inconsistencies.  Just thought I'd leave a concrete example in this thread.

I've turned my advice back on to force truename canonicalization for the
time being.

--0000000000001c993206312c9170
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Tue, Mar 25, 2025 at 9:01=E2=80=AFAM Ship Mints &lt;<a href=3D"mailto:sh=
ipmints@HIDDEN">shipmints@HIDDEN</a>&gt; wrote:</span></div></div><di=
v class=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,20=
4);padding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><div style=3D"font-f=
amily:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">On =
Tue, Mar 25, 2025 at 8:54=E2=80=AFAM Daniel Colascione &lt;<a href=3D"mailt=
o:dancol@HIDDEN" target=3D"_blank">dancol@HIDDEN</a>&gt; wrote:</sp=
an></div></div><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote"=
 style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);p=
adding-left:1ex"><br>
<br>
On March 25, 2025 6:54:34 AM EDT, Ship Mints &lt;<a href=3D"mailto:shipmint=
s@HIDDEN" target=3D"_blank">shipmints@HIDDEN</a>&gt; wrote:<br>
&gt;On Mon, Mar 24, 2025 at 10:16=E2=80=AFPM Dmitry Gutov &lt;<a href=3D"ma=
ilto:dmitry@HIDDEN" target=3D"_blank">dmitry@HIDDEN</a>&gt; wrote:<br=
>
&gt;<br>
&gt;&gt; On 24/03/2025 17:15, Ship Mints wrote:<br>
&gt;&gt; &gt; I&#39;m curious to hear more about why people would object to=
 (project-root<br>
&gt;&gt; &gt; project-obj) being canonicalized.=C2=A0 I don&#39;t think man=
y people ever<br>
&gt;&gt; &gt; manually enter project dirs.=C2=A0 The persisted known projec=
ts, I&#39;d think,<br>
&gt;&gt; &gt; would also benefit from no duplicates.<br>
&gt;&gt;<br>
&gt;&gt; I wonder if you yourself would prefer for all buffer-file-name val=
ues,<br>
&gt;&gt; and default-directory values, to be canonicalized as well.<br>
&gt;&gt;<br>
&gt;&gt; The same reasoning would seem to apply to them too anyway.<br>
&gt;&gt;<br>
&gt;<br>
&gt;Ochen funny. I&#39;ll submit a separate patch for that one day (sarcasm=
 doesn&#39;t<br>
&gt;work in email, sorry).<br>
&gt;<br>
&gt;In the meantime, I maintain my view that project.el needs to report uni=
form<br>
&gt;project names and roots for identical projects approached from differen=
t<br>
&gt;places, even if optional.<br>
&gt;<br>
&gt;I just took a look at projectile.el, which I&#39;d never looked at befo=
re<br>
&gt;because I prefer using/improving core features.=C2=A0 It has a longer u=
ser<br>
&gt;history to see what they&#39;ve experienced (and it looks like some of<=
br>
&gt;project.el&#39;s approach is copied almost verbatim e.g., the implement=
ation of<br>
&gt;project-name).=C2=A0 projectile seems to both have users that want syml=
ink<br>
&gt;chasing and those that don&#39;t (looks like ClearCase users--but out o=
f<br>
&gt;necessity not desire?).=C2=A0 As those concerns seem to be project depe=
ndent, we<br>
&gt;could an option that is a list of paths or matchers to include/exclude =
from<br>
&gt;chasing, and also a project root semaphore file or project config as I<=
br>
&gt;suggested in another message in this thread.<br>
&gt;<br>
&gt;I&#39;d enable chasing as my default, opt out in a specific project sho=
uld I<br>
&gt;ever have one that needs it rather than the other way around, and enjoy=
<br>
&gt;project-name and project-root uniformity.<br>
&gt;<br>
&gt;-Stephane<br>
<br>
Eli is right. You want either global path normalization or you don&#39;t. D=
oing it peacemeal at the project level might satisfy some small immediate n=
eed, but it won&#39;t solve the whole problem and will inevitably cause dow=
nstream problems due to the incoherence.<br>
<br>
Also, it&#39;s just not universally true that I want to regard the &quot;re=
al&quot; version of something as its realpath. People use symlinks differen=
tly. In a world in which we had ubiquitous unprivileged bind mounts *and* s=
ymlinks, the realpath as identity concept might be more powerful, but we do=
n&#39;t.<br></blockquote><div><br></div><div style=3D"font-family:monospace=
">Again...I&#39;m not saying universally, I&#39;m saying=C2=A0optionally, a=
nd preferably flexibly optional.</div></div></div></blockquote><div><br></d=
iv><div class=3D"gmail_default" style=3D"font-family:monospace">I just got =
bitten by project-buffers not reporting all the buffers &quot;strictly&quot=
; related to the project because project.el=C2=A0thinks there are two diffe=
rent projects.=C2=A0 I can&#39;t imagine that me and the colleagues of mine=
 that use convenience symlinks are the only ones to see these kinds of inco=
nsistencies.=C2=A0 Just thought I&#39;d leave a concrete example in this th=
read.</div><div class=3D"gmail_default" style=3D"font-family:monospace"><br=
></div><div class=3D"gmail_default" style=3D"font-family:monospace">I&#39;v=
e turned my advice back on to force truename=C2=A0canonicalization for the =
time being.</div></div></div>

--0000000000001c993206312c9170--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 25 Mar 2025 13:04:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 25 09:04:53 2025
Received: from localhost ([127.0.0.1]:36873 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tx3xb-0002B6-8I
	for submit <at> debbugs.gnu.org; Tue, 25 Mar 2025 09:04:52 -0400
Received: from mail-vk1-xa2f.google.com ([2607:f8b0:4864:20::a2f]:55566)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1tx3uh-00023q-0c
 for 77122 <at> debbugs.gnu.org; Tue, 25 Mar 2025 09:01:51 -0400
Received: by mail-vk1-xa2f.google.com with SMTP id
 71dfb90a1353d-51eb1823a8eso2548511e0c.3
 for <77122 <at> debbugs.gnu.org>; Tue, 25 Mar 2025 06:01:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742907705; x=1743512505; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=dyPAvkF2wyMo2SkWMU1W1ww1TGej3teTmNF2JICrO60=;
 b=OETOgEBCiyqjrCFjtX9tntLpbQKE33g2GLbDGKCjESdYclXMTXzb1REXFHivVIX6eE
 JsKtBXfWgd6OFUxu/oB8a1TKBqJDM5h/6OVVnVgQ6gwNMJALP83FqciBjBvwYEcmGH77
 6DT09rnzteJrGmXGIApuaFWuWmjNpMsjZqf28tsZeP4NhER53X890BBZbYLg43LkRVCa
 rYQMGLAn9N7Ov19MEjzwigpQZ4LYyurQyczahEyDUEoTC2bnC50MPELyvBLwoYZkeF4H
 Ej0eI/S6EMPzFjC8TwHlC8ojT5gWh6XPk0LB4Jt7ZYlUxlF8SETdLYE6EmggagOdjU1R
 TCfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742907705; x=1743512505;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=dyPAvkF2wyMo2SkWMU1W1ww1TGej3teTmNF2JICrO60=;
 b=qZgbAXppbUEJdWaXsSRub072sTEdMx8TOuzv0APXHCnka+rsLSDBL2riN6kE2gNGrE
 emZ01cpUWMjp2AVAX4feKK5/LeG8VK28akH4AhMqqEOoltLJBve+NS0LviexipzwGMVC
 L3S/aOo50rZtiP1JtzabK6VUyQuwyJ5qtmSkQsGWMdcWnbkrmr2ftpHMrMRicpyU+9iR
 WESbOOfodVpw9ubTS/uHabA5kDb8sZI8VndMeIWf6+miYHvvXA9F2GGyH0iHlQN+Rd/6
 lbTlcR9vCKfLq6hADnbAKnbnXjsa4vQew8JWv041XCxtnpHYryUEpsIwPaCYdYIocwg2
 XGuw==
X-Forwarded-Encrypted: i=1;
 AJvYcCWzegQ5HhGQvf4HANzDUBLLm/0vrONIkPik1KfNIXkDCjVnzEkMaN8wVAnKSSEK8PjFu3nkUA==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YwGvPzjjMDv1g8Sj8DLbvd8V+dCKUj3eNPe1KdjGYgKSVai1cMs
 YbqZ1PFiW4juybKKAbqTuz1P7AvTNHsS2cKHNiFKypkz0K7bvLFqWvJ8XTj84pN26lxzzLxBeIO
 I1/OdzCb29tm13+9Hn11iS2j/cg7ouw==
X-Gm-Gg: ASbGncuw3uWHho3Heq7X4ZB72GQGlP0MbfhtdpyRQHrjJbGkCK8jqxBAP90tq5PE38E
 zjxcLkv7JLfDI7p1YI0ZAXMAgaXAAEuj1fcjqL9lI1iSNPGNZjG53QgrZ0LX/QMyX6Q62dHLpD9
 LF+7tqBJlgW8IKKVq1weae3Fa48g==
X-Google-Smtp-Source: AGHT+IGU6YMA7oZMc3d/vCoSSUqi4UpPydFkGrCnLzcnx/hhRaAhxQyocZDn4sL7qRnVLjdFkzr5W+obVkH949NEvlU=
X-Received: by 2002:a05:6122:2109:b0:51f:4154:c1b2 with SMTP id
 71dfb90a1353d-525a82f1e34mr12271195e0c.2.1742907703477; Tue, 25 Mar 2025
 06:01:43 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <99a063ba-59b2-4875-a05e-3d0360f99a74@HIDDEN>
 <CAN+1HboRb=eCVVKKGmW9uhpko=uS9hy4zfuTct6w3W-oZ4hCZQ@HIDDEN>
 <FEFB8C93-34B5-4F70-AC83-11898910F253@HIDDEN>
In-Reply-To: <FEFB8C93-34B5-4F70-AC83-11898910F253@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Tue, 25 Mar 2025 09:01:32 -0400
X-Gm-Features: AQ5f1JpSOT5UP6zUKn0hFAG8gR8qoohCL8DUyg8UqxyGSnUxs2hAeNpe5l-ZuuU
Message-ID: <CAN+1Hbp+D7bc3L0H9R3av0Xu23ocDQAiybG0J4Abq7jC4HYNYg@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Daniel Colascione <dancol@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000008accb406312a52c2"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, Dmitry Gutov <dmitry@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0000000000008accb406312a52c2
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Mar 25, 2025 at 8:54=E2=80=AFAM Daniel Colascione <dancol@HIDDEN=
g> wrote:

>
>
> On March 25, 2025 6:54:34 AM EDT, Ship Mints <shipmints@HIDDEN> wrote:
> >On Mon, Mar 24, 2025 at 10:16=E2=80=AFPM Dmitry Gutov <dmitry@HIDDEN>=
 wrote:
> >
> >> On 24/03/2025 17:15, Ship Mints wrote:
> >> > I'm curious to hear more about why people would object to
> (project-root
> >> > project-obj) being canonicalized.  I don't think many people ever
> >> > manually enter project dirs.  The persisted known projects, I'd thin=
k,
> >> > would also benefit from no duplicates.
> >>
> >> I wonder if you yourself would prefer for all buffer-file-name values,
> >> and default-directory values, to be canonicalized as well.
> >>
> >> The same reasoning would seem to apply to them too anyway.
> >>
> >
> >Ochen funny. I'll submit a separate patch for that one day (sarcasm
> doesn't
> >work in email, sorry).
> >
> >In the meantime, I maintain my view that project.el needs to report
> uniform
> >project names and roots for identical projects approached from different
> >places, even if optional.
> >
> >I just took a look at projectile.el, which I'd never looked at before
> >because I prefer using/improving core features.  It has a longer user
> >history to see what they've experienced (and it looks like some of
> >project.el's approach is copied almost verbatim e.g., the implementation
> of
> >project-name).  projectile seems to both have users that want symlink
> >chasing and those that don't (looks like ClearCase users--but out of
> >necessity not desire?).  As those concerns seem to be project dependent,
> we
> >could an option that is a list of paths or matchers to include/exclude
> from
> >chasing, and also a project root semaphore file or project config as I
> >suggested in another message in this thread.
> >
> >I'd enable chasing as my default, opt out in a specific project should I
> >ever have one that needs it rather than the other way around, and enjoy
> >project-name and project-root uniformity.
> >
> >-Stephane
>
> Eli is right. You want either global path normalization or you don't.
> Doing it peacemeal at the project level might satisfy some small immediat=
e
> need, but it won't solve the whole problem and will inevitably cause
> downstream problems due to the incoherence.
>
> Also, it's just not universally true that I want to regard the "real"
> version of something as its realpath. People use symlinks differently. In=
 a
> world in which we had ubiquitous unprivileged bind mounts *and* symlinks,
> the realpath as identity concept might be more powerful, but we don't.
>

Again...I'm not saying universally, I'm saying optionally, and preferably
flexibly optional.

--0000000000008accb406312a52c2
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Tue, Mar 25, 2025 at 8:54=E2=80=AFAM Daniel Colascione &lt;<a href=3D"ma=
ilto:dancol@HIDDEN">dancol@HIDDEN</a>&gt; wrote:</span></div></div>=
<div class=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail=
_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204=
,204);padding-left:1ex"><br>
<br>
On March 25, 2025 6:54:34 AM EDT, Ship Mints &lt;<a href=3D"mailto:shipmint=
s@HIDDEN" target=3D"_blank">shipmints@HIDDEN</a>&gt; wrote:<br>
&gt;On Mon, Mar 24, 2025 at 10:16=E2=80=AFPM Dmitry Gutov &lt;<a href=3D"ma=
ilto:dmitry@HIDDEN" target=3D"_blank">dmitry@HIDDEN</a>&gt; wrote:<br=
>
&gt;<br>
&gt;&gt; On 24/03/2025 17:15, Ship Mints wrote:<br>
&gt;&gt; &gt; I&#39;m curious to hear more about why people would object to=
 (project-root<br>
&gt;&gt; &gt; project-obj) being canonicalized.=C2=A0 I don&#39;t think man=
y people ever<br>
&gt;&gt; &gt; manually enter project dirs.=C2=A0 The persisted known projec=
ts, I&#39;d think,<br>
&gt;&gt; &gt; would also benefit from no duplicates.<br>
&gt;&gt;<br>
&gt;&gt; I wonder if you yourself would prefer for all buffer-file-name val=
ues,<br>
&gt;&gt; and default-directory values, to be canonicalized as well.<br>
&gt;&gt;<br>
&gt;&gt; The same reasoning would seem to apply to them too anyway.<br>
&gt;&gt;<br>
&gt;<br>
&gt;Ochen funny. I&#39;ll submit a separate patch for that one day (sarcasm=
 doesn&#39;t<br>
&gt;work in email, sorry).<br>
&gt;<br>
&gt;In the meantime, I maintain my view that project.el needs to report uni=
form<br>
&gt;project names and roots for identical projects approached from differen=
t<br>
&gt;places, even if optional.<br>
&gt;<br>
&gt;I just took a look at projectile.el, which I&#39;d never looked at befo=
re<br>
&gt;because I prefer using/improving core features.=C2=A0 It has a longer u=
ser<br>
&gt;history to see what they&#39;ve experienced (and it looks like some of<=
br>
&gt;project.el&#39;s approach is copied almost verbatim e.g., the implement=
ation of<br>
&gt;project-name).=C2=A0 projectile seems to both have users that want syml=
ink<br>
&gt;chasing and those that don&#39;t (looks like ClearCase users--but out o=
f<br>
&gt;necessity not desire?).=C2=A0 As those concerns seem to be project depe=
ndent, we<br>
&gt;could an option that is a list of paths or matchers to include/exclude =
from<br>
&gt;chasing, and also a project root semaphore file or project config as I<=
br>
&gt;suggested in another message in this thread.<br>
&gt;<br>
&gt;I&#39;d enable chasing as my default, opt out in a specific project sho=
uld I<br>
&gt;ever have one that needs it rather than the other way around, and enjoy=
<br>
&gt;project-name and project-root uniformity.<br>
&gt;<br>
&gt;-Stephane<br>
<br>
Eli is right. You want either global path normalization or you don&#39;t. D=
oing it peacemeal at the project level might satisfy some small immediate n=
eed, but it won&#39;t solve the whole problem and will inevitably cause dow=
nstream problems due to the incoherence.<br>
<br>
Also, it&#39;s just not universally true that I want to regard the &quot;re=
al&quot; version of something as its realpath. People use symlinks differen=
tly. In a world in which we had ubiquitous unprivileged bind mounts *and* s=
ymlinks, the realpath as identity concept might be more powerful, but we do=
n&#39;t.<br></blockquote><div><br></div><div class=3D"gmail_default" style=
=3D"font-family:monospace">Again...I&#39;m not saying universally, I&#39;m =
saying=C2=A0optionally, and preferably flexibly optional.</div></div></div>

--0000000000008accb406312a52c2--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 25 Mar 2025 12:55:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 25 08:55:05 2025
Received: from localhost ([127.0.0.1]:36829 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tx3o8-0001cb-8I
	for submit <at> debbugs.gnu.org; Tue, 25 Mar 2025 08:55:04 -0400
Received: from dancol.org ([2600:3c01:e000:3d8::1]:37290)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dancol@HIDDEN>) id 1tx3o5-0001bo-Ab
 for 77122 <at> debbugs.gnu.org; Tue, 25 Mar 2025 08:55:02 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; 
 s=x;
 h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:
 References:In-Reply-To:Subject:CC:To:From:Date:Sender:Reply-To:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=Y2j2doX9oX0f5RJJTHs8WR24KJyMjXsZqWWCEjuX0/0=; b=KOMjBEITouA6URZ4YVlf2fmUD4
 MeFF1meYYrl6qylZEeZsMUC6q91l9hIfiFfq75pUnx3+DD3UlXZRdD2GHcXgm2OdO1unQJkkbJJED
 Qp7FZW1CFl5iktLRtlhJS5/oTZrkdve0XR+vGsvHHl8H/U4G01qPhMuh9m930tKRTIxYFHiOSQqD7
 TcIbM47bK8gt/RenkZYzsCjIDzSceQYEpLJL9EnyxmIf0US9QSnC3ErFINzyS98Zhm2ippIAGHuEI
 f3QnF1BW0A6rFzWoCW2B7CBJ2K06nwCai6Ox+5Gyt98EB9gE/ooSpoBeAapScWEOOPBFIuE5st+gp
 a00zyHaQ==;
Received: from 2603-9001-4203-1ab2-1951-ef57-b5ee-b6a5.inf6.spectrum.com
 ([2603:9001:4203:1ab2:1951:ef57:b5ee:b6a5]:53250 helo=[IPv6:::1])
 by dancol.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
 (Exim 4.96) (envelope-from <dancol@HIDDEN>) id 1tx3ne-00405J-0K;
 Tue, 25 Mar 2025 08:54:34 -0400
Date: Tue, 25 Mar 2025 08:54:53 -0400
From: Daniel Colascione <dancol@HIDDEN>
To: Ship Mints <shipmints@HIDDEN>, Dmitry Gutov <dmitry@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
User-Agent: K-9 Mail for Android
In-Reply-To: <CAN+1HboRb=eCVVKKGmW9uhpko=uS9hy4zfuTct6w3W-oZ4hCZQ@HIDDEN>
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <99a063ba-59b2-4875-a05e-3d0360f99a74@HIDDEN>
 <CAN+1HboRb=eCVVKKGmW9uhpko=uS9hy4zfuTct6w3W-oZ4hCZQ@HIDDEN>
Message-ID: <FEFB8C93-34B5-4F70-AC83-11898910F253@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)



On March 25, 2025 6:54:34 AM EDT, Ship Mints <shipmints@gmail=2Ecom> wrote=
:
>On Mon, Mar 24, 2025 at 10:16=E2=80=AFPM Dmitry Gutov <dmitry@gutov=2Edev=
> wrote:
>
>> On 24/03/2025 17:15, Ship Mints wrote:
>> > I'm curious to hear more about why people would object to (project-ro=
ot
>> > project-obj) being canonicalized=2E  I don't think many people ever
>> > manually enter project dirs=2E  The persisted known projects, I'd thi=
nk,
>> > would also benefit from no duplicates=2E
>>
>> I wonder if you yourself would prefer for all buffer-file-name values,
>> and default-directory values, to be canonicalized as well=2E
>>
>> The same reasoning would seem to apply to them too anyway=2E
>>
>
>Ochen funny=2E I'll submit a separate patch for that one day (sarcasm doe=
sn't
>work in email, sorry)=2E
>
>In the meantime, I maintain my view that project=2Eel needs to report uni=
form
>project names and roots for identical projects approached from different
>places, even if optional=2E
>
>I just took a look at projectile=2Eel, which I'd never looked at before
>because I prefer using/improving core features=2E  It has a longer user
>history to see what they've experienced (and it looks like some of
>project=2Eel's approach is copied almost verbatim e=2Eg=2E, the implement=
ation of
>project-name)=2E  projectile seems to both have users that want symlink
>chasing and those that don't (looks like ClearCase users--but out of
>necessity not desire?)=2E  As those concerns seem to be project dependent=
, we
>could an option that is a list of paths or matchers to include/exclude fr=
om
>chasing, and also a project root semaphore file or project config as I
>suggested in another message in this thread=2E
>
>I'd enable chasing as my default, opt out in a specific project should I
>ever have one that needs it rather than the other way around, and enjoy
>project-name and project-root uniformity=2E
>
>-Stephane

Eli is right=2E You want either global path normalization or you don't=2E =
Doing it peacemeal at the project level might satisfy some small immediate =
need, but it won't solve the whole problem and will inevitably cause downst=
ream problems due to the incoherence=2E

Also, it's just not universally true that I want to regard the "real" vers=
ion of something as its realpath=2E People use symlinks differently=2E In a=
 world in which we had ubiquitous unprivileged bind mounts *and* symlinks, =
the realpath as identity concept might be more powerful, but we don't=2E




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 25 Mar 2025 12:30:43 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 25 08:30:43 2025
Received: from localhost ([127.0.0.1]:36755 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tx3QZ-0000Pf-4U
	for submit <at> debbugs.gnu.org; Tue, 25 Mar 2025 08:30:43 -0400
Received: from mail-ua1-x933.google.com ([2607:f8b0:4864:20::933]:46565)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1tx3QX-0000P7-0A
 for 77122 <at> debbugs.gnu.org; Tue, 25 Mar 2025 08:30:41 -0400
Received: by mail-ua1-x933.google.com with SMTP id
 a1e0cc1a2514c-86fea8329cdso189595241.1
 for <77122 <at> debbugs.gnu.org>; Tue, 25 Mar 2025 05:30:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742905835; x=1743510635; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=lkgbd68zSrotnE+czDL4YpYsD+3sH5+kxOKrCWJbF3w=;
 b=Z6VOq60sLl1329Yw6eJ3o+DG6LZLZ0q0eVXV9M8T8yr17LzXlNZCdQ+7GKEqpDgwmf
 lyjmiIIRDMP1QPd/ZbDzN5WQcFcgSxmx/usf+rsy2/BltuXrSzY4L+86S1LbxNSbJie4
 LbqviuCoGqurtzmKaZSsHZUrKEOr4u9JsOlg+fCUkJKEwoNZjR81FmbUZYG06hleNFbc
 IPRCaHvPICDjnJ9SvjK4CenUXDcOk54by9wVjq/RIRE2TUlEAk9YEokqFHc59hPPnvSN
 qu6Q0Mu+DzMIoNEMoeEeTniWR/CrXinqC5SS1CZowbkedsn4lXz0H/3SNtpgazHojv+L
 g3gA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742905835; x=1743510635;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=lkgbd68zSrotnE+czDL4YpYsD+3sH5+kxOKrCWJbF3w=;
 b=JYw31WpY3S0XIYDfaKpudpNoK6L14ZhY1ebucO5a54tBNIpLJfiR5OfndnszzU0nBJ
 Q7oKKLEIKLsuL8VPGef7mzU3ElsIuJadn4g7K/kY+1KEuBQkBaaQpP7oOAy6taDQCbFc
 x+sfI41FaD1rMPBQi7Je4vJwnC5DxbdppS15WpWiW1LRjRlP6b5zeh+MtmWb2Opy5qWR
 cdWqt45b4ERI8LTvuvuYVmyyf4w1syT57Ar5a69I6a6nw6rQNIdlIrTdaa+AeAmE4p6q
 0oD3+jiwcOfaoA1nNEnFX0C6rVbkj3CX1vfTd8hfmiJldkPWf1UTSqekkSddHtPH/Nuh
 XZRg==
X-Forwarded-Encrypted: i=1;
 AJvYcCUKZepxIg/FN8FTRIDmHw3SsXAhSkBujIjw1s+9Re3MZM07wVheOznASJOAMQZXWM4OAVXO0g==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YxfHpnF6kqIqXB2Z68aFTkv2NS0jqfwBtF/3SO9vHMkpBtuWuIU
 CuigLUUIPnQNkcbtF1xwU6OYajI7yBHoBDnEUaVgERNmjavHlMBrNjTKDFbobqYTPmuwSdFcq1r
 fhX8PyoCcVLaWHhbLesYl42tPSDA=
X-Gm-Gg: ASbGncto9Sp9wU/KuXlvhXxDKqr/kD8APa/Lp1vcoPqIRcddbYWRJH5CaLNDg2PEUQZ
 sk/nk/J1G+Z83eErL6A6AOqqG/RTvp3Gfcl+70UZycjSrZKK7lQks+QCcrf+dVlt8AJcfFtbfWy
 HcaNhRvsv1SSus+gGm1EAV465big==
X-Google-Smtp-Source: AGHT+IHs8E3ZqRw5OlgcN3G5TXXQOvC2vPajeuIe/k+KMJeANMMkroPB5AR42We/3f6qMTZsSeOqyI85XnnW2QVV7uo=
X-Received: by 2002:a05:6102:330a:b0:4bb:e80b:473d with SMTP id
 ada2fe7eead31-4c50d4b2fdbmr10606780137.6.1742905830621; Tue, 25 Mar 2025
 05:30:30 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <86y0wue188.fsf@HIDDEN>
 <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
 <86sen2dxyp.fsf@HIDDEN>
 <CAN+1Hbr1Y4jfGZnKzqp3d9C1orPJBHhGC8OGhvcqdovoPOnr4g@HIDDEN>
 <86r02mdwjx.fsf@HIDDEN>
 <CAN+1HboXWN-1wRghOj7oFj99DS1LQuMfLJF=oS8K9QyBcNDgEA@HIDDEN>
 <86msd9e27o.fsf@HIDDEN>
 <CAN+1Hbr6Cm3yRNSXH6i2oqoAey0jv--aivZ=Ms0mU0fBPPHQEQ@HIDDEN>
In-Reply-To: <CAN+1Hbr6Cm3yRNSXH6i2oqoAey0jv--aivZ=Ms0mU0fBPPHQEQ@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Tue, 25 Mar 2025 08:30:19 -0400
X-Gm-Features: AQ5f1JqT6XkNQN6223M2HyFX-AyQQv-WYGPIPTKAzxk6XetZBSqIK3rX9p1i74k
Message-ID: <CAN+1Hbr7fxb0aMg66qjjdWJCaMLmY7djtJMDfGBiOmyqB8ma1g@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000e9492a063129e2e4"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000e9492a063129e2e4
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Mar 25, 2025 at 8:27=E2=80=AFAM Ship Mints <shipmints@HIDDEN> wr=
ote:

> On Tue, Mar 25, 2025 at 8:15=E2=80=AFAM Eli Zaretskii <eliz@HIDDEN> wrot=
e:
>
>> > From: Ship Mints <shipmints@HIDDEN>
>> > Date: Mon, 24 Mar 2025 16:15:14 -0400
>> > Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
>> >
>> >  As this discussion shows, it might well be a "misrepresentation" in
>> >  some cases.
>> >
>> > Maybe unexpected but not a misrepresentation.
>> >
>> > In any case, the project object returned must be equivalent for both
>> directories passed in and that's not how
>> > project.el is structured.  Using file-equal-p or any other method to
>> find an "equivalent" project object but
>> > substitute the "expected" directory results in two objects that don't
>> compare as equal and that's a
>> > misrepresentation IMO.
>>
>> Thus my suggestion to make those objects 'equal', even if they aren't
>> 'eq'.
>>
>
> I hear you, 100%.  But I don't see a place to perform that comparison
> given the current implementation.
>

I'll give you a concrete example I've been playing with.  I keep my Emacs
init files in a git repo.  I put the repo in ~/proj/emacs.d.  In my home
directory, I ln -s ~/proj/emacs.d .emacs.d.  In this set up, project-name
reports "emacs.d" when default-directory is relative to ~/proj/emacs.d and
".emacs.d" when relative to my home directory.  It's the same project and I
expect the name to be the same.  Also for project-root, as I've said.

--000000000000e9492a063129e2e4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Tue, Mar 25, 2025 at 8:27=E2=80=AFAM Ship Mints &lt;<a href=3D"mailto:sh=
ipmints@HIDDEN">shipmints@HIDDEN</a>&gt; wrote:</span></div></div><di=
v class=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,20=
4);padding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><div style=3D"font-f=
amily:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">On =
Tue, Mar 25, 2025 at 8:15=E2=80=AFAM Eli Zaretskii &lt;<a href=3D"mailto:el=
iz@HIDDEN" target=3D"_blank">eliz@HIDDEN</a>&gt; wrote:</span></div></div=
><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"marg=
in:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1e=
x">&gt; From: Ship Mints &lt;<a href=3D"mailto:shipmints@HIDDEN" target=
=3D"_blank">shipmints@HIDDEN</a>&gt;<br>
&gt; Date: Mon, 24 Mar 2025 16:15:14 -0400<br>
&gt; Cc: <a href=3D"mailto:dancol@HIDDEN" target=3D"_blank">dancol@danc=
ol.org</a>, <a href=3D"mailto:77122 <at> debbugs.gnu.org" target=3D"_blank">7712=
2 <at> debbugs.gnu.org</a>, <a href=3D"mailto:dmitry@HIDDEN" target=3D"_blank=
">dmitry@HIDDEN</a><br>
&gt; <br>
&gt;=C2=A0 As this discussion shows, it might well be a &quot;misrepresenta=
tion&quot; in<br>
&gt;=C2=A0 some cases.<br>
&gt; <br>
&gt; Maybe unexpected but not a misrepresentation.<br>
&gt; <br>
&gt; In any case, the project object returned must be equivalent for both d=
irectories passed in and that&#39;s not how<br>
&gt; project.el is structured.=C2=A0 Using file-equal-p or any other method=
 to find an &quot;equivalent&quot; project object but<br>
&gt; substitute the &quot;expected&quot; directory results in two objects t=
hat don&#39;t compare as equal and that&#39;s a<br>
&gt; misrepresentation IMO.<br>
<br>
Thus my suggestion to make those objects &#39;equal&#39;, even if they aren=
&#39;t<br>
&#39;eq&#39;.<br></blockquote><div><br></div><div style=3D"font-family:mono=
space">I hear you, 100%.=C2=A0 But I don&#39;t see a place to perform that =
comparison given the current implementation.</div></div></div></blockquote>=
<div><br></div><div class=3D"gmail_default" style=3D"font-family:monospace"=
>I&#39;ll give you a concrete example I&#39;ve been playing with.=C2=A0 I k=
eep my Emacs init files in a git repo.=C2=A0 I put the repo in ~/proj/emacs=
.d.=C2=A0 In my home directory, I ln -s ~/proj/emacs.d .emacs.d.=C2=A0 In t=
his set up, project-name reports &quot;emacs.d&quot; when default-directory=
 is relative to ~/proj/emacs.d and &quot;.emacs.d&quot; when relative to my=
 home directory.=C2=A0 It&#39;s the same project and I expect the name to b=
e the same.=C2=A0 Also for project-root, as I&#39;ve said.</div></div></div=
>

--000000000000e9492a063129e2e4--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 25 Mar 2025 12:28:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 25 08:28:11 2025
Received: from localhost ([127.0.0.1]:36726 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tx3O6-0000BL-Tl
	for submit <at> debbugs.gnu.org; Tue, 25 Mar 2025 08:28:11 -0400
Received: from mail-vk1-xa33.google.com ([2607:f8b0:4864:20::a33]:48315)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1tx3Ny-0000AL-8I
 for 77122 <at> debbugs.gnu.org; Tue, 25 Mar 2025 08:28:04 -0400
Received: by mail-vk1-xa33.google.com with SMTP id
 71dfb90a1353d-5259327a937so2165745e0c.0
 for <77122 <at> debbugs.gnu.org>; Tue, 25 Mar 2025 05:28:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742905676; x=1743510476; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=9S1Cu6d6fbDANIqJ8PFvyUVHv4T/BckyopL+qce2sOc=;
 b=R4A2o+JrkzCMabhmSRHZiP7kh99+41jgUFRP6QgZGVFGFnlDcPc18vVidmL5dm+pWT
 UzemeqOQLjKmKy7OHeqNtzn9xlIxDji861gB/uARKlcFE06gxGmoXv59qyZ8Sukbp3et
 D287cHqYnE624X0tUZEzGIe98hsMC88IWCQZgIptaTyf5VOTGyoXfNTJ83x2k3HgRESE
 x314bHXFYMW6yfEvE9v/HTgZmLjKl5FD6GyffYblsz8jFs3VqebXJvfivX0wMbL3uPvs
 ggXizIG+trxh250gM0p92D2fQpA3DT0drRS3ZfoESXY4OWPgSTbr0orZ+F0kASj/yO75
 DoeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742905676; x=1743510476;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=9S1Cu6d6fbDANIqJ8PFvyUVHv4T/BckyopL+qce2sOc=;
 b=aIVcDRg2fDPgk/ki/bJ4b9/3p2VeqUtchBKgpOmW+Y1VsXOVLWaKS2jt9iE3J97Cim
 d1gn87LVt599vDmZTFggeFYkxBe/Uu1lBlA07R7kRdMfn6NSFCY7Y0GNia7RzY5o1OqZ
 CclyaeI3w53Jwd6Q2AObSlX0gT+ClXUaki1Vlg9B3tBt/m0H3h8jo1s9kkiFRe+r9GcJ
 qY+FRTK6WErCGwadv/NFb/r2XFrnlQQD2u0sEa+a+7HjU1PaMmqTaTqoBLI7/aWufq9o
 sLHbfVmkUP4fgjGvmnZeP/Igb1ttsj3tKvT6MImn7wQp46+7a9ISOu5M8D7wxpWSgm3i
 IxoA==
X-Forwarded-Encrypted: i=1;
 AJvYcCXIF9frh8nzRRtYJYM5Pi5ir+wkJ8SVqDzlZFKfnAz44asZBDfY/2rpfURGURH19BeRUBVryA==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yyity8rjuZgxiu49US7kll9WFitf+RiokbmvstcRobwIE2CKTf4
 HZxHIUBSCQ1/+vHnfetZVey+KCVjiNeR6qiqqFPbP6GhEPT17Rf5p5j3Y/ySEkRsS1h06MMaJbd
 LYZgdheKrCpHFIMI73BPH7S1qTt4=
X-Gm-Gg: ASbGnctgwv7AHV+GrHOVkslE1ArCB2UWig35txYcnaVgiVRDtFA0Xzopa7hPxDrm2b+
 mB63NDUMx97epBr8PIAnp9WbPSyimX44pfWbh2abg4Ix5mdz/TcQu1E9yK4rltMKdEw1VwNsodI
 ICt15qzOjlyV3sOW7TFyM/Zu86nQ==
X-Google-Smtp-Source: AGHT+IE48jD6Fj+5bhdCN9brm83Pcx/5gaQQxp9EfYH8QvDsitMrMUFZsLezuiJBf4Aqvvt6bVapBF0J/BO9pscTM+I=
X-Received: by 2002:a05:6102:512b:b0:4c1:86a7:74e9 with SMTP id
 ada2fe7eead31-4c50d4cf594mr11878232137.10.1742905676345; Tue, 25 Mar 2025
 05:27:56 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <86y0wue188.fsf@HIDDEN>
 <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
 <86sen2dxyp.fsf@HIDDEN>
 <CAN+1Hbr1Y4jfGZnKzqp3d9C1orPJBHhGC8OGhvcqdovoPOnr4g@HIDDEN>
 <86r02mdwjx.fsf@HIDDEN>
 <CAN+1HboXWN-1wRghOj7oFj99DS1LQuMfLJF=oS8K9QyBcNDgEA@HIDDEN>
 <86msd9e27o.fsf@HIDDEN>
In-Reply-To: <86msd9e27o.fsf@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Tue, 25 Mar 2025 08:27:45 -0400
X-Gm-Features: AQ5f1JqfdKxH_OfeCkB_XeMyZlVeylolgw-yBm5MBLUjWEgK9Cok5biw5vzUOpQ
Message-ID: <CAN+1Hbr6Cm3yRNSXH6i2oqoAey0jv--aivZ=Ms0mU0fBPPHQEQ@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000b737e2063129d94a"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000b737e2063129d94a
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Mar 25, 2025 at 8:15=E2=80=AFAM Eli Zaretskii <eliz@HIDDEN> wrote:

> > From: Ship Mints <shipmints@HIDDEN>
> > Date: Mon, 24 Mar 2025 16:15:14 -0400
> > Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
> >
> >  As this discussion shows, it might well be a "misrepresentation" in
> >  some cases.
> >
> > Maybe unexpected but not a misrepresentation.
> >
> > In any case, the project object returned must be equivalent for both
> directories passed in and that's not how
> > project.el is structured.  Using file-equal-p or any other method to
> find an "equivalent" project object but
> > substitute the "expected" directory results in two objects that don't
> compare as equal and that's a
> > misrepresentation IMO.
>
> Thus my suggestion to make those objects 'equal', even if they aren't
> 'eq'.
>

I hear you, 100%.  But I don't see a place to perform that comparison given
the current implementation.

--000000000000b737e2063129d94a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Tue, Mar 25, 2025 at 8:15=E2=80=AFAM Eli Zaretskii &lt;<a href=3D"mailto=
:eliz@HIDDEN">eliz@HIDDEN</a>&gt; wrote:</span></div></div><div class=3D"=
gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">&gt; From: Ship Mints &lt;<a href=3D"mailto:shipmints@HIDDEN"=
 target=3D"_blank">shipmints@HIDDEN</a>&gt;<br>
&gt; Date: Mon, 24 Mar 2025 16:15:14 -0400<br>
&gt; Cc: <a href=3D"mailto:dancol@HIDDEN" target=3D"_blank">dancol@danc=
ol.org</a>, <a href=3D"mailto:77122 <at> debbugs.gnu.org" target=3D"_blank">7712=
2 <at> debbugs.gnu.org</a>, <a href=3D"mailto:dmitry@HIDDEN" target=3D"_blank=
">dmitry@HIDDEN</a><br>
&gt; <br>
&gt;=C2=A0 As this discussion shows, it might well be a &quot;misrepresenta=
tion&quot; in<br>
&gt;=C2=A0 some cases.<br>
&gt; <br>
&gt; Maybe unexpected but not a misrepresentation.<br>
&gt; <br>
&gt; In any case, the project object returned must be equivalent for both d=
irectories passed in and that&#39;s not how<br>
&gt; project.el is structured.=C2=A0 Using file-equal-p or any other method=
 to find an &quot;equivalent&quot; project object but<br>
&gt; substitute the &quot;expected&quot; directory results in two objects t=
hat don&#39;t compare as equal and that&#39;s a<br>
&gt; misrepresentation IMO.<br>
<br>
Thus my suggestion to make those objects &#39;equal&#39;, even if they aren=
&#39;t<br>
&#39;eq&#39;.<br></blockquote><div><br></div><div class=3D"gmail_default" s=
tyle=3D"font-family:monospace">I hear you, 100%.=C2=A0 But I don&#39;t see =
a place to perform that comparison given the current implementation.</div><=
/div></div>

--000000000000b737e2063129d94a--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 25 Mar 2025 12:26:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 25 08:26:32 2025
Received: from localhost ([127.0.0.1]:36719 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tx3MV-00007R-Kw
	for submit <at> debbugs.gnu.org; Tue, 25 Mar 2025 08:26:32 -0400
Received: from mail-vk1-xa34.google.com ([2607:f8b0:4864:20::a34]:46196)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1tx3MT-000074-1S
 for 77122 <at> debbugs.gnu.org; Tue, 25 Mar 2025 08:26:30 -0400
Received: by mail-vk1-xa34.google.com with SMTP id
 71dfb90a1353d-523ffbe0dbcso6068118e0c.0
 for <77122 <at> debbugs.gnu.org>; Tue, 25 Mar 2025 05:26:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742905583; x=1743510383; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=k7kJjsfuu2Z7GCTNo/ifNzNNIBClyAi0E4bUi14YILs=;
 b=QcllR6QkH7FgODBP6P3ttBUgaIKqamj50uMcBbkpozHLyYjiDuS5lz3U8SJ/8Odw/t
 nFNzrK26HormGG+KUqHUcdcjIWrqICXrrPIy7nObwDc/D1mxvtqE74nE+5xBvSM6HOOZ
 URbcgDGSxfiq+vzLw0Szha5piEyi7JcQzMVB3tzUBB7K4fqMVXA+R8YsWZl7YMZg0J/2
 CjDtUqx0RcUnDUgfxOaMnzhJGZiXglmR3ylERaA1aA42/Kz0X/gRXgrmFTDnD3w3xZXI
 iBnmgiBzeBP+mCgITB14McbNk6+ibo3yDo5op/CfltNqP5mKHsMYVxmnFvNXZ+Pf3q8Q
 qdSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742905583; x=1743510383;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=k7kJjsfuu2Z7GCTNo/ifNzNNIBClyAi0E4bUi14YILs=;
 b=fAxgjiXQzBQjkB/VbFW5L0iSrQ7f8FR0khiJPp1GLmbxvCcXpbHZBx4iiILwsi1v9E
 dvP10gIdnx6zK+JF64Tdo23W5P7AVtzC29HdC0B4cYLWnavcahQcTJIsNM/X0ekX1YVS
 F/63wvplv/UrcOlnFidFsiIYvLO9wCDEIw76fcAFpAgzpP26trxzPQ5LrV49Xl0z1Vdr
 G9ahycrrobtO3cNDxZmDkn3cYAR/0pF0Bprzl1HndnYsrw1XwCcGrRGoSGDlZf30ntjz
 6oFfz9IB1vCuEYp15Mh15nhwfEbUptrmQmVqzq4Jze+k0hfQAnuKyuo+gAJGrpTVQ8DT
 GYlQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCUsNqqwQRRfkuvDWcZHdVjjaGzr+354Z0W3nNzMlwHMu2Q+Mdl83fpHUX6fWLZNFLKSMqMxVQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyWT73ph+dwfuUVbHfXm0P35ltIIVtJa7FOzPj59gUFwEreyG41
 IMxUUy5H2qmWRnIhQrjnb3fFx0WDpAGSl9LzWAqPKVwipooXtVD6YCUFflSdkZe+Ipq5O/RqlQD
 QQvWKamx+UHGsFyr5xmRUM7j7by4=
X-Gm-Gg: ASbGncviEFepL1MPolw6crefeV1RHdDFKZykS3WZKkgj8VSA7QWfuBHNoAH7SHqSng4
 L4p3ivQvUM4sr0Chr4rBlryGJ6RjMSFV5emJbFESFmUOtwfI+eHfiNN0Vouw7YcBEAxfGb1Jv+y
 hDgOSGx407qRPJzGLvBpxVoD4LmQ==
X-Google-Smtp-Source: AGHT+IEBWtGB8FbihB8RHn6FlsHj4QIHsyybtwdKgq1OOeSOP0gnM8jOMAXQHLdLnRjXxmZpQ45oWh3RdnIVY5msYjc=
X-Received: by 2002:a05:6122:221a:b0:523:f1f9:d03f with SMTP id
 71dfb90a1353d-525a82f329bmr10376887e0c.1.1742905582961; Tue, 25 Mar 2025
 05:26:22 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <86y0wue188.fsf@HIDDEN>
 <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
 <86sen2dxyp.fsf@HIDDEN>
 <CAN+1Hbr1Y4jfGZnKzqp3d9C1orPJBHhGC8OGhvcqdovoPOnr4g@HIDDEN>
 <86r02mdwjx.fsf@HIDDEN>
 <CAN+1HboXWN-1wRghOj7oFj99DS1LQuMfLJF=oS8K9QyBcNDgEA@HIDDEN>
 <CAN+1Hbpw0PfVEJCEO2VVOUfO+L-U3p_y2QAh+Wnv2MNwctDL9A@HIDDEN>
 <86ldste24n.fsf@HIDDEN>
In-Reply-To: <86ldste24n.fsf@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Tue, 25 Mar 2025 08:26:11 -0400
X-Gm-Features: AQ5f1JqZta6iMMbDuTE_1pfsNuuBDwRH3qf7iOdE2mrSWJbKOR1Wz89a5QEjJUw
Message-ID: <CAN+1Hbo5AWMAF9D=pVwV=jQF3oMAL569sYhZ9iXoJw4Ls3RAvg@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000265842063129d418"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000265842063129d418
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Mar 25, 2025 at 8:17=E2=80=AFAM Eli Zaretskii <eliz@HIDDEN> wrote:

> > From: Ship Mints <shipmints@HIDDEN>
> > Date: Mon, 24 Mar 2025 16:25:44 -0400
> > Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
> >
> > To concretely demonstrate the differences, the function project-name
> will return different results for each
> > project object based on buffers loaded from different paths, despite th=
e
> projects being equivalent.
> >
> > project-name is defined as:
> >
> > (file-name-nondirectory (directory-file-name (project-root project)))
> >
> > If the root directory is determined to be different, the objects return
> different names (and different roots).
>
> Unless I'm misunderstanding what Daniel wrote, the above is actually a
> feature from his POV.
>

Indeed, it might be, but I'm curious what tooling he's using that depends
on project-root not being "absolute" so to speak, and relative to his
ambient default-directory.

--000000000000265842063129d418
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Tue, Mar 25, 2025 at 8:17=E2=80=AFAM Eli Zaretskii &lt;<a href=3D"mailto=
:eliz@HIDDEN">eliz@HIDDEN</a>&gt; wrote:</span></div></div><div class=3D"=
gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">&gt; From: Ship Mints &lt;<a href=3D"mailto:shipmints@HIDDEN"=
 target=3D"_blank">shipmints@HIDDEN</a>&gt;<br>
&gt; Date: Mon, 24 Mar 2025 16:25:44 -0400<br>
&gt; Cc: <a href=3D"mailto:dancol@HIDDEN" target=3D"_blank">dancol@danc=
ol.org</a>, <a href=3D"mailto:77122 <at> debbugs.gnu.org" target=3D"_blank">7712=
2 <at> debbugs.gnu.org</a>, <a href=3D"mailto:dmitry@HIDDEN" target=3D"_blank=
">dmitry@HIDDEN</a><br>
&gt; <br>
&gt; To concretely demonstrate the differences, the function project-name w=
ill return different results for each<br>
&gt; project object based on buffers loaded from different paths, despite t=
he projects being equivalent.<br>
&gt; <br>
&gt; project-name is defined as:<br>
&gt; <br>
&gt; (file-name-nondirectory (directory-file-name (project-root project)))<=
br>
&gt; <br>
&gt; If the root directory is determined to be different, the objects retur=
n different names (and different roots).<br>
<br>
Unless I&#39;m misunderstanding what Daniel wrote, the above is actually a<=
br>
feature from his POV.<br></blockquote><div><br></div><div class=3D"gmail_de=
fault" style=3D"font-family:monospace">Indeed, it might be, but I&#39;m cur=
ious what tooling he&#39;s using that depends on project-root not being &qu=
ot;absolute&quot; so to speak, and relative to his ambient default-director=
y.</div></div></div>

--000000000000265842063129d418--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 25 Mar 2025 12:17:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 25 08:17:50 2025
Received: from localhost ([127.0.0.1]:36675 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tx3E6-000830-Eg
	for submit <at> debbugs.gnu.org; Tue, 25 Mar 2025 08:17:50 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:57344)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tx3E4-00082i-DP
 for 77122 <at> debbugs.gnu.org; Tue, 25 Mar 2025 08:17:48 -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 <eliz@HIDDEN>)
 id 1tx3Dx-0001r0-U0; Tue, 25 Mar 2025 08:17:43 -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=o6MFStu9OS+MuHZJ2TBs8ASREZgZsl7sjuVabnn8Y+A=; b=jiT1/Pmvhl4L
 F4d0mTwrRQpiccsvq5aLEhSyXdpiD+rEmyLyxoSWqO2uym6kI9KjlX9t9dg+1UbRaBDrtDengTk/W
 8RIcqBCoTYW8/MZq+aKD/51I5FBi37v+8y3b3Ws8Iy3gi4LkX3xyT3JX7b/85lnW+B+5j0BSoupdv
 6TxPogHDKzZRVAydlr4xeNKqGrXvXNcQ4e/+XJMr5rYknaDbqAu2encilChY2gb93WCfMlyxZcqMH
 NRsGLZ833v407eaQn1xYRok/7RgVWx9ZcRHCOF6Um/7RUyo2r37ejxQQQGrY7gWIS5nI8WjzWPHQZ
 TB/zDGjwpVP2nP8pvYhyKw==;
Date: Tue, 25 Mar 2025 14:16:56 +0200
Message-Id: <86ldste24n.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Ship Mints <shipmints@HIDDEN>
In-Reply-To: <CAN+1Hbpw0PfVEJCEO2VVOUfO+L-U3p_y2QAh+Wnv2MNwctDL9A@HIDDEN>
 (message from Ship Mints on Mon, 24 Mar 2025 16:25:44 -0400)
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <86y0wue188.fsf@HIDDEN>
 <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
 <86sen2dxyp.fsf@HIDDEN>
 <CAN+1Hbr1Y4jfGZnKzqp3d9C1orPJBHhGC8OGhvcqdovoPOnr4g@HIDDEN>
 <86r02mdwjx.fsf@HIDDEN>
 <CAN+1HboXWN-1wRghOj7oFj99DS1LQuMfLJF=oS8K9QyBcNDgEA@HIDDEN>
 <CAN+1Hbpw0PfVEJCEO2VVOUfO+L-U3p_y2QAh+Wnv2MNwctDL9A@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Ship Mints <shipmints@HIDDEN>
> Date: Mon, 24 Mar 2025 16:25:44 -0400
> Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
> 
> To concretely demonstrate the differences, the function project-name will return different results for each
> project object based on buffers loaded from different paths, despite the projects being equivalent.
> 
> project-name is defined as:
> 
> (file-name-nondirectory (directory-file-name (project-root project)))
> 
> If the root directory is determined to be different, the objects return different names (and different roots).

Unless I'm misunderstanding what Daniel wrote, the above is actually a
feature from his POV.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 25 Mar 2025 12:15:44 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 25 08:15:44 2025
Received: from localhost ([127.0.0.1]:36670 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tx3C3-0007y5-L0
	for submit <at> debbugs.gnu.org; Tue, 25 Mar 2025 08:15:43 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:35940)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tx3C0-0007xp-G9
 for 77122 <at> debbugs.gnu.org; Tue, 25 Mar 2025 08:15: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 <eliz@HIDDEN>)
 id 1tx3Bv-0001iD-0z; Tue, 25 Mar 2025 08:15:35 -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=Pru7nbcJxda9w+7WvKfIY9SpJxbfw5bb8rycn8/hgHw=; b=KWk1savRWQFc
 dh6Pznurlb/DZEoZLpaKFAnVcqqD0nvx8aeZYWdDLMq94NLK0cWgYgCT+WAwaxcu5jM2PE0p7DDus
 PI6BfiVXn4c3Zs6Ryg0yWR51+AiKF2R6y9Abwlk19o6SKPcwN9bajAcpbguxpYy++7w6TWMew22pZ
 2D6ceEuS0ogzzoWw9pt7PaeLUxR+KSLTtfjXH1+FcoTsksK42FSM85wBPScSfaNIuZnAvM6qzUQEy
 19IQzUq56lCsADC9o/tdlkaBImr3OaQ6TOUtt2YJAKzqOTUlcaI5L6H/X14ePlCDQ3GduCMcljEFM
 kcvkUmUZ1QIGXPUw434ALQ==;
Date: Tue, 25 Mar 2025 14:15:07 +0200
Message-Id: <86msd9e27o.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Ship Mints <shipmints@HIDDEN>
In-Reply-To: <CAN+1HboXWN-1wRghOj7oFj99DS1LQuMfLJF=oS8K9QyBcNDgEA@HIDDEN>
 (message from Ship Mints on Mon, 24 Mar 2025 16:15:14 -0400)
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <86y0wue188.fsf@HIDDEN>
 <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
 <86sen2dxyp.fsf@HIDDEN>
 <CAN+1Hbr1Y4jfGZnKzqp3d9C1orPJBHhGC8OGhvcqdovoPOnr4g@HIDDEN>
 <86r02mdwjx.fsf@HIDDEN>
 <CAN+1HboXWN-1wRghOj7oFj99DS1LQuMfLJF=oS8K9QyBcNDgEA@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Ship Mints <shipmints@HIDDEN>
> Date: Mon, 24 Mar 2025 16:15:14 -0400
> Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
> 
>  As this discussion shows, it might well be a "misrepresentation" in
>  some cases.
> 
> Maybe unexpected but not a misrepresentation.
> 
> In any case, the project object returned must be equivalent for both directories passed in and that's not how
> project.el is structured.  Using file-equal-p or any other method to find an "equivalent" project object but
> substitute the "expected" directory results in two objects that don't compare as equal and that's a
> misrepresentation IMO.

Thus my suggestion to make those objects 'equal', even if they aren't
'eq'.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 25 Mar 2025 10:54:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 25 06:54:55 2025
Received: from localhost ([127.0.0.1]:36492 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tx1vr-0000hI-39
	for submit <at> debbugs.gnu.org; Tue, 25 Mar 2025 06:54:55 -0400
Received: from mail-vk1-xa35.google.com ([2607:f8b0:4864:20::a35]:45276)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1tx1vn-0000gz-Va
 for 77122 <at> debbugs.gnu.org; Tue, 25 Mar 2025 06:54:53 -0400
Received: by mail-vk1-xa35.google.com with SMTP id
 71dfb90a1353d-5240764f7c1so2122709e0c.2
 for <77122 <at> debbugs.gnu.org>; Tue, 25 Mar 2025 03:54:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742900086; x=1743504886; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=KZ5HbU1r9YCweDbY4zo8E1hR05aW59Da7DMIAWZBBgg=;
 b=cDBgMdO9QmsfSnuKHHa+UNdIMxjAssNSp2LCkD11nmo6Coi+U8M49nOIDofJm7M3It
 srmuyruBK7c/S2WsOjPPXBKkC3kRuyjWXm34IbBa4RLIIb15sTwQy//TjQ+DoSzMvP+c
 YEzsKQWWum7Sp8zBPLZFP5gdH7zPpEcnqq5Qprp5K6WcI/HQ/cwtCgVnvpuYYb5gkpOj
 ip/TWzV4Rc3W1Z8hZ1D2oP41NrVI4rFSn9uJWUuxz/MUR1ShPEigoCJhPKuJz4z2ELU6
 ca333xa3frhBEGxsc0IdvOOKV9ltndLI5M/AL29JigYsXe0+3cdOpGu/vPwUKpNnpoqV
 IgnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742900086; x=1743504886;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=KZ5HbU1r9YCweDbY4zo8E1hR05aW59Da7DMIAWZBBgg=;
 b=OHmo46eSTHAql2buGDqBKpYY4//tbn7edRaIxLFQQOXn58YdZel0hmLDn7nLSO2iw/
 qgDp/it1Z///Sal8Apo/6nVrHMsCU99mdnm7JrfdWYJwUNzKc3YM5vawIIUvb9LA9uoW
 cY1u7fLD30341dBrbbP61oq3OfrIFRhRR6wuNwGKQxZLjpBEc6uzAvXtshd12uEzlhB0
 HOpYHDOSSLTYLPbbOumj8d8pnPvm8cjA+vyLVARGt2fbzDKOn/wmr4Dn3njnx8icEscR
 ql8LrCzn/J8YOjyZnW4Ep7KE8FjQFV4z/O/0LHL0yv344ARqc3uyegAnLP7ED5u2kHWR
 XBlA==
X-Forwarded-Encrypted: i=1;
 AJvYcCUen68xzUg9hgKc9NM0KeQJArucIVKDvrdExFxrmYKpxoL/2LfU4sUBKF3osHMt65x20yQRRQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YzJzGlOiuxA3FRmX8+4ezpjc9ezoFbot874bpoPpj/rFYx7zYga
 WpxyQbK8JcIYqTVZhiQCyw149sT9MbJsqPPed5HMKwiVsktW/oCPzZkQpi5MUWVPBWOgSk7VcTJ
 0m9H8xzDPmOdMp+rkR7zWetAVGrs=
X-Gm-Gg: ASbGncubQTG6ju7hexSutFGQhyFmQj1fuszURMvsl/zi7LGDkM4TBl6pconSGguap/r
 r+TMg0uzybGz8vPJaRH4IFKIYNr6M7ihOn5V8pNcyjpRJ9qRNcNK1cNjDb7D3MW4ItWHZogx62u
 wTalSqNMV9lchju5wGnwj17FQQIg==
X-Google-Smtp-Source: AGHT+IFqOlJA9vmTmLFdUQsQNBBl3B3V0Ww38OBu4qagNlO1YoMOVyebQ+ww+uqsygTWSzdM/1xTv/MZCYLbvH2RqOg=
X-Received: by 2002:a05:6122:2491:b0:518:a0ac:1f42 with SMTP id
 71dfb90a1353d-525a82e60famr9354579e0c.1.1742900086213; Tue, 25 Mar 2025
 03:54:46 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <99a063ba-59b2-4875-a05e-3d0360f99a74@HIDDEN>
In-Reply-To: <99a063ba-59b2-4875-a05e-3d0360f99a74@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Tue, 25 Mar 2025 06:54:34 -0400
X-Gm-Features: AQ5f1Jqn5t812GtlVeUAzfYE-5jYMLFQ262w9oLFRhYGTw7veomvHMjTd843Wv4
Message-ID: <CAN+1HboRb=eCVVKKGmW9uhpko=uS9hy4zfuTct6w3W-oZ4hCZQ@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Dmitry Gutov <dmitry@HIDDEN>
Content-Type: multipart/alternative; boundary="00000000000084938a0631288c2a"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--00000000000084938a0631288c2a
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Mar 24, 2025 at 10:16=E2=80=AFPM Dmitry Gutov <dmitry@HIDDEN> wr=
ote:

> On 24/03/2025 17:15, Ship Mints wrote:
> > I'm curious to hear more about why people would object to (project-root
> > project-obj) being canonicalized.  I don't think many people ever
> > manually enter project dirs.  The persisted known projects, I'd think,
> > would also benefit from no duplicates.
>
> I wonder if you yourself would prefer for all buffer-file-name values,
> and default-directory values, to be canonicalized as well.
>
> The same reasoning would seem to apply to them too anyway.
>

Ochen funny. I'll submit a separate patch for that one day (sarcasm doesn't
work in email, sorry).

In the meantime, I maintain my view that project.el needs to report uniform
project names and roots for identical projects approached from different
places, even if optional.

I just took a look at projectile.el, which I'd never looked at before
because I prefer using/improving core features.  It has a longer user
history to see what they've experienced (and it looks like some of
project.el's approach is copied almost verbatim e.g., the implementation of
project-name).  projectile seems to both have users that want symlink
chasing and those that don't (looks like ClearCase users--but out of
necessity not desire?).  As those concerns seem to be project dependent, we
could an option that is a list of paths or matchers to include/exclude from
chasing, and also a project root semaphore file or project config as I
suggested in another message in this thread.

I'd enable chasing as my default, opt out in a specific project should I
ever have one that needs it rather than the other way around, and enjoy
project-name and project-root uniformity.

-Stephane

--00000000000084938a0631288c2a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Mon, Mar 24, 2025 at 10:16=E2=80=AFPM Dmitry Gutov &lt;<a href=3D"mailto=
:dmitry@HIDDEN">dmitry@HIDDEN</a>&gt; wrote:</span></div></div><div c=
lass=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote=
" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);=
padding-left:1ex">On 24/03/2025 17:15, Ship Mints wrote:<br>
&gt; I&#39;m curious to hear more about why people would object to (project=
-root <br>
&gt; project-obj) being canonicalized.=C2=A0 I don&#39;t think many people =
ever <br>
&gt; manually enter project dirs.=C2=A0 The persisted known projects, I&#39=
;d think, <br>
&gt; would also benefit from no duplicates.<br>
<br>
I wonder if you yourself would prefer for all buffer-file-name values, <br>
and default-directory values, to be canonicalized as well.<br>
<br>
The same reasoning would seem to apply to them too anyway.<br></blockquote>=
<div><br></div><div class=3D"gmail_default" style=3D"font-family:monospace"=
>Ochen funny. I&#39;ll submit a separate patch for that one day (sarcasm do=
esn&#39;t work in email, sorry).</div><div class=3D"gmail_default" style=3D=
"font-family:monospace"><br></div><div class=3D"gmail_default" style=3D"fon=
t-family:monospace">In the meantime, I maintain my view that project.el nee=
ds to report uniform project names and roots for identical projects approac=
hed from different places, even if optional.</div><div class=3D"gmail_defau=
lt" style=3D"font-family:monospace"><br></div><div class=3D"gmail_default" =
style=3D"font-family:monospace">I just took a look at projectile.el, which =
I&#39;d never looked at before because I prefer using/improving core featur=
es.=C2=A0 It has a longer user history to see what they&#39;ve experienced =
(and it looks like some of project.el&#39;s approach is copied almost verba=
tim e.g., the implementation of project-name).=C2=A0 projectile seems to bo=
th have users that want symlink chasing and those that don&#39;t (looks lik=
e ClearCase users--but out of necessity not desire?).=C2=A0 As those concer=
ns seem to be project dependent, we could an option that is a list of paths=
 or matchers to include/exclude from chasing, and also a project root semap=
hore file or project config as I suggested in another message in this threa=
d.</div><div class=3D"gmail_default" style=3D"font-family:monospace"><br></=
div><div class=3D"gmail_default" style=3D"font-family:monospace">I&#39;d en=
able chasing as my default, opt out in a specific project should I ever hav=
e one that needs it rather than the other way around, and enjoy project-nam=
e and project-root uniformity.</div><div class=3D"gmail_default" style=3D"f=
ont-family:monospace"><br></div><div class=3D"gmail_default" style=3D"font-=
family:monospace">-Stephane</div></div></div>

--00000000000084938a0631288c2a--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 25 Mar 2025 02:16:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 24 22:16:48 2025
Received: from localhost ([127.0.0.1]:34072 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1twtqS-0007TE-91
	for submit <at> debbugs.gnu.org; Mon, 24 Mar 2025 22:16:48 -0400
Received: from fout-b1-smtp.messagingengine.com ([202.12.124.144]:56135)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1twtqN-0007Sm-NA
 for 77122 <at> debbugs.gnu.org; Mon, 24 Mar 2025 22:16:46 -0400
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfout.stl.internal (Postfix) with ESMTP id 0F3F7114010B;
 Mon, 24 Mar 2025 22:16:38 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Mon, 24 Mar 2025 22:16:38 -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=fm3; t=1742868997;
 x=1742955397; bh=Rz1+4Ctsy8zyaAtY74yvnsy1ti3XeqVH761THWhSUJE=; b=
 XmXrrQzylZteQxuqaaCuknapzHQAkgDJD81pvNGiHriAfqCijXqJqHc+nLNAFtMa
 wTrUMEo6Vm49lekxxMTjA4FmSQBTwDtoN9Bj5mRumakN2VZ0OmaIAXNoLSYxTqIc
 MLkfhirnUDjY82cUBz8qSxy/KhUiSNNLB+HCFnM+wdbK9BJg7PT43iSp5fcqsO7P
 WCMHn4IZKUAP75koC9puhJCPdN4LJjJkIrr1nDutvyqFcf+o6TBYp0WL5YnospqU
 UIXZmqIR7eJAySEcv7OeRp+twVFmBwn9+DGS176/LdgTqKZwS2urrdFPFhJr/UW/
 JNDoekEmUg/NRnqTZQ5P5A==
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=fm2; t=1742868997; x=
 1742955397; bh=Rz1+4Ctsy8zyaAtY74yvnsy1ti3XeqVH761THWhSUJE=; b=D
 g3bXRIJjdY0DYUPyoLo4MLhIHn8+FUn326oXqAEsrrhphL0qOYJ7dI+pkX/92GL9
 Qx18Zd+UKanCBzCEIbCZdzxhQcf4Du8Ec+Ww/cFZylddWyut1TpnmKAl/itodxGi
 B7fLt5l8AIAUynzjRoQhyG/oOHFFfrzqyHxTH+i+XjvJn7kxnwdnvInjkOcJWqkU
 CWm0vpW9PADMIfbrh8NPu/ojM0XI7ViFYcidyauOB0SrFl7712fOYYm1CwiU7oLO
 ImG1OHP7fe+cW2GKEjLilp54nBdWST58u1F+N+RJHN/aPd2CxnAwjWn8KGKd4kx9
 4VKUk881vGOQvp5TE+lsw==
X-ME-Sender: <xms:BRLiZz2tA3muJCcZBSov_lYrwe7fTliXMaS4WmjPu37JL1Mx43OY2A>
 <xme:BRLiZyGtZ7Yy6aD1qinMQs65n9OpYwzetxH5cFlwdB1xmtMMTuCbi6cbyuMOPFiGj
 sq559YDph2GgDwdIU4>
X-ME-Received: <xmr:BRLiZz61fP87gL5fcujs7xXpZmGYh8acC51CAcvectDW2p_O6OmCJXOT-S6qMkmUdIQ8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduiedugedvucetufdoteggodetrf
 dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
 pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
 gvnhhtshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddt
 vdejnecuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovh
 druggvvheqnecuggftrfgrthhtvghrnhepgeelfeetkefghfdvhfdtgeevveevteetgeet
 veegtedthefhudekteehffeukeeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg
 hmpehmrghilhhfrhhomhepughmihhtrhihsehguhhtohhvrdguvghvpdhnsggprhgtphht
 thhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehshhhiphhmihhnthhsse
 hgmhgrihhlrdgtohhmpdhrtghpthhtohepvghlihiisehgnhhurdhorhhgpdhrtghpthht
 ohepuggrnhgtohhlsegurghntgholhdrohhrghdprhgtphhtthhopeejjeduvddvseguvg
 gssghughhsrdhgnhhurdhorhhg
X-ME-Proxy: <xmx:BRLiZ41L-vB-RuswekDce-KEcLKqCpQ19ch1E0A6JL6uJ-KMAdfCTg>
 <xmx:BRLiZ2GdsqLTMm9jjqWGiuOlIvKv2O4vV0SYNk2kOi2QWVdB_XR83A>
 <xmx:BRLiZ5_ExHMOiVe3rACVeebgK79tD-V3uMVp-Oz-rZsFSm-e2YHnPw>
 <xmx:BRLiZzkjoKpJaV3YIztk8ukU0PYlrqJpTQ1HpZTmzA5GLTiQsyjHEw>
 <xmx:BRLiZyiAs0f0ahHqLlxPey9gYvkeq0G575tBDReY48r3n_1fBf2Vojmm>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 24 Mar 2025 22:16:35 -0400 (EDT)
Message-ID: <99a063ba-59b2-4875-a05e-3d0360f99a74@HIDDEN>
Date: Tue, 25 Mar 2025 04:16:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Ship Mints <shipmints@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

On 24/03/2025 17:15, Ship Mints wrote:
> I'm curious to hear more about why people would object to (project-root 
> project-obj) being canonicalized.  I don't think many people ever 
> manually enter project dirs.  The persisted known projects, I'd think, 
> would also benefit from no duplicates.

I wonder if you yourself would prefer for all buffer-file-name values, 
and default-directory values, to be canonicalized as well.

The same reasoning would seem to apply to them too anyway.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 24 Mar 2025 20:26:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 24 16:26:07 2025
Received: from localhost ([127.0.0.1]:59208 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1twoN5-0005bn-4C
	for submit <at> debbugs.gnu.org; Mon, 24 Mar 2025 16:26:07 -0400
Received: from mail-ua1-x92c.google.com ([2607:f8b0:4864:20::92c]:52437)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1twoMz-0005a7-Q6
 for 77122 <at> debbugs.gnu.org; Mon, 24 Mar 2025 16:26:05 -0400
Received: by mail-ua1-x92c.google.com with SMTP id
 a1e0cc1a2514c-86d69774081so2045484241.0
 for <77122 <at> debbugs.gnu.org>; Mon, 24 Mar 2025 13:26:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742847956; x=1743452756; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=TlsxcB21XuNU5wb/dJobe9Tm3ySmjgCI3Td6laoyeRg=;
 b=duxS5Uyyb3Cy9qIjJrsJ8Vxq3BOp1dsbGs2htJ0vol+8sSlqaGITI3CTU5d40mdVOt
 m+DHRGsu+rJF3zUYSiGzfDluelU7C4yoIR0ytAXazZm9gKnIl0hMTr0/OQodKH7CxuGK
 0foTxaOoqQTRkidb0HrTADQZF1VL472uIdUQZpMOD5iJiX9YWpXKW9GZrrogb7OU/5oJ
 8/bcrQZqTzj5MD4sGLO10cMftpiEXJ2CZ2SGjQYbWyL6KL2nOuT6pzqbWNT7QmUvWE0M
 fDXXsMAbv0yNsDX+5XhZkv8kt62UbSSqNShPBNCpkjeUYui8qKcz7tvHh6dEFFUHXwP8
 fS/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742847956; x=1743452756;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=TlsxcB21XuNU5wb/dJobe9Tm3ySmjgCI3Td6laoyeRg=;
 b=KJ5zQf195bqmdu8LgEnVfPYXC0QA5RrELyQwUCVq8TTEbgh6rX+iH/mWZeSKXjbaQG
 zpTvArwYZ2zfVljQZHx1ffcT29bcCJipNkJx7EDMVKSRhK6vqkUlc4BmJqPoc1W6lPL7
 MJ58nbJAYEj1Ak/R/2xwBKTsp3iTYy50F9DRMbD+NNYJaIFllCTFFEu38Zg4vTK0lswu
 spqWNWL2izojfMVPeMS9Op4FDgQABImcfTc6YzFcbSub9U0ACa6t01lmMmSN4xsz8+ed
 OqTgvTbUlAjyqitlCvs7eCSqb1tikqsA86YLa8bEComsuH1TgP0fHWf9nsTxcnyDqlS6
 Bu7g==
X-Forwarded-Encrypted: i=1;
 AJvYcCXlfU3hYpyfryUvc8J2yaRVLA0eQITlhTgKPpch1VdBBXFEBUAb5r0qeU5ckCWESVdyTn97IQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yyqabsq2tGDSzldACEdzEr8LiMRnxJT1BWkgMjYptEU7vVIkoAD
 wFyw+/B2DtDm+NG05qLnJuSdnuP31sOv1Ohzrl5yqIDoRu1jfKJX/GfS/YQ14RpZH22SaoVgSo+
 5mP1RZ8uCMY8qPYOMXjZaQLy3ezg=
X-Gm-Gg: ASbGnctkxIa4cSqzBf5C3+wIA0Y5n2fHzcwD0xFh+M4Q+Tq2OXHIDfkkF0giOPyRin9
 n9duo0k6ow/EpM5kV0+7b4F0Gj0Nr2gWzGkBNS6sGXmKJsWeoXMJSNEqKVA1Y4jiJvOZKExKcwx
 l10oxYpZqdgHYjUOEtZC9X11+Z/Q==
X-Google-Smtp-Source: AGHT+IEsEdkmDdQmGKaKXmEkiIdry3v3rRrjpYBGBCnXVg8gYAhVFjETd3cMvtQY7xrl6WFm1TLbhXAZkqxshFU9/CE=
X-Received: by 2002:a05:6102:304e:b0:4bb:d7f0:6e70 with SMTP id
 ada2fe7eead31-4c50d481269mr9572889137.5.1742847955794; Mon, 24 Mar 2025
 13:25:55 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <86y0wue188.fsf@HIDDEN>
 <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
 <86sen2dxyp.fsf@HIDDEN>
 <CAN+1Hbr1Y4jfGZnKzqp3d9C1orPJBHhGC8OGhvcqdovoPOnr4g@HIDDEN>
 <86r02mdwjx.fsf@HIDDEN>
 <CAN+1HboXWN-1wRghOj7oFj99DS1LQuMfLJF=oS8K9QyBcNDgEA@HIDDEN>
In-Reply-To: <CAN+1HboXWN-1wRghOj7oFj99DS1LQuMfLJF=oS8K9QyBcNDgEA@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Mon, 24 Mar 2025 16:25:44 -0400
X-Gm-Features: AQ5f1JpzfCf5Ho-bUaJqdlnJc2PZRxbOG61LLIk2v6Mfu1xiTH1Si4U_GPvsgx4
Message-ID: <CAN+1Hbpw0PfVEJCEO2VVOUfO+L-U3p_y2QAh+Wnv2MNwctDL9A@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000004d834e06311c69bd"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0000000000004d834e06311c69bd
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Mar 24, 2025 at 4:15=E2=80=AFPM Ship Mints <shipmints@HIDDEN> wr=
ote:

> On Mon, Mar 24, 2025 at 4:05=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> wrot=
e:
>
>> > From: Ship Mints <shipmints@HIDDEN>
>> > Date: Mon, 24 Mar 2025 15:39:30 -0400
>> > Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
>> >
>> >
>> > On Mon, Mar 24, 2025 at 3:34=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> w=
rote:
>> >
>> >  > From: Ship Mints <shipmints@HIDDEN>
>> >  > Date: Mon, 24 Mar 2025 15:29:26 -0400
>> >  > Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
>> >  >
>> >  >  > If you see the place in project.el where file-equal-p helps, I'l=
l
>> happily hack on it.
>> >  >
>> >  >  I'm sorry, I cannot afford looking through the project.el code to
>> find
>> >  >  this.  But if the problem is that directories or files don't compa=
re
>> >  >  equal, the file-equal-p is the way to go, so I don't understand wh=
y
>> >  >  the places where we do the comparison should be hard to find for
>> >  >  someone who knows their way in project.el's code and/or has enough
>> >  >  time to dig.
>> >  >
>> >  > You don't have to look.  The issue is that no directories are
>> explicitly compared.  You just have to
>> >  humor
>> >  > that it's a bit evil that a singular project approached from
>> different places produces two different
>> >  project
>> >  > objects.
>> >
>> >  I'm confused: how does project.el know it's the same or a different
>> >  project, without comparing?
>> >
>> > It looks for root markers in/below the specified directory such as .gi=
t
>> for project-vc.  Once found, it records a
>> > project object in a cache based on the dir it originally searched.  If
>> approached from another directory, it
>> > repeats the process naively.
>>
>> In this description, the directory appears twice.  Assuming that the
>> project object either records the directory or the cache uses the
>> directory as the key, using file-equal-p should solve the problem, AFAIU=
.
>>
>> > That's what using the canonical name solved for--that all searches use
>> the
>> > same key.
>>
>> You can use the same key when searching without canonicalizing, can't yo=
u?
>>
>> > The resulting "issue" would be that calling (project-root
>> project-object) might return a directory
>> > different than default-directory for a particular buffer.  It wouldn't
>> be a misrepresentation.
>>
>> As this discussion shows, it might well be a "misrepresentation" in
>> some cases.
>>
>
> Maybe unexpected but not a misrepresentation.
>
> In any case, the project object returned must be equivalent for both
> directories passed in and that's not how project.el is structured.  Using
> file-equal-p or any other method to find an "equivalent" project object b=
ut
> substitute the "expected" directory results in two objects that don't
> compare as equal and that's a misrepresentation IMO.
>

To concretely demonstrate the differences, the function project-name will
return different results for each project object based on buffers loaded
from different paths, despite the projects being equivalent.

project-name is defined as:

(file-name-nondirectory (directory-file-name (project-root project)))

If the root directory is determined to be different, the objects return
different names (and different roots).

--0000000000004d834e06311c69bd
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Mon, Mar 24, 2025 at 4:15=E2=80=AFPM Ship Mints &lt;<a href=3D"mailto:sh=
ipmints@HIDDEN">shipmints@HIDDEN</a>&gt; wrote:</span></div></div><di=
v class=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,20=
4);padding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><div style=3D"font-f=
amily:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">On =
Mon, Mar 24, 2025 at 4:05=E2=80=AFPM Eli Zaretskii &lt;<a href=3D"mailto:el=
iz@HIDDEN" target=3D"_blank">eliz@HIDDEN</a>&gt; wrote:</span></div></div=
><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"marg=
in:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1e=
x">&gt; From: Ship Mints &lt;<a href=3D"mailto:shipmints@HIDDEN" target=
=3D"_blank">shipmints@HIDDEN</a>&gt;<br>
&gt; Date: Mon, 24 Mar 2025 15:39:30 -0400<br>
&gt; Cc: <a href=3D"mailto:dancol@HIDDEN" target=3D"_blank">dancol@danc=
ol.org</a>, <a href=3D"mailto:77122 <at> debbugs.gnu.org" target=3D"_blank">7712=
2 <at> debbugs.gnu.org</a>, <a href=3D"mailto:dmitry@HIDDEN" target=3D"_blank=
">dmitry@HIDDEN</a><br>
&gt; <br>
&gt; <br>
&gt; On Mon, Mar 24, 2025 at 3:34=E2=80=AFPM Eli Zaretskii &lt;<a href=3D"m=
ailto:eliz@HIDDEN" target=3D"_blank">eliz@HIDDEN</a>&gt; wrote:<br>
&gt; <br>
&gt;=C2=A0 &gt; From: Ship Mints &lt;<a href=3D"mailto:shipmints@HIDDEN"=
 target=3D"_blank">shipmints@HIDDEN</a>&gt;<br>
&gt;=C2=A0 &gt; Date: Mon, 24 Mar 2025 15:29:26 -0400<br>
&gt;=C2=A0 &gt; Cc: <a href=3D"mailto:dancol@HIDDEN" target=3D"_blank">=
dancol@HIDDEN</a>, <a href=3D"mailto:77122 <at> debbugs.gnu.org" target=3D"_=
blank">77122 <at> debbugs.gnu.org</a>, <a href=3D"mailto:dmitry@HIDDEN" targe=
t=3D"_blank">dmitry@HIDDEN</a><br>
&gt;=C2=A0 &gt; <br>
&gt;=C2=A0 &gt;=C2=A0 &gt; If you see the place in project.el where file-eq=
ual-p helps, I&#39;ll happily hack on it. <br>
&gt;=C2=A0 &gt; <br>
&gt;=C2=A0 &gt;=C2=A0 I&#39;m sorry, I cannot afford looking through the pr=
oject.el code to find<br>
&gt;=C2=A0 &gt;=C2=A0 this.=C2=A0 But if the problem is that directories or=
 files don&#39;t compare<br>
&gt;=C2=A0 &gt;=C2=A0 equal, the file-equal-p is the way to go, so I don&#3=
9;t understand why<br>
&gt;=C2=A0 &gt;=C2=A0 the places where we do the comparison should be hard =
to find for<br>
&gt;=C2=A0 &gt;=C2=A0 someone who knows their way in project.el&#39;s code =
and/or has enough<br>
&gt;=C2=A0 &gt;=C2=A0 time to dig.<br>
&gt;=C2=A0 &gt; <br>
&gt;=C2=A0 &gt; You don&#39;t have to look.=C2=A0 The issue is that no dire=
ctories are explicitly compared.=C2=A0 You just have to<br>
&gt;=C2=A0 humor<br>
&gt;=C2=A0 &gt; that it&#39;s a bit evil that a singular project approached=
 from different places produces two different<br>
&gt;=C2=A0 project<br>
&gt;=C2=A0 &gt; objects.<br>
&gt; <br>
&gt;=C2=A0 I&#39;m confused: how does project.el know it&#39;s the same or =
a different<br>
&gt;=C2=A0 project, without comparing?<br>
&gt; <br>
&gt; It looks for root markers in/below the specified directory such as .gi=
t for project-vc.=C2=A0 Once found, it records a<br>
&gt; project object in a cache based on the dir it originally searched.=C2=
=A0 If approached from another directory, it<br>
&gt; repeats the process naively.<br>
<br>
In this description, the directory appears twice.=C2=A0 Assuming that the<b=
r>
project object either records the directory or the cache uses the<br>
directory as the key, using file-equal-p should solve the problem, AFAIU.<b=
r>
<br>
&gt; That&#39;s what using the canonical name solved for--that all searches=
 use the<br>
&gt; same key.<br>
<br>
You can use the same key when searching without canonicalizing, can&#39;t y=
ou?<br>
<br>
&gt; The resulting &quot;issue&quot; would be that calling (project-root pr=
oject-object) might return a directory<br>
&gt; different than default-directory for a particular buffer.=C2=A0 It wou=
ldn&#39;t be a misrepresentation.<br>
<br>
As this discussion shows, it might well be a &quot;misrepresentation&quot; =
in<br>
some cases.<br></blockquote><div><br></div><div style=3D"font-family:monosp=
ace">Maybe unexpected but not a misrepresentation.</div><div style=3D"font-=
family:monospace"><br></div><div style=3D"font-family:monospace">In any cas=
e, the project object returned must be equivalent for both directories pass=
ed in and that&#39;s not how project.el is structured.=C2=A0 Using file-equ=
al-p or any other method to find an &quot;equivalent&quot; project object b=
ut substitute the &quot;expected&quot; directory results in two objects tha=
t don&#39;t compare as equal and that&#39;s a misrepresentation IMO.</div><=
/div></div></blockquote><div><br></div><div class=3D"gmail_default" style=
=3D"font-family:monospace">To concretely demonstrate the differences, the f=
unction project-name will return different results for each project object =
based on buffers loaded from different paths, despite the projects being eq=
uivalent.</div><div class=3D"gmail_default" style=3D"font-family:monospace"=
><br></div><div class=3D"gmail_default" style=3D"font-family:monospace">pro=
ject-name is defined as:</div><div class=3D"gmail_default" style=3D"font-fa=
mily:monospace"><br></div><div class=3D"gmail_default" style=3D"font-family=
:monospace">(file-name-nondirectory (directory-file-name (project-root proj=
ect)))</div><div class=3D"gmail_default" style=3D"font-family:monospace"><b=
r></div><div class=3D"gmail_default" style=3D"font-family:monospace">If the=
 root directory is determined to be different, the objects return different=
 names (and different roots).</div></div></div>

--0000000000004d834e06311c69bd--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 24 Mar 2025 20:15:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 24 16:15:34 2025
Received: from localhost ([127.0.0.1]:59124 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1twoCr-00047V-Py
	for submit <at> debbugs.gnu.org; Mon, 24 Mar 2025 16:15:34 -0400
Received: from mail-vk1-xa2f.google.com ([2607:f8b0:4864:20::a2f]:57558)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1twoCp-00046P-8U
 for 77122 <at> debbugs.gnu.org; Mon, 24 Mar 2025 16:15:32 -0400
Received: by mail-vk1-xa2f.google.com with SMTP id
 71dfb90a1353d-524125f6cadso4894998e0c.2
 for <77122 <at> debbugs.gnu.org>; Mon, 24 Mar 2025 13:15:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742847325; x=1743452125; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=fXoca/OJu/MmGWD+FsYvRO5ycgDYwJww8cMcjFISLQA=;
 b=Un3xNOR94lsPKO4niFqr/HGKFnBJG90Zj3qEAp21o7ztRcxP1EDsnpPHeL6oOd+JJr
 MxaG1YXBZ/MrIS+U+e4va3vLJ8jSDbnU0Gvny5hu/d5n8iCR0BHt5/4D3ltKioV6FuSx
 zRaWmwWwNTPiCFXS81CyBNrpwgsmvjeegFdzQaBm3ZBEUkqz62sUfRHU4kcqIyKaUHUO
 kTatpHz8C2KJsHubU6jeBKwMjhKl76HVWV5d/tc05bjI6aWjo5xi14tj91gApMpvultw
 ad5oHgpptH7RWHxKEkrBs/kvrLzXZexjV6rIqj4CT2+A94/yP8CygLTOBV0B0oqNDID+
 w7WA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742847325; x=1743452125;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=fXoca/OJu/MmGWD+FsYvRO5ycgDYwJww8cMcjFISLQA=;
 b=bFWjMZebpXkMH0bHj4jKgTnoxcbRlVQ25KDodBzbzcFeDoYT9O+ZEV5A/WK+UeZu/L
 gCNaq2UEKbjngszsegkhBOE6QYz4bq7vUbmLUnxqxm5NiRZGCT8rpYA4kxIOSP8XovOC
 fTjmANPiCjEVQyZIjt4yF74Nhnh0sm6iCpLWkdwDrhrkbc69SzG7QL+ATRhcfD4LZN8M
 MMMuWjpo7WF/YJ0dOPSyB2BKD/0hqbzTvcio+7+gMe4/mN9ZEuwHh4K4yBW463nARaKs
 JQwiDMKy5VYM+WTfgCPesK52Zw00BIJSyeNMaVfZQFNdb4Watpxp3wOkH5VDP8Mx+EAv
 n3UA==
X-Forwarded-Encrypted: i=1;
 AJvYcCWQX0Bmg5QTpfBpH54MB0Y1Kb7wbz/xV/TWILQZWhBl917PnIIeZjACiX4IxHluBxzgBXC6ow==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YwtBxDKiDAYtQeIRkxSL9AC+uiAokTrda+uRKR5Rcl/0eZUcn48
 4LVOKKhi6pTHmLEtYwpGtlYpMZjlhUknP5QdEacHwot/EaOS1CI6cJy45oETgpWmGBcX2flnumk
 +SvCIvUpo+GDLBWOR1KvQUCaB3yU=
X-Gm-Gg: ASbGnctPfYE/Q1zY4v+JekmHhyno0Iq3aXo+rVqFJ+ln8c9m5TY57qiwyYzb+e+fCZU
 qyCt5nUPiCCqt1eibf19JvxwA+XVp/O8lNtUTNfc23XbUhoxPx55iwkY7UImCI6Q4qxWcSykavQ
 fzn/NQk3yNUucCUWgmDur25CsPsA==
X-Google-Smtp-Source: AGHT+IG5JJvNtdqiL5GfQgqskDyZJfyqlCElpyVs8YQkZgEHeEj8Jeqg/JsUbbb7hn8ChVHk4GsMEHqf31C96OMNF7Y=
X-Received: by 2002:a05:6102:304e:b0:4bb:eb4a:f9f0 with SMTP id
 ada2fe7eead31-4c50d623cecmr10400300137.24.1742847325342; Mon, 24 Mar 2025
 13:15:25 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <86y0wue188.fsf@HIDDEN>
 <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
 <86sen2dxyp.fsf@HIDDEN>
 <CAN+1Hbr1Y4jfGZnKzqp3d9C1orPJBHhGC8OGhvcqdovoPOnr4g@HIDDEN>
 <86r02mdwjx.fsf@HIDDEN>
In-Reply-To: <86r02mdwjx.fsf@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Mon, 24 Mar 2025 16:15:14 -0400
X-Gm-Features: AQ5f1JoPN3LfUY2j0fZUDvvNDdz-8nW9nQ80-3ULGorEebDgKhM90kYpgMGZExQ
Message-ID: <CAN+1HboXWN-1wRghOj7oFj99DS1LQuMfLJF=oS8K9QyBcNDgEA@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000b9926106311c4362"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000b9926106311c4362
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Mar 24, 2025 at 4:05=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> wrote:

> > From: Ship Mints <shipmints@HIDDEN>
> > Date: Mon, 24 Mar 2025 15:39:30 -0400
> > Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
> >
> >
> > On Mon, Mar 24, 2025 at 3:34=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> wr=
ote:
> >
> >  > From: Ship Mints <shipmints@HIDDEN>
> >  > Date: Mon, 24 Mar 2025 15:29:26 -0400
> >  > Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
> >  >
> >  >  > If you see the place in project.el where file-equal-p helps, I'll
> happily hack on it.
> >  >
> >  >  I'm sorry, I cannot afford looking through the project.el code to
> find
> >  >  this.  But if the problem is that directories or files don't compar=
e
> >  >  equal, the file-equal-p is the way to go, so I don't understand why
> >  >  the places where we do the comparison should be hard to find for
> >  >  someone who knows their way in project.el's code and/or has enough
> >  >  time to dig.
> >  >
> >  > You don't have to look.  The issue is that no directories are
> explicitly compared.  You just have to
> >  humor
> >  > that it's a bit evil that a singular project approached from
> different places produces two different
> >  project
> >  > objects.
> >
> >  I'm confused: how does project.el know it's the same or a different
> >  project, without comparing?
> >
> > It looks for root markers in/below the specified directory such as .git
> for project-vc.  Once found, it records a
> > project object in a cache based on the dir it originally searched.  If
> approached from another directory, it
> > repeats the process naively.
>
> In this description, the directory appears twice.  Assuming that the
> project object either records the directory or the cache uses the
> directory as the key, using file-equal-p should solve the problem, AFAIU.
>
> > That's what using the canonical name solved for--that all searches use
> the
> > same key.
>
> You can use the same key when searching without canonicalizing, can't you=
?
>
> > The resulting "issue" would be that calling (project-root
> project-object) might return a directory
> > different than default-directory for a particular buffer.  It wouldn't
> be a misrepresentation.
>
> As this discussion shows, it might well be a "misrepresentation" in
> some cases.
>

Maybe unexpected but not a misrepresentation.

In any case, the project object returned must be equivalent for both
directories passed in and that's not how project.el is structured.  Using
file-equal-p or any other method to find an "equivalent" project object but
substitute the "expected" directory results in two objects that don't
compare as equal and that's a misrepresentation IMO.

--000000000000b9926106311c4362
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Mon, Mar 24, 2025 at 4:05=E2=80=AFPM Eli Zaretskii &lt;<a href=3D"mailto=
:eliz@HIDDEN">eliz@HIDDEN</a>&gt; wrote:</span></div></div><div class=3D"=
gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">&gt; From: Ship Mints &lt;<a href=3D"mailto:shipmints@HIDDEN"=
 target=3D"_blank">shipmints@HIDDEN</a>&gt;<br>
&gt; Date: Mon, 24 Mar 2025 15:39:30 -0400<br>
&gt; Cc: <a href=3D"mailto:dancol@HIDDEN" target=3D"_blank">dancol@danc=
ol.org</a>, <a href=3D"mailto:77122 <at> debbugs.gnu.org" target=3D"_blank">7712=
2 <at> debbugs.gnu.org</a>, <a href=3D"mailto:dmitry@HIDDEN" target=3D"_blank=
">dmitry@HIDDEN</a><br>
&gt; <br>
&gt; <br>
&gt; On Mon, Mar 24, 2025 at 3:34=E2=80=AFPM Eli Zaretskii &lt;<a href=3D"m=
ailto:eliz@HIDDEN" target=3D"_blank">eliz@HIDDEN</a>&gt; wrote:<br>
&gt; <br>
&gt;=C2=A0 &gt; From: Ship Mints &lt;<a href=3D"mailto:shipmints@HIDDEN"=
 target=3D"_blank">shipmints@HIDDEN</a>&gt;<br>
&gt;=C2=A0 &gt; Date: Mon, 24 Mar 2025 15:29:26 -0400<br>
&gt;=C2=A0 &gt; Cc: <a href=3D"mailto:dancol@HIDDEN" target=3D"_blank">=
dancol@HIDDEN</a>, <a href=3D"mailto:77122 <at> debbugs.gnu.org" target=3D"_=
blank">77122 <at> debbugs.gnu.org</a>, <a href=3D"mailto:dmitry@HIDDEN" targe=
t=3D"_blank">dmitry@HIDDEN</a><br>
&gt;=C2=A0 &gt; <br>
&gt;=C2=A0 &gt;=C2=A0 &gt; If you see the place in project.el where file-eq=
ual-p helps, I&#39;ll happily hack on it. <br>
&gt;=C2=A0 &gt; <br>
&gt;=C2=A0 &gt;=C2=A0 I&#39;m sorry, I cannot afford looking through the pr=
oject.el code to find<br>
&gt;=C2=A0 &gt;=C2=A0 this.=C2=A0 But if the problem is that directories or=
 files don&#39;t compare<br>
&gt;=C2=A0 &gt;=C2=A0 equal, the file-equal-p is the way to go, so I don&#3=
9;t understand why<br>
&gt;=C2=A0 &gt;=C2=A0 the places where we do the comparison should be hard =
to find for<br>
&gt;=C2=A0 &gt;=C2=A0 someone who knows their way in project.el&#39;s code =
and/or has enough<br>
&gt;=C2=A0 &gt;=C2=A0 time to dig.<br>
&gt;=C2=A0 &gt; <br>
&gt;=C2=A0 &gt; You don&#39;t have to look.=C2=A0 The issue is that no dire=
ctories are explicitly compared.=C2=A0 You just have to<br>
&gt;=C2=A0 humor<br>
&gt;=C2=A0 &gt; that it&#39;s a bit evil that a singular project approached=
 from different places produces two different<br>
&gt;=C2=A0 project<br>
&gt;=C2=A0 &gt; objects.<br>
&gt; <br>
&gt;=C2=A0 I&#39;m confused: how does project.el know it&#39;s the same or =
a different<br>
&gt;=C2=A0 project, without comparing?<br>
&gt; <br>
&gt; It looks for root markers in/below the specified directory such as .gi=
t for project-vc.=C2=A0 Once found, it records a<br>
&gt; project object in a cache based on the dir it originally searched.=C2=
=A0 If approached from another directory, it<br>
&gt; repeats the process naively.<br>
<br>
In this description, the directory appears twice.=C2=A0 Assuming that the<b=
r>
project object either records the directory or the cache uses the<br>
directory as the key, using file-equal-p should solve the problem, AFAIU.<b=
r>
<br>
&gt; That&#39;s what using the canonical name solved for--that all searches=
 use the<br>
&gt; same key.<br>
<br>
You can use the same key when searching without canonicalizing, can&#39;t y=
ou?<br>
<br>
&gt; The resulting &quot;issue&quot; would be that calling (project-root pr=
oject-object) might return a directory<br>
&gt; different than default-directory for a particular buffer.=C2=A0 It wou=
ldn&#39;t be a misrepresentation.<br>
<br>
As this discussion shows, it might well be a &quot;misrepresentation&quot; =
in<br>
some cases.<br></blockquote><div><br></div><div class=3D"gmail_default" sty=
le=3D"font-family:monospace">Maybe unexpected but not a misrepresentation.<=
/div><div class=3D"gmail_default" style=3D"font-family:monospace"><br></div=
><div class=3D"gmail_default" style=3D"font-family:monospace">In any case, =
the project object returned must be equivalent for both directories passed =
in and that&#39;s not how project.el is structured.=C2=A0 Using file-equal-=
p or any other method to find an &quot;equivalent&quot; project object but =
substitute the &quot;expected&quot; directory results in two objects that d=
on&#39;t compare as equal and that&#39;s a misrepresentation IMO.</div></di=
v></div>

--000000000000b9926106311c4362--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 24 Mar 2025 20:05:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 24 16:05:24 2025
Received: from localhost ([127.0.0.1]:59044 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1two30-0002m7-NL
	for submit <at> debbugs.gnu.org; Mon, 24 Mar 2025 16:05:24 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:44568)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1two2v-0002kK-0u
 for 77122 <at> debbugs.gnu.org; Mon, 24 Mar 2025 16:05:20 -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 <eliz@HIDDEN>)
 id 1two2p-0001cm-4f; Mon, 24 Mar 2025 16:05:11 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=bkOj8c6wpjsfGycTKyYuDl+K5IG2aAovXKozQmJ+fBU=; b=PkWGPuIieCoIsMio33ZK
 8dSzHQ5LXrMeC4wZuVfW0msgKJkJ0g4MbZ8IR+7kye2+HMT28g4dGL+xx8Z6EBR8j9CucfICxSIzt
 H3hnGDIyS/6sb6gaqLCq9HVbuFoKD57Kw4KlBHS3H6jPvKbneP0wMUC0aQcgJ4+PN7RJYjZTiHhgN
 cW4yIoj5+Oy81hd0cJzq0F7L07lL4zpnRBnAYvp2pq2UAqS73qfvtO0vtRzziRlrzH12KWCTDEqds
 I/11Y2msC71kcBv9WDvCujDH0WAQOULfjWEgH+nGImAFdlyuvpn3BCXE75TWWQtZTnLlkwdPBfdKl
 6td9WX5AiT9qCw==;
Date: Mon, 24 Mar 2025 22:05:06 +0200
Message-Id: <86r02mdwjx.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Ship Mints <shipmints@HIDDEN>
In-Reply-To: <CAN+1Hbr1Y4jfGZnKzqp3d9C1orPJBHhGC8OGhvcqdovoPOnr4g@HIDDEN>
 (message from Ship Mints on Mon, 24 Mar 2025 15:39:30 -0400)
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <86y0wue188.fsf@HIDDEN>
 <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
 <86sen2dxyp.fsf@HIDDEN>
 <CAN+1Hbr1Y4jfGZnKzqp3d9C1orPJBHhGC8OGhvcqdovoPOnr4g@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Ship Mints <shipmints@HIDDEN>
> Date: Mon, 24 Mar 2025 15:39:30 -0400
> Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
> 
> 
> On Mon, Mar 24, 2025 at 3:34 PM Eli Zaretskii <eliz@HIDDEN> wrote:
> 
>  > From: Ship Mints <shipmints@HIDDEN>
>  > Date: Mon, 24 Mar 2025 15:29:26 -0400
>  > Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
>  > 
>  >  > If you see the place in project.el where file-equal-p helps, I'll happily hack on it. 
>  > 
>  >  I'm sorry, I cannot afford looking through the project.el code to find
>  >  this.  But if the problem is that directories or files don't compare
>  >  equal, the file-equal-p is the way to go, so I don't understand why
>  >  the places where we do the comparison should be hard to find for
>  >  someone who knows their way in project.el's code and/or has enough
>  >  time to dig.
>  > 
>  > You don't have to look.  The issue is that no directories are explicitly compared.  You just have to
>  humor
>  > that it's a bit evil that a singular project approached from different places produces two different
>  project
>  > objects.
> 
>  I'm confused: how does project.el know it's the same or a different
>  project, without comparing?
> 
> It looks for root markers in/below the specified directory such as .git for project-vc.  Once found, it records a
> project object in a cache based on the dir it originally searched.  If approached from another directory, it
> repeats the process naively.

In this description, the directory appears twice.  Assuming that the
project object either records the directory or the cache uses the
directory as the key, using file-equal-p should solve the problem, AFAIU.

> That's what using the canonical name solved for--that all searches use the
> same key.

You can use the same key when searching without canonicalizing, can't you?

> The resulting "issue" would be that calling (project-root project-object) might return a directory
> different than default-directory for a particular buffer.  It wouldn't be a misrepresentation.

As this discussion shows, it might well be a "misrepresentation" in
some cases.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 24 Mar 2025 19:39:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 24 15:39:51 2025
Received: from localhost ([127.0.0.1]:58822 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1twneI-0007Vk-Uf
	for submit <at> debbugs.gnu.org; Mon, 24 Mar 2025 15:39:51 -0400
Received: from mail-ua1-x92b.google.com ([2607:f8b0:4864:20::92b]:56626)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1twneF-0007Ur-HK
 for 77122 <at> debbugs.gnu.org; Mon, 24 Mar 2025 15:39:48 -0400
Received: by mail-ua1-x92b.google.com with SMTP id
 a1e0cc1a2514c-86d3ac0fec0so4348166241.1
 for <77122 <at> debbugs.gnu.org>; Mon, 24 Mar 2025 12:39:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742845182; x=1743449982; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=DFurqAP3k47br0DGFzIQyogs6be+wDdE+snp2P3oPTU=;
 b=LQpyzH6HrEZKWmE/1n2j5KbHi/a1WUPvZz3XrnspuQA/flDACrk15F2rXnc2Xyw77C
 7jB6efxRe8QNR2odlqmY3nK8twMiQes3KZh4tS4PrRmko61HGKO8HCcHTf2RF5uNmvJY
 r/6HvYRNOhy4XRVj4sZMQaQvGky5mppehqh0bvhDgnuIlEZlIN+V7Bj2qaR7d7moIJrh
 jL252bfu/v/s8q7i4cJCY2hZddPMw3C0ONJ/Hh2jd3bq+5xcJd9lcT3i/GoB6odFfgo3
 GewVkyONIWqycmnrT+t6Z7vHDnU8hxANSaRzI4fenPa1dMvhIO8WxUJSXDbsT4N8FBmf
 10xQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742845182; x=1743449982;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=DFurqAP3k47br0DGFzIQyogs6be+wDdE+snp2P3oPTU=;
 b=JkHsU5h/D3ZW0Lv2sSIOkMGbw8EkudqlSxRtru5oLkqYL8JsAmdjJA20p/D0MCUihU
 P6eeQEa/SbPhcjPNyhYBm7sjPE/oKiA2ZYnuZ71nz7tdco3N91uMeu4/VKARgkGJ0IUV
 OCvXIhm/7+Yb2G/JdiW7gxnVoNKmPMFHSK8CitIFL0W5KW3wa1Q6bVN8UhOfeK4D52kX
 H9740sfaI1cg5mRtomY3/+BWHlCmyhOjeStIW10E4FcCa9o4sYyYiAUAUa1pQtJNNaKD
 YT5SCbZqLmLuW+bW1IqnVFittP0DOIS6BPzHdQ7cCsIj+/NCcf6SeusWYQMkJZXaZur9
 Q7/g==
X-Forwarded-Encrypted: i=1;
 AJvYcCU8JyyEam9HA7CxwpWQM5IpcKdjbk2YSMlYq18tEjJNO8HvbX1pPhCmOi54mZR12NvNGp38AA==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YylwmSkVx3jwW5IdnkKUYARY70HolHolPtGOSqk2JEqw63p9tNW
 W3s6B8/ymTtkFs/OYS2+ZNbsljHIPkae0BeCpVg7EjJ8ZGJsU6IKTqVhlBJnJT2pobIRJ6jLalY
 225BSj0kmyqh9T2kxBa2Mgr3ZyQ0=
X-Gm-Gg: ASbGncuUs2A36BBpuuNKGHLGA+C+hvY/kVk0682XFYztrELRVaABh8xZ7kuvuvT1fyw
 CCyhp9n5yhFYIeS/WpExZYhyWMe0df6Ypahck+sdA2Y9rQSFt065yOAvHsd3V/Rq02PpqVP2SHm
 kJkF2RiO+tfODVINHva7n+VSx3KTHb5QK9jRfJ
X-Google-Smtp-Source: AGHT+IEe0bm43R9xeJ1J4b1u94XEQfFtOzDD88u+Urq/b3ujqisM6qNs3jvCkpHHoCoJI9RFwXb7U3KJm/8Kio63dn8=
X-Received: by 2002:a05:6102:330a:b0:4bb:d394:46d7 with SMTP id
 ada2fe7eead31-4c50d4afbcfmr9888655137.6.1742845181494; Mon, 24 Mar 2025
 12:39:41 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <86y0wue188.fsf@HIDDEN>
 <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
 <86sen2dxyp.fsf@HIDDEN>
In-Reply-To: <86sen2dxyp.fsf@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Mon, 24 Mar 2025 15:39:30 -0400
X-Gm-Features: AQ5f1JpV94YW-0NwdcXoYO61JJojUk5RGqU7kP3wSM2e3BMCBb9tmvDmB55Cqrc
Message-ID: <CAN+1Hbr1Y4jfGZnKzqp3d9C1orPJBHhGC8OGhvcqdovoPOnr4g@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000f10e4f06311bc3b1"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000f10e4f06311bc3b1
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Mar 24, 2025 at 3:34=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> wrote:

> > From: Ship Mints <shipmints@HIDDEN>
> > Date: Mon, 24 Mar 2025 15:29:26 -0400
> > Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
> >
> >  > If you see the place in project.el where file-equal-p helps, I'll
> happily hack on it.
> >
> >  I'm sorry, I cannot afford looking through the project.el code to find
> >  this.  But if the problem is that directories or files don't compare
> >  equal, the file-equal-p is the way to go, so I don't understand why
> >  the places where we do the comparison should be hard to find for
> >  someone who knows their way in project.el's code and/or has enough
> >  time to dig.
> >
> > You don't have to look.  The issue is that no directories are explicitl=
y
> compared.  You just have to humor
> > that it's a bit evil that a singular project approached from different
> places produces two different project
> > objects.
>
> I'm confused: how does project.el know it's the same or a different
> project, without comparing?
>

It looks for root markers in/below the specified directory such as .git for
project-vc.  Once found, it records a project object in a cache based on
the dir it originally searched.  If approached from another directory, it
repeats the process naively.  That's what using the canonical name solved
for--that all searches use the same key.  The resulting "issue" would be
that calling (project-root project-object) might return a directory
different than default-directory for a particular buffer.  It wouldn't be a
misrepresentation.

--000000000000f10e4f06311bc3b1
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Mon, Mar 24, 2025 at 3:34=E2=80=AFPM Eli Zaretskii &lt;<a href=3D"mailto=
:eliz@HIDDEN">eliz@HIDDEN</a>&gt; wrote:</span></div></div><div class=3D"=
gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">&gt; From: Ship Mints &lt;<a href=3D"mailto:shipmints@HIDDEN"=
 target=3D"_blank">shipmints@HIDDEN</a>&gt;<br>
&gt; Date: Mon, 24 Mar 2025 15:29:26 -0400<br>
&gt; Cc: <a href=3D"mailto:dancol@HIDDEN" target=3D"_blank">dancol@danc=
ol.org</a>, <a href=3D"mailto:77122 <at> debbugs.gnu.org" target=3D"_blank">7712=
2 <at> debbugs.gnu.org</a>, <a href=3D"mailto:dmitry@HIDDEN" target=3D"_blank=
">dmitry@HIDDEN</a><br>
&gt; <br>
&gt;=C2=A0 &gt; If you see the place in project.el where file-equal-p helps=
, I&#39;ll happily hack on it. <br>
&gt; <br>
&gt;=C2=A0 I&#39;m sorry, I cannot afford looking through the project.el co=
de to find<br>
&gt;=C2=A0 this.=C2=A0 But if the problem is that directories or files don&=
#39;t compare<br>
&gt;=C2=A0 equal, the file-equal-p is the way to go, so I don&#39;t underst=
and why<br>
&gt;=C2=A0 the places where we do the comparison should be hard to find for=
<br>
&gt;=C2=A0 someone who knows their way in project.el&#39;s code and/or has =
enough<br>
&gt;=C2=A0 time to dig.<br>
&gt; <br>
&gt; You don&#39;t have to look.=C2=A0 The issue is that no directories are=
 explicitly compared.=C2=A0 You just have to humor<br>
&gt; that it&#39;s a bit evil that a singular project approached from diffe=
rent places produces two different project<br>
&gt; objects.<br>
<br>
I&#39;m confused: how does project.el know it&#39;s the same or a different=
<br>
project, without comparing?<br></blockquote><div><br></div><div class=3D"gm=
ail_default" style=3D"font-family:monospace">It looks for root markers in/b=
elow the specified directory such as .git for project-vc.=C2=A0 Once found,=
 it records a project object in a cache based on the dir it originally sear=
ched.=C2=A0 If approached from another directory, it repeats the process na=
ively.=C2=A0 That&#39;s what using the canonical name solved for--that all =
searches use the same key.=C2=A0 The resulting &quot;issue&quot; would be t=
hat calling (project-root project-object) might return a directory differen=
t than default-directory for a particular buffer.=C2=A0 It wouldn&#39;t be =
a misrepresentation.</div></div></div>

--000000000000f10e4f06311bc3b1--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 24 Mar 2025 19:34:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 24 15:34:48 2025
Received: from localhost ([127.0.0.1]:58784 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1twnZQ-0006ov-F8
	for submit <at> debbugs.gnu.org; Mon, 24 Mar 2025 15:34:48 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:50012)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1twnZO-0006oL-5A
 for 77122 <at> debbugs.gnu.org; Mon, 24 Mar 2025 15:34: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 <eliz@HIDDEN>)
 id 1twnZI-0006BK-LM; Mon, 24 Mar 2025 15:34: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=BfiYK1NrhE3tUnXepfrs9VrnbPmVmBfSjwnorpFF194=; b=IrHPlg0T9oT7
 uy4wO6Jexh+iGWQRe3P0+ROZN+Wg+oQWp9gzzY3hHlG9bYWzdkugeOONxkKE1qz7lKYn0R6xlwaxq
 JKeZ0WNcC0uqJLzXktso9Z+bKsrQTNOI42BEHsW/EQfoK/8FX30nAuE4AMh5ez4t2e+awok8ay5gr
 iWGxoeazHWn2XAfW2j4nQoH63WsU1RUMgZ02ywXecRPRSzQ69QrGx/6tT6MBNhsDc8W1tC6ME4HFB
 6k1xqt+jOailoOcilnE/uxZY+v74KXG67XrsUaaQgV28dJiUqkkFDKz3RPZ6kpt/O+LxjisA4s6iK
 8WXTtbsD8+XXwNZN8cZkow==;
Date: Mon, 24 Mar 2025 21:34:38 +0200
Message-Id: <86sen2dxyp.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Ship Mints <shipmints@HIDDEN>
In-Reply-To: <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
 (message from Ship Mints on Mon, 24 Mar 2025 15:29:26 -0400)
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <86y0wue188.fsf@HIDDEN>
 <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Ship Mints <shipmints@HIDDEN>
> Date: Mon, 24 Mar 2025 15:29:26 -0400
> Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
> 
>  > If you see the place in project.el where file-equal-p helps, I'll happily hack on it. 
> 
>  I'm sorry, I cannot afford looking through the project.el code to find
>  this.  But if the problem is that directories or files don't compare
>  equal, the file-equal-p is the way to go, so I don't understand why
>  the places where we do the comparison should be hard to find for
>  someone who knows their way in project.el's code and/or has enough
>  time to dig.
> 
> You don't have to look.  The issue is that no directories are explicitly compared.  You just have to humor
> that it's a bit evil that a singular project approached from different places produces two different project
> objects.

I'm confused: how does project.el know it's the same or a different
project, without comparing?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 24 Mar 2025 19:29:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 24 15:29:49 2025
Received: from localhost ([127.0.0.1]:58741 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1twnUY-00061D-VW
	for submit <at> debbugs.gnu.org; Mon, 24 Mar 2025 15:29:48 -0400
Received: from mail-ua1-x932.google.com ([2607:f8b0:4864:20::932]:46446)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1twnUV-0005zf-T0
 for 77122 <at> debbugs.gnu.org; Mon, 24 Mar 2025 15:29:45 -0400
Received: by mail-ua1-x932.google.com with SMTP id
 a1e0cc1a2514c-867129fdb0aso4365339241.1
 for <77122 <at> debbugs.gnu.org>; Mon, 24 Mar 2025 12:29:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742844578; x=1743449378; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=gu4a7EnQUNNB1LN/Jsf+J34f9+YQuSI4sgQ/lnkdjsY=;
 b=EadUxw3IGY1K/hyXuNsuBgcuxiwrk6SeqVxU1j0llEvnRV6Vj3puVux0x55oLfBb5l
 3q89TS+xJ5fsu7zqV8hSpeKJgfokLyUT4q49Ln8toSJ1an7frJOsWCIYpbzRNu9VVw08
 aCZaXEZqxHR7UDvaV9gtRDCvP2uFd7Yg1qD5uJx5pLPDS1vvjnzSTI2UViE0PT/DkBpC
 09VTpCsD04XZZUWj+zuinV+vBeyU0JRSann3k7tP3APej6Ydxu9sUG/azIyIpnWzOeWQ
 t+xjlXfw6UwUidpjVa/GpJlTxrTsOXjXQsFkR9k+9xqFYxpZ1T3GakNg2G1jdj/qMcZU
 mqZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742844578; x=1743449378;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=gu4a7EnQUNNB1LN/Jsf+J34f9+YQuSI4sgQ/lnkdjsY=;
 b=aFpvAuyk4P7yNAWA94evJ6LacKEO3cL4nmA6K7CH2b2ho4RMDimzhu1/uCGcxb6tWM
 l1rwR+QCi/H40RGv9MobnXM/guM0046SmPwcE5/Vi3gyfwoRnMHIhTSaUd8AI05tG/i6
 YVVxIb7HdEHA4l0Iz2AgPkKffGQqFovzeWUkFZfPPjgbbwWrfjvQoel1KqCSQXmZLkuC
 R1hhO4kN1sk9HzlmGDfyDGM//fVt0HSble74PwYoZCYWuABSs85hgJ6C3bWIgAGFhkzZ
 TFTMrXwjZXLBBUVtVQex5VBRGKaVfH/UK5yr+lOt/hgtfSqLi182XUIOkCWLJabJJce/
 tV1w==
X-Forwarded-Encrypted: i=1;
 AJvYcCUlXMFjbAWmrlihK6WeiRsnqld1I11/XePyqxVjF4YCZ8cliu50eMD5ricloSml9cBHMYnH1Q==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yy9Ein99ka4Jou5GcfwC5P2AHMC4E3GSGZodksTpp1G1VLBNDUz
 pIMucELKqZjv8qOuFepXrx64n5CfdSiSZWnCxXfon1TlYVSYHjdaEDgz35KoR2OgehNu+HfFR4D
 cKkyB5ur70+sBMQYSn2+r79cGanw=
X-Gm-Gg: ASbGncusPc78dMFGrUFeit4pOBMBWd7viepHASrGjh7Z79uwHezc0x3VB7rvVgqM45i
 /38egaKRkdpfj4qcYKls0j1vpbL8JMbmdfN8Ub1B5CbvpPlo2uRsidlQ3voDAsVFyRh2A41QL0m
 oQLB8P3NGYiC73SnOuhDUS79Lbwj9hN8GXCJ2T
X-Google-Smtp-Source: AGHT+IHoXB3TDHQ2QDCdL3yf6JionGvY8GBQHIe9Y6IapRhJwosKAPHXWhiLtMYUOYw3SWfHvmO5qeqs/WoIwsnrybk=
X-Received: by 2002:a05:6102:1520:b0:4bb:cbbc:4c with SMTP id
 ada2fe7eead31-4c50d47c319mr11840197137.2.1742844577905; Mon, 24 Mar 2025
 12:29:37 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 <86y0wue188.fsf@HIDDEN>
In-Reply-To: <86y0wue188.fsf@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Mon, 24 Mar 2025 15:29:26 -0400
X-Gm-Features: AQ5f1Jo8Dx4bm8mi0oj2dQ_XthSnsz5RdfGC-aRnCr4eVxRK0L4xlEcvBbFh45Y
Message-ID: <CAN+1Hbr95fcrF3Bie7YuOKpo1hNi+wERcoy=G1SjMUYRdr1OcQ@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000f704c406311b9fd8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000f704c406311b9fd8
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Mar 24, 2025 at 2:24=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> wrote:

> > From: Ship Mints <shipmints@HIDDEN>
> > Date: Mon, 24 Mar 2025 11:15:20 -0400
> > Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
> >
> >
> > On Mon, Mar 24, 2025 at 9:03=E2=80=AFAM Eli Zaretskii <eliz@HIDDEN> wr=
ote:
> >
> >  AFAIR, you didn't respond to my suggest to try a different solution.
> >  Namely, instead of changing the file name by resolving links,
> >  something that could cause problems for some people, how about using
> >  file-equal-p to avoid duplication of projects in these cases?  If my
> >  proposal makes sense, it will allow use to avoid duplication without
> >  changing the file names, because symlinks will be chased internally,
> >  only where we decide whether two projects are different or not.
> >
> >  This is better than having an optional behavior, because inevitably
> >  someone will want to use this option, but also wouldn't like his/her
> >  project directories appear under their resolved names, and then we are
> >  back at the same problem.
> >
> > I did consider it.  The most popular project objects, project-vc, and
> transient are defined as (list 'vc
> > vcbackend dir) and (cons 'transient dir), respectively and vc objects
> are cached.  If we don't canonicalize the
> > dir name, we can't find the vc cache entry if a probe is attempted from
> another dir, even if that dir morally is
> > equivalent.
>
> Why can't we? what precludes that?
>

Nothing.  Just a matter of programming, as always.  We need to restructure
some of project.el to make this work well.  I'll have a deeper look/think.

> If you see the place in project.el where file-equal-p helps, I'll happily
> hack on it.
>
> I'm sorry, I cannot afford looking through the project.el code to find
> this.  But if the problem is that directories or files don't compare
> equal, the file-equal-p is the way to go, so I don't understand why
> the places where we do the comparison should be hard to find for
> someone who knows their way in project.el's code and/or has enough
> time to dig.
>

You don't have to look.  The issue is that no directories are explicitly
compared.  You just have to humor that it's a bit evil that a
singular project approached from different places produces two different
project objects.

-Stephane

--000000000000f704c406311b9fd8
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Mon, Mar 24, 2025 at 2:24=E2=80=AFPM Eli Zaretskii &lt;<a href=3D"mailto=
:eliz@HIDDEN">eliz@HIDDEN</a>&gt; wrote:</span></div></div><div class=3D"=
gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">&gt; From: Ship Mints &lt;<a href=3D"mailto:shipmints@HIDDEN"=
 target=3D"_blank">shipmints@HIDDEN</a>&gt;<br>
&gt; Date: Mon, 24 Mar 2025 11:15:20 -0400<br>
&gt; Cc: <a href=3D"mailto:dancol@HIDDEN" target=3D"_blank">dancol@danc=
ol.org</a>, <a href=3D"mailto:77122 <at> debbugs.gnu.org" target=3D"_blank">7712=
2 <at> debbugs.gnu.org</a>, <a href=3D"mailto:dmitry@HIDDEN" target=3D"_blank=
">dmitry@HIDDEN</a><br>
&gt; <br>
&gt; <br>
&gt; On Mon, Mar 24, 2025 at 9:03=E2=80=AFAM Eli Zaretskii &lt;<a href=3D"m=
ailto:eliz@HIDDEN" target=3D"_blank">eliz@HIDDEN</a>&gt; wrote:<br>
&gt; <br>
&gt;=C2=A0 AFAIR, you didn&#39;t respond to my suggest to try a different s=
olution.<br>
&gt;=C2=A0 Namely, instead of changing the file name by resolving links,<br=
>
&gt;=C2=A0 something that could cause problems for some people, how about u=
sing<br>
&gt;=C2=A0 file-equal-p to avoid duplication of projects in these cases?=C2=
=A0 If my<br>
&gt;=C2=A0 proposal makes sense, it will allow use to avoid duplication wit=
hout<br>
&gt;=C2=A0 changing the file names, because symlinks will be chased interna=
lly,<br>
&gt;=C2=A0 only where we decide whether two projects are different or not.<=
br>
&gt; <br>
&gt;=C2=A0 This is better than having an optional behavior, because inevita=
bly<br>
&gt;=C2=A0 someone will want to use this option, but also wouldn&#39;t like=
 his/her<br>
&gt;=C2=A0 project directories appear under their resolved names, and then =
we are<br>
&gt;=C2=A0 back at the same problem.<br>
&gt; <br>
&gt; I did consider it.=C2=A0 The most popular project objects, project-vc,=
 and transient are defined as (list &#39;vc<br>
&gt; vcbackend dir) and (cons &#39;transient dir), respectively and vc obje=
cts are cached.=C2=A0 If we don&#39;t canonicalize the<br>
&gt; dir name, we can&#39;t find the vc cache entry if a probe is attempted=
 from another dir, even if that dir morally is<br>
&gt; equivalent.<br>
<br>
Why can&#39;t we? what precludes that?<br></blockquote><div><br></div><div>=
<div class=3D"gmail_default" style=3D"font-family:monospace">Nothing.=C2=A0=
 Just a matter of programming, as always.=C2=A0 We need to restructure some=
 of project.el to make this work well.=C2=A0 I&#39;ll have a deeper look/th=
ink.</div></div><div><br></div><blockquote class=3D"gmail_quote" style=3D"m=
argin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left=
:1ex">
&gt; If you see the place in project.el where file-equal-p helps, I&#39;ll =
happily hack on it. <br>
<br>
I&#39;m sorry, I cannot afford looking through the project.el code to find<=
br>
this.=C2=A0 But if the problem is that directories or files don&#39;t compa=
re<br>
equal, the file-equal-p is the way to go, so I don&#39;t understand why<br>
the places where we do the comparison should be hard to find for<br>
someone who knows their way in project.el&#39;s code and/or has enough<br>
time to dig.<br></blockquote><div><br></div><div><div class=3D"gmail_defaul=
t" style=3D"font-family:monospace">You don&#39;t have to look.=C2=A0 The is=
sue is that no directories are explicitly compared.=C2=A0 You just have to =
humor that it&#39;s a bit evil that a singular=C2=A0project=C2=A0approached=
 from different places produces two different project=C2=A0objects.</div></=
div><div class=3D"gmail_default" style=3D"font-family:monospace"><br></div>=
<div class=3D"gmail_default" style=3D"font-family:monospace">-Stephane</div=
></div></div>

--000000000000f704c406311b9fd8--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 24 Mar 2025 18:24:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 24 14:24:44 2025
Received: from localhost ([127.0.0.1]:58180 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1twmTc-0005Go-9x
	for submit <at> debbugs.gnu.org; Mon, 24 Mar 2025 14:24:44 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:47140)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1twmTa-0005GB-5a
 for 77122 <at> debbugs.gnu.org; Mon, 24 Mar 2025 14:24: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 <eliz@HIDDEN>)
 id 1twmTP-0005YA-VL; Mon, 24 Mar 2025 14:24:34 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=bLNWHUq2hwhs7QpluqdgA50iO/AT0mokBI60RViDHmw=; b=qjD/Boe6rBV554GMrra7
 fyJDeKN9XbgvLxxZrfLt0F4acIsvwzx2FzXPNC1dcJu5GpNhVSSI11vEpXjMY6PouwzxzdMKoOz3Q
 TxrNm6/QhZN+/OH60rQ6pemXRzEKreVxg2e5eb6V/tuRZqUgdhA1RElgAuPam8HPmIGMN06sOywBc
 jjuTE5y1MC7Wq/aZqM0SLZvHswqBLAU5PzokLjKTfDZ1t/h+MpyfqKs4r/ePOiD5YNUBkHqdqoeCD
 PHEv2irKhoVKq0yUbxYOUST6ey4QG8tct83fGylmdXGeSKBiq5Z6S8/1wpcBsKw6kis7CA2vPXdV7
 oerY10V3N4wSjw==;
Date: Mon, 24 Mar 2025 20:24:07 +0200
Message-Id: <86y0wue188.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Ship Mints <shipmints@HIDDEN>
In-Reply-To: <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
 (message from Ship Mints on Mon, 24 Mar 2025 11:15:20 -0400)
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
 <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Ship Mints <shipmints@HIDDEN>
> Date: Mon, 24 Mar 2025 11:15:20 -0400
> Cc: dancol@HIDDEN, 77122 <at> debbugs.gnu.org, dmitry@HIDDEN
> 
> 
> On Mon, Mar 24, 2025 at 9:03 AM Eli Zaretskii <eliz@HIDDEN> wrote:
> 
>  AFAIR, you didn't respond to my suggest to try a different solution.
>  Namely, instead of changing the file name by resolving links,
>  something that could cause problems for some people, how about using
>  file-equal-p to avoid duplication of projects in these cases?  If my
>  proposal makes sense, it will allow use to avoid duplication without
>  changing the file names, because symlinks will be chased internally,
>  only where we decide whether two projects are different or not.
> 
>  This is better than having an optional behavior, because inevitably
>  someone will want to use this option, but also wouldn't like his/her
>  project directories appear under their resolved names, and then we are
>  back at the same problem.
> 
> I did consider it.  The most popular project objects, project-vc, and transient are defined as (list 'vc
> vcbackend dir) and (cons 'transient dir), respectively and vc objects are cached.  If we don't canonicalize the
> dir name, we can't find the vc cache entry if a probe is attempted from another dir, even if that dir morally is
> equivalent.

Why can't we? what precludes that?

> If you see the place in project.el where file-equal-p helps, I'll happily hack on it. 

I'm sorry, I cannot afford looking through the project.el code to find
this.  But if the problem is that directories or files don't compare
equal, the file-equal-p is the way to go, so I don't understand why
the places where we do the comparison should be hard to find for
someone who knows their way in project.el's code and/or has enough
time to dig.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 24 Mar 2025 15:15:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 24 11:15:41 2025
Received: from localhost ([127.0.0.1]:57402 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1twjWe-0007aN-Up
	for submit <at> debbugs.gnu.org; Mon, 24 Mar 2025 11:15:41 -0400
Received: from mail-vk1-xa2f.google.com ([2607:f8b0:4864:20::a2f]:57434)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1twjWb-0007a7-V7
 for 77122 <at> debbugs.gnu.org; Mon, 24 Mar 2025 11:15:38 -0400
Received: by mail-vk1-xa2f.google.com with SMTP id
 71dfb90a1353d-524125f6cadso4606345e0c.2
 for <77122 <at> debbugs.gnu.org>; Mon, 24 Mar 2025 08:15:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742829332; x=1743434132; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=x2Z6X6I49KClLNgbB/U/3yb/ERabnA2h/I+tGReb9fE=;
 b=AqDRr8UMl+wSis1r1Cb1yeb2eZiGpsQF0DqIdVJjK/FJIdLi1NkhT3rbANNpHB9aUT
 IS61Rhb+GTGo7lI1ltzv71swz1YQwgyTJ6o8sbSsVg8rq2h5fjCZvcLq1p88pISd6+XY
 pRQq9HTN9a1OAYvwowv4+84PGeWlSDxrnx2KJwdT7Cojb+rluDwH+KdvDx+sSAYKFsfi
 MtvR+GcLiqQZQUI5PmKyueXiBAKgHPNZO/crRBFLfRAUMOGThwLieOn7k5Y6UuVPovFl
 IDQu4XV59TUMXthbMzEq8gtmsr5/+V3NjNOBqjcO13XUpxCYExcO7dGXKzIXFAFXHsFh
 va/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742829332; x=1743434132;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=x2Z6X6I49KClLNgbB/U/3yb/ERabnA2h/I+tGReb9fE=;
 b=HOVnGpFZA1COz2rq2b6UqXrwYlPSVDR/VnVhpkXrslo+XICRSh6iAZIOcN+S9o4V6g
 Pfg6KBZgn+QXtsmargugpYnlgVnXuEuVZh8YVBu9YTBWeiwKpXfrvURsqBwIqqcBM0S2
 myTcf0DtZok6FZKdoCs2PGJxsAUR3/BO7Yvkcx5u+aR9YUjw2qAbB3bHbmc86YRkX/1P
 rX73GWvefeMx7AWFzeo5/PJmQIDqLoat+jioHEU6Gf8L58rdAdRt4SSqRVSOTiQ76vg8
 /o58NIgCBv9U3htwGTRSQxGATfPYUrlUJdHBkolGggBNjI26FD2dhLvJxoSX+pnhSzYx
 Vj/Q==
X-Forwarded-Encrypted: i=1;
 AJvYcCVO5hf08tYwcs4CT8WFZKawjfNQVQGcR4aIrAtuU+r8oinAHAhgru6qvaUa94eCewFjkMotkA==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YzEFQ4DSf8I8uUbJakfsDLiIrptQtLwhtoKeKcpIsMLL/2Y2dRU
 vezwQtvsoxRLHPfudLkc7YAJHAMYTS39bjBgZ97V4a+FyFHouP0cVjbM1ZDfRWa6+gtWdDyxMJ0
 EhMBWmYp3JbSaGjOtwzCMhffYoLM=
X-Gm-Gg: ASbGnct9ltE0V3TlgVuELfFE11ooY+KYA/joTtAWQE6iml5SEaiNnQOHfzandy3jtor
 NbwPA9KLZZ00GUiLJJHjYCc4R03i1Pr91f2lntZNV2YUKti8AqRjhcHTAQb4NKdC/uj46rcxV4D
 fOamvdtVsIBE4sAsRynj+21Aex5Q==
X-Google-Smtp-Source: AGHT+IFwIq5TcAwlryB70fGB6yULz5qamkkmWHAwQkXA9iKZkzgd4JVlk67OoP6O8BZ3GmKcUds2CJiWjWQkQecRTnE=
X-Received: by 2002:a05:6122:490e:b0:516:1ab2:9955 with SMTP id
 71dfb90a1353d-525a85008b4mr9251751e0c.6.1742829331886; Mon, 24 Mar 2025
 08:15:31 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 <864izifunt.fsf@HIDDEN>
In-Reply-To: <864izifunt.fsf@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Mon, 24 Mar 2025 11:15:20 -0400
X-Gm-Features: AQ5f1JrNqmqGtiaKIbf5K1iJAL2P7XvsLiIGuyb6Psz1-jObWGaGieTDklA8xgg
Message-ID: <CAN+1HbqfgHzN_sSfWk++fw595YCZA+uz5dLEWX01LbQzAEGm_Q@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000003b4311063118130b"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0000000000003b4311063118130b
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Mar 24, 2025 at 9:03=E2=80=AFAM Eli Zaretskii <eliz@HIDDEN> wrote:

> > Cc: 77122 <at> debbugs.gnu.org, Dmitry Gutov <dmitry@HIDDEN>
> > From: Ship Mints <shipmints@HIDDEN>
> > Date: Mon, 24 Mar 2025 06:40:29 -0400
> >
> > Since I suggested it be optional, it would be off by default, right?  I=
f
> you think you'd want to canonicalize
> > paths to project roots in some places and not others, perhaps we could
> contrive a project sentinel file ala .
> > project-notruename.el/d or .project-config.el/d, and for people that
> want to do things in code, a list project
> > can consult.
>
> AFAIR, you didn't respond to my suggest to try a different solution.
> Namely, instead of changing the file name by resolving links,
> something that could cause problems for some people, how about using
> file-equal-p to avoid duplication of projects in these cases?  If my
> proposal makes sense, it will allow use to avoid duplication without
> changing the file names, because symlinks will be chased internally,
> only where we decide whether two projects are different or not.
>
> This is better than having an optional behavior, because inevitably
> someone will want to use this option, but also wouldn't like his/her
> project directories appear under their resolved names, and then we are
> back at the same problem.
>

I did consider it.  The most popular project objects, project-vc, and
transient are defined as (list 'vc vcbackend dir) and (cons 'transient
dir), respectively and vc objects are cached.  If we don't canonicalize the
dir name, we can't find the vc cache entry if a probe is attempted from
another dir, even if that dir morally is equivalent.  One can't change the
embedded dir on the way out of without creating two objects, one with the
first location to create the cache entry, and a second from an equivalent
convenience dir.

I'm curious to hear more about why people would object to (project-root
project-obj) being canonicalized.  I don't think many people ever manually
enter project dirs.  The persisted known projects, I'd think, would also
benefit from no duplicates.

If you see the place in project.el where file-equal-p helps, I'll happily
hack on it.

--0000000000003b4311063118130b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Mon, Mar 24, 2025 at 9:03=E2=80=AFAM Eli Zaretskii &lt;<a href=3D"mailto=
:eliz@HIDDEN">eliz@HIDDEN</a>&gt; wrote:</span></div></div><div class=3D"=
gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">&gt; Cc: <a href=3D"mailto:77122 <at> debbugs.gnu.org" target=3D"_bla=
nk">77122 <at> debbugs.gnu.org</a>, Dmitry Gutov &lt;<a href=3D"mailto:dmitry@gu=
tov.dev" target=3D"_blank">dmitry@HIDDEN</a>&gt;<br>
&gt; From: Ship Mints &lt;<a href=3D"mailto:shipmints@HIDDEN" target=3D"=
_blank">shipmints@HIDDEN</a>&gt;<br>
&gt; Date: Mon, 24 Mar 2025 06:40:29 -0400<br>
&gt; <br>
&gt; Since I suggested it be optional, it would be off by default, right?=
=C2=A0 If you think you&#39;d want to canonicalize<br>
&gt; paths to project roots in some places and not others, perhaps we could=
 contrive a project sentinel file ala .<br>
&gt; project-notruename.el/d or .project-config.el/d, and for people that w=
ant to do things in code, a list project<br>
&gt; can consult.<br>
<br>
AFAIR, you didn&#39;t respond to my suggest to try a different solution.<br=
>
Namely, instead of changing the file name by resolving links,<br>
something that could cause problems for some people, how about using<br>
file-equal-p to avoid duplication of projects in these cases?=C2=A0 If my<b=
r>
proposal makes sense, it will allow use to avoid duplication without<br>
changing the file names, because symlinks will be chased internally,<br>
only where we decide whether two projects are different or not.<br>
<br>
This is better than having an optional behavior, because inevitably<br>
someone will want to use this option, but also wouldn&#39;t like his/her<br=
>
project directories appear under their resolved names, and then we are<br>
back at the same problem.<br></blockquote><div><br></div><div class=3D"gmai=
l_default" style=3D"font-family:monospace">I did consider it.=C2=A0 The mos=
t popular project objects, project-vc, and transient are defined as (list &=
#39;vc vcbackend dir) and (cons &#39;transient dir), respectively and vc ob=
jects are cached.=C2=A0 If we don&#39;t canonicalize the dir name, we can&#=
39;t find the vc cache entry if a probe is attempted from another dir, even=
 if that dir morally=C2=A0is=C2=A0equivalent.=C2=A0 One can&#39;t change th=
e embedded dir on the way out of without creating two objects, one with the=
 first location to create the cache entry, and a second from an equivalent =
convenience dir.</div><div class=3D"gmail_default" style=3D"font-family:mon=
ospace"><br></div><div class=3D"gmail_default" style=3D"font-family:monospa=
ce">I&#39;m curious to hear more about why people would object to (project-=
root project-obj) being canonicalized.=C2=A0 I don&#39;t think many people =
ever manually enter project dirs.=C2=A0 The persisted known projects, I&#39=
;d think, would also benefit from no duplicates.</div><div class=3D"gmail_d=
efault" style=3D"font-family:monospace"><br></div><div class=3D"gmail_defau=
lt" style=3D"font-family:monospace">If you see the place in project.el=C2=
=A0where file-equal-p helps, I&#39;ll happily hack on it.=C2=A0</div></div>=
</div>

--0000000000003b4311063118130b--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 24 Mar 2025 13:03:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 24 09:03:17 2025
Received: from localhost ([127.0.0.1]:54731 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1twhSW-0000PO-U9
	for submit <at> debbugs.gnu.org; Mon, 24 Mar 2025 09:03:17 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:60582)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1twhSU-0000Oy-9z
 for 77122 <at> debbugs.gnu.org; Mon, 24 Mar 2025 09:03:14 -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 <eliz@HIDDEN>)
 id 1twhSM-0004Q7-EK; Mon, 24 Mar 2025 09:03:06 -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=2gML/DeBQcZx/g2RohUl3ohSyaV7RE8II+4xMylrDuA=; b=En6b+Sp/DEDi
 JtT5+5RLZKjUW+rbr/ZgkGp9J99TFdUodUhEQzZO2Rv5NwmsmJHoFBqtm3S4Qkq8pPygvZteVHWH1
 NBF6PYvRxLWCUoqaYVh88jPQm9QwM2ISHhVOFebnjvmyPTLDfZ8MQdzYQps07PU+mqgP9iQaqY+DX
 itrtwPZp/ugoR6VUIgl9ZmeI+2djUElq0qHc6f6dR117xAUsxRs2sfSl9IHX7AOzX04LDJiHHEo+f
 n8wNh5EmPLItTAcF3TGqmPaOlGSukjHbfEeMted2NDgGvspdMqsW4BQnFemU/A0rrbBgPLwwmcm9X
 f1u6By4VRlE9dPPYmXo33w==;
Date: Mon, 24 Mar 2025 15:03:02 +0200
Message-Id: <864izifunt.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Ship Mints <shipmints@HIDDEN>
In-Reply-To: <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
 (message from Ship Mints on Mon, 24 Mar 2025 06:40:29 -0400)
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
 <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, dmitry@HIDDEN, dancol@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: 77122 <at> debbugs.gnu.org, Dmitry Gutov <dmitry@HIDDEN>
> From: Ship Mints <shipmints@HIDDEN>
> Date: Mon, 24 Mar 2025 06:40:29 -0400
> 
> Since I suggested it be optional, it would be off by default, right?  If you think you'd want to canonicalize
> paths to project roots in some places and not others, perhaps we could contrive a project sentinel file ala .
> project-notruename.el/d or .project-config.el/d, and for people that want to do things in code, a list project
> can consult.

AFAIR, you didn't respond to my suggest to try a different solution.
Namely, instead of changing the file name by resolving links,
something that could cause problems for some people, how about using
file-equal-p to avoid duplication of projects in these cases?  If my
proposal makes sense, it will allow use to avoid duplication without
changing the file names, because symlinks will be chased internally,
only where we decide whether two projects are different or not.

This is better than having an optional behavior, because inevitably
someone will want to use this option, but also wouldn't like his/her
project directories appear under their resolved names, and then we are
back at the same problem.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 24 Mar 2025 10:40:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 24 06:40:49 2025
Received: from localhost ([127.0.0.1]:54353 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1twfEe-0006lM-GI
	for submit <at> debbugs.gnu.org; Mon, 24 Mar 2025 06:40:49 -0400
Received: from mail-ua1-x936.google.com ([2607:f8b0:4864:20::936]:49315)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1twfEc-0006l8-Fg
 for 77122 <at> debbugs.gnu.org; Mon, 24 Mar 2025 06:40:47 -0400
Received: by mail-ua1-x936.google.com with SMTP id
 a1e0cc1a2514c-86d377306ddso1834950241.2
 for <77122 <at> debbugs.gnu.org>; Mon, 24 Mar 2025 03:40:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742812841; x=1743417641; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=boRRz6N/uAFkdlyUbm0BgRimK7sSrxg0iSEn5YPWeZQ=;
 b=FG/Mc/3PYd/hM4QvhFzS01v1bwEnWyjXJ5Usucml3/Z7Z6ZztOUBMyqedXiCG3W5hE
 IYmDJZ2GDTpV92oTN7U7cTr1a4Lr8XjbFMwil/TjfsL24FOIHJzKsg/rS18I2DlL1eA7
 pHaHBZxlBEgJoIwBmqcY1z6MqCKHk7mHD+jB57TyvRY6wdB4rdu2a/BFxBwCNQYPKAh3
 q1y50Um08+DyCVUuIZ/lBLB+tudaT1tq0IOv0qqt/lM4jdgF/W5TShOT0D9pE/2lt/+i
 PfUsOueSpE4Nng2SX6CMPh/qQlBxUCKXRDFJsCtuegpIjQLd0ZPmboKRiUfiMH37y7w0
 MH4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742812841; x=1743417641;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=boRRz6N/uAFkdlyUbm0BgRimK7sSrxg0iSEn5YPWeZQ=;
 b=ntAofifoZrWjGL3BqMWxDS7fpJq1vOR7/t3BwDcRbHFgDshCm+MfjDbZRhAfnFQjnX
 G+0sR5wT7EA3Tgnx8bH9sY9v9tVWkzjVIlicqdSu3MHVcpHnUGYaGSXtmJDFLzAkIz9d
 2kUqQpJYI+djXNr0KQx3D86cvlkU5O6Ohn4SfJNt11iTR6EKggoO0q1D/g8fSpHfRvVE
 lajU2dWlyEB8j+XATsjPGZH1ZPRGv73EYLVmSoFLk60NmcAM/dSIWxNeGmxoCKWhF0ry
 1PS8X+BnPphE3ZOki4OWjaKyG0M1En31G85E4gZG62Mp7l10xzOdHcqJs3jIuPup6H4N
 lHyA==
X-Forwarded-Encrypted: i=1;
 AJvYcCUddr737RH2XNaGyJk73KjpoSd9qBD4ctvl+jUXdFDkt7WejJpmxK1eFlF0fR+wT4VqVd85kA==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyOnB8xvFtffyVY2T24iJmnuA7I+V7ZGYLVyGR3CgaUbalDZ7b4
 CsyubiPUIBMsP2ou3PxUCo3eOoXBpm8kT7Q2ceDFykSTtJZpzDsLwA1GA8+3xa2zMwZFJDRXPP+
 8ewIcXpK8r9hly0wFVVW8VWiLNec=
X-Gm-Gg: ASbGncuRYfy5GZY7VwrwOxqdDNNpj102Qjl0kZ5IEBBxCRGb3eIg3LC8b/fTSoyMEpZ
 af88YJfzMAv9AHlT+r8FHcryzZjkysMyvyGMw32GMWjIHFOYIYNJhfeg9kqaUJ1C4y2NNBBOGPT
 Nb+UD6lsgAByKByQT+TdR0ThUB/A==
X-Google-Smtp-Source: AGHT+IG/EUqT/0B5gJiCnopP+a+vX73rAmrzANSNSDvlvokk7Ecn+CEXKzSI+HBnD9mqKDUjHZ6Do5vVC+uXfcyHVEE=
X-Received: by 2002:a05:6102:3f0d:b0:4c4:df56:6a2b with SMTP id
 ada2fe7eead31-4c50d491ca0mr8180928137.4.1742812840421; Mon, 24 Mar 2025
 03:40:40 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN> <m14izkcybx.fsf@HIDDEN>
In-Reply-To: <m14izkcybx.fsf@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Mon, 24 Mar 2025 06:40:29 -0400
X-Gm-Features: AQ5f1JrcXkhNvdy0MGyYORlyfqTKYRXw-sa5wFF3vWapdpzIWilRxqzddp_L-YE
Message-ID: <CAN+1HbrA_nDHUza9=BMHghd+J1tX6t8JZuwj9OOe9BgphdtA=Q@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Daniel Colascione <dancol@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000004372340631143cec"
X-Spam-Score: 0.7 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, Dmitry Gutov <dmitry@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.3 (/)

--0000000000004372340631143cec
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, Mar 22, 2025 at 9:47=E2=80=AFPM Daniel Colascione <dancol@HIDDEN=
g> wrote:

> Dmitry Gutov <dmitry@HIDDEN> writes:
>
> > Hi!
> >
> > On 19/03/2025 18:55, Ship Mints wrote:
> >> This avoids duplicate projects accessed via symlinks that share
> >> resolved directory locations.  This has bothered me for a while, so
> >> here we go.
> >
> > Could you describe the reasons why your setup is the way it is?
> >
> > Personally, I've never used symlinks at this level, and if I did, I'm
> > not sure I would see the problem with project-root returning different
> > strings for those.
> >
> > What exactly is the problem? Having the "same" project multiple times
> > in project history?
> >
> > I can name a couple of (probably minor) downsides:
> >
> > * The project detection would be slower (more disk I/O).
> > * project-root would more often return a string that is not a parent
> >   directory of default-directory. Some code out there probably
> >   soft-depends on that.
>
> FWIW, I sometimes symlink convenient names to inconvenient ones, and it
> would be a shame to use the inconvenient names due to excessive
> symlink chasing. (Other packages aren't great about this.) Can't people
> who want symlink chasing add something to project-find-functions?
>

Yeah, good question.  "Can't people" applies pretty much to every feature
and option added to Emacs that people can do themselves including
overriding functions wholesale.  The bigger picture, to me, is that if we
add options to do things like this for our users, then we can help more of
them, we can refine implementations at deeper levels should we need to, we
can prompt people to think more considerately about their working
environments.  Perhaps some never considered using symlinks as vanity paths
and they'll have the choice to treat project objects among those
paths canonically.

Since I suggested it be optional, it would be off by default, right?  If
you think you'd want to canonicalize paths to project roots in some places
and not others, perhaps we could contrive a project sentinel file ala
.project-notruename.el/d or .project-config.el/d, and for people that want
to do things in code, a list project can consult.

--0000000000004372340631143cec
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Sat, Mar 22, 2025 at 9:47=E2=80=AFPM Daniel Colascione &lt;<a href=3D"ma=
ilto:dancol@HIDDEN">dancol@HIDDEN</a>&gt; wrote:</span></div></div>=
<div class=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail=
_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204=
,204);padding-left:1ex">Dmitry Gutov &lt;<a href=3D"mailto:dmitry@HIDDEN=
" target=3D"_blank">dmitry@HIDDEN</a>&gt; writes:<br>
<br>
&gt; Hi!<br>
&gt;<br>
&gt; On 19/03/2025 18:55, Ship Mints wrote:<br>
&gt;&gt; This avoids duplicate projects accessed via symlinks that share<br=
>
&gt;&gt; resolved directory locations.=C2=A0 This has bothered me for a whi=
le, so<br>
&gt;&gt; here we go.<br>
&gt;<br>
&gt; Could you describe the reasons why your setup is the way it is?<br>
&gt;<br>
&gt; Personally, I&#39;ve never used symlinks at this level, and if I did, =
I&#39;m<br>
&gt; not sure I would see the problem with project-root returning different=
<br>
&gt; strings for those.<br>
&gt;<br>
&gt; What exactly is the problem? Having the &quot;same&quot; project multi=
ple times<br>
&gt; in project history?<br>
&gt;<br>
&gt; I can name a couple of (probably minor) downsides:<br>
&gt;<br>
&gt; * The project detection would be slower (more disk I/O).<br>
&gt; * project-root would more often return a string that is not a parent<b=
r>
&gt;=C2=A0 =C2=A0directory of default-directory. Some code out there probab=
ly<br>
&gt;=C2=A0 =C2=A0soft-depends on that.<br>
<br>
FWIW, I sometimes symlink convenient names to inconvenient ones, and it<br>
would be a shame to use the inconvenient names due to excessive<br>
symlink chasing. (Other packages aren&#39;t great about this.) Can&#39;t pe=
ople<br>
who want symlink chasing add something to project-find-functions?<br></bloc=
kquote><div><br></div><div><div class=3D"gmail_default" style=3D"font-famil=
y:monospace">Yeah, good question.=C2=A0 &quot;Can&#39;t people&quot; applie=
s pretty much to every feature and option added to Emacs that people can do=
 themselves including overriding functions wholesale.=C2=A0 The bigger pict=
ure, to me, is that if we add options to do things like this for our=C2=A0u=
sers, then we can help more of them, we can refine implementations at deepe=
r levels should we need to, we can prompt people to think more consideratel=
y about their working environments.=C2=A0 Perhaps some never considered usi=
ng symlinks as vanity paths and they&#39;ll have the choice to treat projec=
t objects among those paths=C2=A0canonically.</div><div class=3D"gmail_defa=
ult" style=3D"font-family:monospace"><br></div><div class=3D"gmail_default"=
 style=3D"font-family:monospace">Since I suggested it be optional, it would=
 be off by default,=C2=A0right?=C2=A0 If you think you&#39;d want to canoni=
calize paths to project roots in some places and not others, perhaps we cou=
ld contrive a project sentinel file ala .project-notruename.el/d or .projec=
t-config.el/d, and for people that want to do things in code, a list projec=
t can consult.</div></div><div>=C2=A0</div></div></div>

--0000000000004372340631143cec--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 23 Mar 2025 01:47:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 22 21:47:44 2025
Received: from localhost ([127.0.0.1]:46421 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1twARB-0004Ex-5A
	for submit <at> debbugs.gnu.org; Sat, 22 Mar 2025 21:47:43 -0400
Received: from dancol.org ([2600:3c01:e000:3d8::1]:34058)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dancol@HIDDEN>) id 1twAR5-0004Dg-1o
 for 77122 <at> debbugs.gnu.org; Sat, 22 Mar 2025 21:47:37 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; 
 s=x;
 h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:Date:
 References:In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=qQAlIjPdN+fU5FrqHmHj+4aT4VcSns4L/X6vy9jvMuE=; b=Tgnlq8ZEmv1Ay9XBDeGdAVmv4n
 H4g7fmRfQxCNNM9QrcVarDwajeim9s7y1UtZ4LqUwkas/ahqGUZsH/zrubvK++oBsNU1hy+uUV+BQ
 dPO06lQ6JEjfYTVsirOSOogleUgHvirfE/lwps2eRQuCkruts2Y9vL3kOMsHejPuDGo0uc2eKjwHV
 /MBSQrgKWiELdq6zW+KVImv77pl9NlKRcyHfA4NRITQCMgCMNBWoiooo9uBXvoHN0+FY5lKplDNKz
 mHXzljKNKeA9ubFnZ9/xHCtf0rTkHRhPVL27ouo2+ul8RdFwOGKveRd5E2rNn/3Vck7NHejHHKoyA
 +vn0Qk9g==;
Received: from dancol by dancol.org with local (Exim 4.96)
 (envelope-from <dancol@HIDDEN>) id 1twAQg-003mc6-1q;
 Sat, 22 Mar 2025 21:47:10 -0400
From: Daniel Colascione <dancol@HIDDEN>
To: Dmitry Gutov <dmitry@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
In-Reply-To: <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN>
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN>
User-Agent: mu4e 1.12.8; emacs 31.0.50
Date: Sat, 22 Mar 2025 21:47:30 -0400
Message-ID: <m14izkcybx.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.7 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org, Ship Mints <shipmints@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.3 (/)

Dmitry Gutov <dmitry@HIDDEN> writes:

> Hi!
>
> On 19/03/2025 18:55, Ship Mints wrote:
>> This avoids duplicate projects accessed via symlinks that share
>> resolved directory locations.=C2=A0 This has bothered me for a while, so
>> here we go.
>
> Could you describe the reasons why your setup is the way it is?
>
> Personally, I've never used symlinks at this level, and if I did, I'm
> not sure I would see the problem with project-root returning different
> strings for those.
>
> What exactly is the problem? Having the "same" project multiple times
> in project history?
>
> I can name a couple of (probably minor) downsides:
>
> * The project detection would be slower (more disk I/O).
> * project-root would more often return a string that is not a parent
>   directory of default-directory. Some code out there probably
>   soft-depends on that.

FWIW, I sometimes symlink convenient names to inconvenient ones, and it
would be a shame to use the inconvenient names due to excessive
symlink chasing. (Other packages aren't great about this.) Can't people
who want symlink chasing add something to project-find-functions?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 20 Mar 2025 11:19:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 20 07:19:32 2025
Received: from localhost ([127.0.0.1]:55694 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tvDvv-0005cJ-Og
	for submit <at> debbugs.gnu.org; Thu, 20 Mar 2025 07:19:32 -0400
Received: from mail-ua1-x92d.google.com ([2607:f8b0:4864:20::92d]:45259)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1tvDvs-0005bz-9F
 for 77122 <at> debbugs.gnu.org; Thu, 20 Mar 2025 07:19:29 -0400
Received: by mail-ua1-x92d.google.com with SMTP id
 a1e0cc1a2514c-86718c2c3b9so250851241.2
 for <77122 <at> debbugs.gnu.org>; Thu, 20 Mar 2025 04:19:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742469562; x=1743074362; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=20NSQ8JWHeU4jw6WlrUwg/fiQjimf7ypX1JKpeIu+u8=;
 b=D2bjm/rjuqD9A1XXv30s6pMFWshA0DSgkUMekJ7Xv9DqXzL9S6qxwCmpuH/pGo+qQF
 BeWB52tHdYQuHTGa3P/Co8p/M0Smiok6lN122bbaUAwf+eijwrDCwYpKOxqa4SYm0d/i
 OnljJ8DwEp2y3l5+/vBOYPSYumabBHtP9A3jtvBn8u+/Bm0ciXPwwjWO/jMum238oxf5
 5fMWY4tFztfJJSlIfC8ibPwcmN8w7AD0bodFlCo3k6bWPhDiMTuOqvPnpwfzR1OyAxdU
 ayUBPyHyBvA2JEk2JgMPqcsGBVsZ21dfreV6FuaBB4YdArZJ/78ERqnxrpVDI34XzWcC
 AOnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742469562; x=1743074362;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=20NSQ8JWHeU4jw6WlrUwg/fiQjimf7ypX1JKpeIu+u8=;
 b=lHepkMVTO68ePTZpJBaXs99alIP/m1SqV57rH3oLbwCsptD+AZcGSevZJs20WRjMi2
 k4QmGECN9utXW/jbKLyVmY2Av+c06OVHAHgS+cEjS76duBy5dG8U5Vp8OuC+NJ54WuEw
 GKYfQCuA4wSHgYIKpCS+1ZfCUrypYEMTzwD9GIymBd7ENczX7K0Jlm7aqYERZZVyYqBV
 muHKfuEgGFjuJRwBgtq076LHslA0OG1U1jv0bXURi14CGKxROiqVGNdsgCTBZ/Jm6yyo
 OkWEHahaPeM59o4R/x2QNokqTTXiQoCMVZDdTT1lRx4Pain9Cy0WkIU0hM06emwe5Beo
 xnJQ==
X-Gm-Message-State: AOJu0Ywp4+a6ExhcCvdM28QlkSxnueT5dlAiLxUtZm8a6iNJBRrt51T9
 KCp8eggic+EdpH3eDHJpihkTTL+bIA+IAsMnnoA4JJOnG30mhTrxH9NV35bpfkbpbYFbp6f1eH+
 Rlb206KymJSL0oIiHp3U/J576taSImIsy
X-Gm-Gg: ASbGncseE2pylxlPwl4C1DqZCXkO/zvgEG9p5LhGcBS5SekvsLdIZbljsVw9dtRJ8y/
 dGr0xDJTPj7VDt3q/Vhjv1UiMMQNxiLf1Pk4mNrSpIvedGCfbb+7Meq1BUnNoRPSOlfcK1NHhuG
 WKkS2z1ilO4JFq6EcvUstELRGWs883KNwZfxew
X-Google-Smtp-Source: AGHT+IEXAEVJZAhyt1kba/MJQyfsJ1vnmYiPSC2goPey/P/4gNv7NoK5mWkRnO8iRBJspxl7zNXc5F39rh3m2rKTKNE=
X-Received: by 2002:a05:6102:dcc:b0:4c1:9d9b:54b8 with SMTP id
 ada2fe7eead31-4c4ec6000d3mr5353510137.2.1742469562072; Thu, 20 Mar 2025
 04:19:22 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN>
In-Reply-To: <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Thu, 20 Mar 2025 07:19:10 -0400
X-Gm-Features: AQ5f1Job8g05EVFhMBUC1ZvkCIbnmZ5y6GuZQ1qEE-LyP9Nd0TmKmmKuuvQmav4
Message-ID: <CAN+1HbrA2QKi5_Ykfh0mvqFHsuLqZJJMa2sRUp5Cc+2ZQoeAig@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Dmitry Gutov <dmitry@HIDDEN>
Content-Type: multipart/alternative; boundary="00000000000047875a0630c44f71"
X-Spam-Score: 0.7 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.3 (/)

--00000000000047875a0630c44f71
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Mar 19, 2025 at 10:15=E2=80=AFPM Dmitry Gutov <dmitry@HIDDEN> wr=
ote:

> Hi!
>
> On 19/03/2025 18:55, Ship Mints wrote:
> > This avoids duplicate projects accessed via symlinks that share resolve=
d
> > directory locations.  This has bothered me for a while, so here we go.
>
> Could you describe the reasons why your setup is the way it is?
>

Many of us here do the same out of habit and convenience to normalize our
own directory trees as an overlay on the varied-structured work we need to
deal with.

Personally, I've never used symlinks at this level, and if I did, I'm
> not sure I would see the problem with project-root returning different
> strings for those.
>

> What exactly is the problem? Having the "same" project multiple times in
> project history?
>

If one loads two files from the same project but one via the symlinked
path, and another via the natural path (often, an underlying tool will
choose natural while Emacs chooses default-directory), and one has tools
that compare project-likeness between/among buffers, they report different
projects.  That's misleading and annoying.


> I can name a couple of (probably minor) downsides:
>
> * The project detection would be slower (more disk I/O).
> * project-root would more often return a string that is not a parent
> directory of default-directory. Some code out there probably
> soft-depends on that.
>

I've been running with the following for a while and haven't found any
issues yet, hence the patch to help others with similar situations.

  (defun my/project--find-in-directory-advice (args)
    (cons (file-truename (car args)) (cdr args)))
  (advice-add #'project--find-in-directory :filter-args
#'my/project--find-in-directory-advice)

We can make this a user option nil (default), t (always), 'inhibit-remote
so the user can avoid hammering remote connections.  If we could normalize
at a lower level and still retain the symmetry between default-directory
and a normalized project object, that would suggest caches like the one in
project-try-vc have to cache more than one project directory form.  Doesn't
seem worth the complexity?

-Stephane

--00000000000047875a0630c44f71
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Wed, Mar 19, 2025 at 10:15=E2=80=AFPM Dmitry Gutov &lt;<a href=3D"mailto=
:dmitry@HIDDEN">dmitry@HIDDEN</a>&gt; wrote:</span></div></div><div c=
lass=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote=
" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);=
padding-left:1ex">Hi!<br>
<br>
On 19/03/2025 18:55, Ship Mints wrote:<br>
&gt; This avoids duplicate projects accessed via symlinks that share resolv=
ed <br>
&gt; directory locations.=C2=A0 This has bothered me for a while, so here w=
e go.<br>
<br>
Could you describe the reasons why your setup is the way it is?<br></blockq=
uote><div><br></div><div><div class=3D"gmail_default" style=3D"font-family:=
monospace">Many of us here do the same out of habit and convenience to norm=
alize our own directory trees as an overlay on the varied-structured work w=
e need to deal with.</div></div><div><br></div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2=
04);padding-left:1ex">
Personally, I&#39;ve never used symlinks at this level, and if I did, I&#39=
;m <br>
not sure I would see the problem with project-root returning different <br>
strings for those.<br></blockquote><div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pad=
ding-left:1ex"><br></blockquote></div><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddi=
ng-left:1ex">
What exactly is the problem? Having the &quot;same&quot; project multiple t=
imes in <br>
project history?<br></blockquote><div><br></div><div><div><div class=3D"gma=
il_default" style=3D"font-family:monospace">If one loads two files from the=
 same project but one via the symlinked path, and another via the natural p=
ath (often, an underlying tool will choose natural while Emacs chooses defa=
ult-directory), and one has tools that compare project-likeness between/amo=
ng buffers, they report different projects.=C2=A0 That&#39;s misleading=C2=
=A0and annoying.</div></div><div></div></div><div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex">
I can name a couple of (probably minor) downsides:<br>
<br>
* The project detection would be slower (more disk I/O).<br>
* project-root would more often return a string that is not a parent <br>
directory of default-directory. Some code out there probably <br>
soft-depends on that.<br></blockquote><div><br></div><div><div class=3D"gma=
il_default" style=3D"font-family:monospace">I&#39;ve been running with the =
following for a while and haven&#39;t found any issues yet,=C2=A0hence the =
patch to help others with similar situations.</div><div class=3D"gmail_defa=
ult" style=3D"font-family:monospace"><br></div><div class=3D"gmail_default"=
 style=3D"font-family:monospace">=C2=A0 (defun my/project--find-in-director=
y-advice (args)<br>=C2=A0 =C2=A0 (cons (file-truename (car args)) (cdr args=
)))<br>=C2=A0 (advice-add #&#39;project--find-in-directory :filter-args #&#=
39;my/project--find-in-directory-advice)<br></div><br></div><div><div class=
=3D"gmail_default" style=3D"font-family:monospace">We can make this a user =
option nil (default), t (always), &#39;inhibit-remote so the=C2=A0user can =
avoid hammering remote connections.=C2=A0 If we could normalize at a lower =
level and still retain the symmetry between default-directory and a normali=
zed project object, that would suggest caches like the one in project-try-v=
c have to cache more than one project directory form.=C2=A0 Doesn&#39;t see=
m worth the complexity?</div><div class=3D"gmail_default" style=3D"font-fam=
ily:monospace"><br></div><div class=3D"gmail_default" style=3D"font-family:=
monospace">-Stephane</div><br></div><div>=C2=A0</div></div></div>

--00000000000047875a0630c44f71--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 20 Mar 2025 02:16:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 19 22:16:03 2025
Received: from localhost ([127.0.0.1]:54531 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tv5Rz-0005WM-FH
	for submit <at> debbugs.gnu.org; Wed, 19 Mar 2025 22:16:03 -0400
Received: from fout-a8-smtp.messagingengine.com ([103.168.172.151]:39157)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <dmitry@HIDDEN>) id 1tv5Rt-0005Vj-Q6
 for 77122 <at> debbugs.gnu.org; Wed, 19 Mar 2025 22:16:01 -0400
Received: from phl-compute-02.internal (phl-compute-02.phl.internal
 [10.202.2.42])
 by mailfout.phl.internal (Postfix) with ESMTP id 404F213833F8;
 Wed, 19 Mar 2025 22:15:52 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Wed, 19 Mar 2025 22:15:52 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=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=fm3; t=1742436952;
 x=1742523352; bh=F8/uq92NDtnzNEjG7zupa8Aa7/QkC+D5txT2IDqC1V0=; b=
 Hp9RNVyt9I2DDtzUQLA6cFhKI6O2RQVWtKzGdriSXZd3ojuIeE3oDkqcJkkjYJWp
 bmxanLchlnW8mEj3O6dQ/br30GfVFaXY/vrMh5tb8D0WlF0TLcVEG5MjEBkfujOy
 4aACsOdZe+WJTloEHubF7awBLaFUUd2/IIFf9UbGoiPFy0j61atcJeU+UOTo4lPt
 i/UdwAwPZ+QgJaAz+DfHDciejnFFbAoVrUQgIIc0O2eru6zL1dkJ4B/xsra0M/rD
 NREgy4Cr87CJGUYIc0PtCV3ghASN1aiOqxl5P6RoNzrYMuIV+r1j+0uAWC5AIMqt
 RhjmuhrQB5s3iSmD86cu1w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=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=fm1; t=1742436952; x=1742523352; bh=F
 8/uq92NDtnzNEjG7zupa8Aa7/QkC+D5txT2IDqC1V0=; b=BmvwrImdJ9pAru1Kv
 D1pOcUjLKkausqz6aSzRV6MrZdCV4Fol063ApImXGbPnEqU/VuZfodBzwotEhYPA
 q9Ri6oahW5rwYPRa8ANb1Ba+tFdwTqEcsrELzkIy28ncqy93H4F7Q5dKznYHOB3U
 cLcmz800KzbQkuOWkyIHUWXg/sLNhDKBFkM5an4CuFKnQzS5PJj0NHUEj1sb0NOl
 MAP+66vENljVg1IgE8fR0fu2YOVc/a/IQdgABEYMm2pS8kxK5n7iwOTv9gQMjuw0
 9xZRWLwxG9vGz46By4jb+NdcIeOCG/F+ZQEfIXudwoxMcSwYApMk3XMjAipyAQHd
 gfHgw==
X-ME-Sender: <xms:V3rbZ_7CZYCULzKKGPPgZwPJ27CK3hSyAYFxfC-0mqhNFq0DTId59g>
 <xme:V3rbZ05WomaG5sWZVlz7d53n7m1lOGyEXVXMZ4K2yC8QZZZec7IkDl6fKeJ4g0wzj
 kZ-siAqCJOONuNPwFs>
X-ME-Received: <xmr:V3rbZ2cr8bcSX4KffwEZTsAZfAJQSZdUBMzZs6LUmbxh5tlmGu8qcx1C-NspFwxTzXyB>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddugeeileekucetufdoteggodetrf
 dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
 pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
 gvnhhtshculddquddttddmnecujfgurhepkfffgggfuffvfhfhjggtgfesthekredttddv
 jeenucfhrhhomhepffhmihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrd
 guvghvqeenucggtffrrghtthgvrhhnpeegueegteffuddvjeevvdelleeitdeftdduhfef
 feffjedukeevjedvfeffgfevgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh
 epmhgrihhlfhhrohhmpegumhhithhrhiesghhuthhovhdruggvvhdpnhgspghrtghpthht
 ohepvddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepshhhihhpmhhinhhtshesgh
 hmrghilhdrtghomhdprhgtphhtthhopeejjeduvddvseguvggssghughhsrdhgnhhurdho
 rhhg
X-ME-Proxy: <xmx:V3rbZwJxhZg95U3S0o3HZVRxhfYGim40fk7GfPvyRpRLVP4Bu-TKbg>
 <xmx:V3rbZzKudPofelCzTuyMfFWHr1ozoDoUXXhWr1ehLWcwIfsDePqzig>
 <xmx:V3rbZ5yzLestK50aATrNh5Jt9TMJYZpci4JYhqJgk98jCWzx8TVyLQ>
 <xmx:V3rbZ_IyQYAqu5lVCNz7X7BFeFGdhVBHqeZntO4Usc1aaeVQkwPPBQ>
 <xmx:WHrbZ6WPQLlRh5vFXnIl3uSKI9TtZdkgVo6fFWWVKVyLrkoQAx_Y3VdQ>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 19 Mar 2025 22:15:50 -0400 (EDT)
Message-ID: <d77da208-3d97-4cdb-b9e3-88c36d51393c@HIDDEN>
Date: Thu, 20 Mar 2025 04:15:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Ship Mints <shipmints@HIDDEN>, 77122 <at> debbugs.gnu.org
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi!

On 19/03/2025 18:55, Ship Mints wrote:
> This avoids duplicate projects accessed via symlinks that share resolved 
> directory locations.  This has bothered me for a while, so here we go.

Could you describe the reasons why your setup is the way it is?

Personally, I've never used symlinks at this level, and if I did, I'm 
not sure I would see the problem with project-root returning different 
strings for those.

What exactly is the problem? Having the "same" project multiple times in 
project history?

I can name a couple of (probably minor) downsides:

* The project detection would be slower (more disk I/O).
* project-root would more often return a string that is not a parent 
directory of default-directory. Some code out there probably 
soft-depends on that.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 19 Mar 2025 17:19:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 19 13:19:09 2025
Received: from localhost ([127.0.0.1]:52947 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tux4O-0006Vh-RI
	for submit <at> debbugs.gnu.org; Wed, 19 Mar 2025 13:19:09 -0400
Received: from mail-vk1-xa2d.google.com ([2607:f8b0:4864:20::a2d]:54582)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1tux4M-0006V3-Aa
 for 77122 <at> debbugs.gnu.org; Wed, 19 Mar 2025 13:19:06 -0400
Received: by mail-vk1-xa2d.google.com with SMTP id
 71dfb90a1353d-523de5611a3so2733765e0c.1
 for <77122 <at> debbugs.gnu.org>; Wed, 19 Mar 2025 10:19:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742404740; x=1743009540; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=NW2+EGWd/EVn4SBqcRznMJsPtRz6zZe/VZbNRmQLC7U=;
 b=kYIpselqCujGcoohcviUR95jhUNvHFVUd8aHlubbSAUDxjoJ4GglfAk3AiktHW5GP0
 wo1YO1a37iwvKX917+CxsZ1/11picu3+U+jX8AcVEwnZnaXtUVKXQfdObTwKexcoevUk
 Yap3wm5iL4GunUerEuss5kc0b1SMNGtvbJc1NwO38Schr/+AyfnzsX0TwYQeO7qhB40z
 RTWwZCBWxQT7SGq+7Ug4sEMObyIaR1/EY/d/tWqWjNb1C6WokaZdlZ1RGG+1c098hfbu
 dTs4z8jEtJumNtUziFC93/S3xMPNbclfgB7Ugtm0ZhlEVEnKsIxxQXFzoYwm4Vc3qWtj
 PpDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742404740; x=1743009540;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=NW2+EGWd/EVn4SBqcRznMJsPtRz6zZe/VZbNRmQLC7U=;
 b=jHU9+mDN4D961E1sAHeOGD6ikdBVEf88QN0m+JYDeNGyDNGP6yOmJiWI9beq2FCexq
 X9K/aujdlnIZc20/xl1q58fmYdK1eU6pSNYVupZH9gdbrqRhcGyXhiYpX37qIVKSUGZO
 WYDyr/ish+mUs/4E7uTg87Di/yzcMH9BNEzupvgoRzTCyal/2pLvSXcXOLnaWZcRn7gf
 LPMr9ttoMggirOWiJ2ZaPUx3vZUs08l06ixeYg5alvevniWTiRQhJGJEeO/nrqSevMPV
 7FCFhzkwDZqwMH68fjerfHiQeUOc+s71fJI5yGpn4QptcYjNf9wkF5GPFWXwV6+oxrpQ
 HKTQ==
X-Gm-Message-State: AOJu0YzDzpfeoOQRNy3g4rofxDENTgdsCw5adLZ/gu2Q+yEFO8zMVO8b
 jXjznnzmHt+IAMRl4m5YhRADcAOScPigMjWC34+9GpEblA/HJi97UNLejnO3cXXPsztEdy3XjNz
 WrL+avMnF2/9dHUr3IqA7+MQCjIU=
X-Gm-Gg: ASbGnctBiptvLt5LYB3MwB+pk33goubFbmWkdujnMubFmgUSmDXS73wlxqHMQ5/COQ5
 PHd/ymKSz/qqW77epMNS/M7/3chQnNW2TbwT27KwnBogOU1daMaWlq7Yh8irS+a3sBD5+YGXWcz
 q1xzupe3ZGxEmQJmY7eP7+kb7kAg==
X-Google-Smtp-Source: AGHT+IFFqTQjXmnt3XNvpn16zE26qPyunv9oS355ae5obZEglJD+zfaEzUmVNGjUW0VO6n8HJDGddlODGEsN7CJT3Yc=
X-Received: by 2002:a05:6122:4710:b0:524:2fe2:46ba with SMTP id
 71dfb90a1353d-5258929589emr3013765e0c.11.1742404740515; Wed, 19 Mar 2025
 10:19:00 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <861putoskn.fsf@HIDDEN>
In-Reply-To: <861putoskn.fsf@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Wed, 19 Mar 2025 13:18:49 -0400
X-Gm-Features: AQ5f1JrRDJf7ehTkFP2VyuUroDs2ZdO_9iGgjdcwTPB0oImYaG1kGIDFMFMfrrY
Message-ID: <CAN+1HbpimxObiQAUWMkWt_JO1wPTQ+KcKpQYVV2Dp_9hrOjcPQ@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000009d0eea0630b5379f"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0000000000009d0eea0630b5379f
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Mar 19, 2025 at 1:10=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> wrote:

> > From: Ship Mints <shipmints@HIDDEN>
> > Date: Wed, 19 Mar 2025 12:55:09 -0400
> >
> > This avoids duplicate projects accessed via symlinks that share resolve=
d
> directory locations.  This has
> > bothered me for a while, so here we go.
> >
> > From 074905ff365c6bcd7cbcf72e0158ae9db0908a20 Mon Sep 17 00:00:00 2001
> > From: shipmints <shipmints@HIDDEN>
> > Date: Wed, 19 Mar 2025 12:50:28 -0400
> > Subject: [PATCH] project--find-in-directory resolves symlinks (bug#xxx)
> >
> > This avoids duplicate projects that share resolved directory locations.
> >
> > * lisp/progmodes/project.el (project--find-in-directory): Invoke
> > 'project-find-functions' on 'file-truename' resolved dir.
> > ---
> >  lisp/progmodes/project.el | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
> > index 4eac541167a..45f5328f6be 100644
> > --- a/lisp/progmodes/project.el
> > +++ b/lisp/progmodes/project.el
> > @@ -251,6 +251,10 @@ project-current
> >      pr))
> >
> >  (defun project--find-in-directory (dir)
> > +  "Invoke `project-find-functions' for DIR.
> > +DIR is resolved to its true name, 'chasing' symbolic links, to avoid
> > +duplicate projects that share resolved directory locations."
> > +  (setq dir (file-truename dir))
>
> That's not necessarily what the user will want, since it changes the
> name of the file (and potentially its directory as well).  If the file
> or the directory have some "magical" name that matters, this will
> backfire.
>
> I think it is better to detect the fact that two directories point to
> the same place via symlinks (e.g., with file-equal-p), and avoid
> duplication in that case, but without actually substituting the file's
> name by its truename.
>
> But of course the final word is for Dmitry.
>

I expect that (project-current) whether invoked when default-directory
points to a symlinked project or not, returns the same thing.  It's an
opaque value to users?

--0000000000009d0eea0630b5379f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Wed, Mar 19, 2025 at 1:10=E2=80=AFPM Eli Zaretskii &lt;<a href=3D"mailto=
:eliz@HIDDEN">eliz@HIDDEN</a>&gt; wrote:</span></div></div><div class=3D"=
gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">&gt; From: Ship Mints &lt;<a href=3D"mailto:shipmints@HIDDEN"=
 target=3D"_blank">shipmints@HIDDEN</a>&gt;<br>
&gt; Date: Wed, 19 Mar 2025 12:55:09 -0400<br>
&gt; <br>
&gt; This avoids duplicate projects accessed via symlinks that share resolv=
ed directory locations.=C2=A0 This has<br>
&gt; bothered me for a while, so here we go.<br>
&gt; <br>
&gt; From 074905ff365c6bcd7cbcf72e0158ae9db0908a20 Mon Sep 17 00:00:00 2001=
<br>
&gt; From: shipmints &lt;<a href=3D"mailto:shipmints@HIDDEN" target=3D"_=
blank">shipmints@HIDDEN</a>&gt;<br>
&gt; Date: Wed, 19 Mar 2025 12:50:28 -0400<br>
&gt; Subject: [PATCH] project--find-in-directory resolves symlinks (bug#xxx=
)<br>
&gt; <br>
&gt; This avoids duplicate projects that share resolved directory locations=
.<br>
&gt; <br>
&gt; * lisp/progmodes/project.el (project--find-in-directory): Invoke<br>
&gt; &#39;project-find-functions&#39; on &#39;file-truename&#39; resolved d=
ir.<br>
&gt; ---<br>
&gt;=C2=A0 lisp/progmodes/project.el | 4 ++++<br>
&gt;=C2=A0 1 file changed, 4 insertions(+)<br>
&gt; <br>
&gt; diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el<br>
&gt; index 4eac541167a..45f5328f6be 100644<br>
&gt; --- a/lisp/progmodes/project.el<br>
&gt; +++ b/lisp/progmodes/project.el<br>
&gt; @@ -251,6 +251,10 @@ project-current<br>
&gt;=C2=A0 =C2=A0 =C2=A0 pr))<br>
&gt;=C2=A0 <br>
&gt;=C2=A0 (defun project--find-in-directory (dir)<br>
&gt; +=C2=A0 &quot;Invoke `project-find-functions&#39; for DIR.<br>
&gt; +DIR is resolved to its true name, &#39;chasing&#39; symbolic links, t=
o avoid<br>
&gt; +duplicate projects that share resolved directory locations.&quot;<br>
&gt; +=C2=A0 (setq dir (file-truename dir))<br>
<br>
That&#39;s not necessarily what the user will want, since it changes the<br=
>
name of the file (and potentially its directory as well).=C2=A0 If the file=
<br>
or the directory have some &quot;magical&quot; name that matters, this will=
<br>
backfire.<br>
<br>
I think it is better to detect the fact that two directories point to<br>
the same place via symlinks (e.g., with file-equal-p), and avoid<br>
duplication in that case, but without actually substituting the file&#39;s<=
br>
name by its truename.<br>
<br>
But of course the final word is for Dmitry.<br></blockquote><div><br></div>=
<div class=3D"gmail_default" style=3D"font-family:monospace">I expect that =
(project-current) whether invoked when default-directory points to a symlin=
ked project or not, returns the same thing.=C2=A0 It&#39;s an opaque value =
to users?</div></div></div>

--0000000000009d0eea0630b5379f--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 19 Mar 2025 17:17:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 19 13:17:25 2025
Received: from localhost ([127.0.0.1]:52938 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tux2j-0006S1-Bx
	for submit <at> debbugs.gnu.org; Wed, 19 Mar 2025 13:17:25 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:50984)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tux2f-0006Ri-TD
 for 77122 <at> debbugs.gnu.org; Wed, 19 Mar 2025 13:17: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 <eliz@HIDDEN>)
 id 1tux2Z-0005My-Li; Wed, 19 Mar 2025 13:17:16 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=RzLmlTgiPSIC2gh0UsKwYtH7f9KhKtk6K7YHLAOu/Xk=; b=WVI2qDs+BCEhJ5GCfTtG
 RLe0/198mSA3clblTkbgBuinYAC/VEA5rHxm3BDRFkcFUAK01B7X1kvTnlNEZj7/UOaGxqVQ9koBo
 lvrW+77BTCLVxQG5ybLj8O5lfrszmAcTYFoPXBb5QWPElNO28m6oa8eUbIc/HfP70t7Dzxz4eOwgP
 6OZN5eMia5Z0tQI+wiBvaAwO1nstr+pLHZ/RcltL+oFlXSHBNaWKNN9yFUHiaagFtGu927xKp/qKK
 ieoGXlBveaUDDH2l8j9o9odYjFxio8+N+hgVgNEV1lNdlndSPOYt9uxJSb/6CL+e/FO3QvKUlfwUs
 MVGMmiijesZEtw==;
Date: Wed, 19 Mar 2025 19:16:56 +0200
Message-Id: <86y0x1ndo7.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Ship Mints <shipmints@HIDDEN>
In-Reply-To: <CAN+1HbpUvWUmtWs9dwmGraVLJ+D599XwKD9Bg-8720-Yb65F6w@HIDDEN>
 (message from Ship Mints on Wed, 19 Mar 2025 13:04:32 -0400)
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 <CAN+1HbpUvWUmtWs9dwmGraVLJ+D599XwKD9Bg-8720-Yb65F6w@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Ship Mints <shipmints@HIDDEN>
> Date: Wed, 19 Mar 2025 13:04:32 -0400
> 
> On Wed, Mar 19, 2025 at 12:57 PM Ship Mints <shipmints@HIDDEN> wrote:
> 
>  This avoids duplicate projects accessed via symlinks that share resolved directory locations.  This has
>  bothered me for a while, so here we go.
> 
> FWIW, I consider this a bug and would like to see this in Emacs 30.2.

Let's first discuss how to fix the original problem.  If it turns out
that the best fix is what you proposed (and I explained why I'm not
sure it is), then it's unlikely to be in Emacs 30.2 because it changes
behavior as a side effect of the fix, and that change could cause more
serious problems.

Thanks.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 19 Mar 2025 17:10:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 19 13:10:28 2025
Received: from localhost ([127.0.0.1]:52921 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tuww0-000699-27
	for submit <at> debbugs.gnu.org; Wed, 19 Mar 2025 13:10:28 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:48070)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tuwvx-00068u-AP
 for 77122 <at> debbugs.gnu.org; Wed, 19 Mar 2025 13:10:25 -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 <eliz@HIDDEN>)
 id 1tuwvq-0002b5-NE; Wed, 19 Mar 2025 13:10:19 -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=PLafX9DmErfUMMdYG7aP8eQLE81FMvmDBBexxiZBKS0=; b=D1q4FaLzluxw
 mfPEqWd27o2wUEJ1J7AV1iu3MuptJax5YAiBIs5jSLgXo3gTcvl4E6o2TSJr5n5remdinTfHYghIh
 O/FeXfvlWIb0DBM53TdTI1YdRAVGPoabcLGA5kLQiJMiWqm1RAsvKfev+0YyOsRMGGeSIBMEDN1R3
 20RW4BPxXnrQju4uRZY0NypdFU2NKoXT3sqWzAPzrDT6TVLwEp+1i+E7QGDQTH7rtn3Cri+59tbhv
 MOx3EiDExAam3XNeVHlzmKWJAzqV//anX/hIhaQxILf2Fr9a30I4V+z4lpLcjGujL9WFPscXm7QSd
 v2QLKt4hlKIXOL7m8gOV5w==;
Date: Wed, 19 Mar 2025 19:09:44 +0200
Message-Id: <861putoskn.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Ship Mints <shipmints@HIDDEN>
In-Reply-To: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
 (message from Ship Mints on Wed, 19 Mar 2025 12:55:09 -0400)
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 77122
Cc: 77122 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Ship Mints <shipmints@HIDDEN>
> Date: Wed, 19 Mar 2025 12:55:09 -0400
> 
> This avoids duplicate projects accessed via symlinks that share resolved directory locations.  This has
> bothered me for a while, so here we go.
> 
> From 074905ff365c6bcd7cbcf72e0158ae9db0908a20 Mon Sep 17 00:00:00 2001
> From: shipmints <shipmints@HIDDEN>
> Date: Wed, 19 Mar 2025 12:50:28 -0400
> Subject: [PATCH] project--find-in-directory resolves symlinks (bug#xxx)
> 
> This avoids duplicate projects that share resolved directory locations.
> 
> * lisp/progmodes/project.el (project--find-in-directory): Invoke
> 'project-find-functions' on 'file-truename' resolved dir.
> ---
>  lisp/progmodes/project.el | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
> index 4eac541167a..45f5328f6be 100644
> --- a/lisp/progmodes/project.el
> +++ b/lisp/progmodes/project.el
> @@ -251,6 +251,10 @@ project-current
>      pr))
>  
>  (defun project--find-in-directory (dir)
> +  "Invoke `project-find-functions' for DIR.
> +DIR is resolved to its true name, 'chasing' symbolic links, to avoid
> +duplicate projects that share resolved directory locations."
> +  (setq dir (file-truename dir))

That's not necessarily what the user will want, since it changes the
name of the file (and potentially its directory as well).  If the file
or the directory have some "magical" name that matters, this will
backfire.

I think it is better to detect the fact that two directories point to
the same place via symlinks (e.g., with file-equal-p), and avoid
duplication in that case, but without actually substituting the file's
name by its truename.

But of course the final word is for Dmitry.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at 77122 <at> debbugs.gnu.org:


Received: (at 77122) by debbugs.gnu.org; 19 Mar 2025 17:04:54 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 19 13:04:54 2025
Received: from localhost ([127.0.0.1]:52910 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tuwqc-0005nx-4f
	for submit <at> debbugs.gnu.org; Wed, 19 Mar 2025 13:04:54 -0400
Received: from mail-vk1-xa34.google.com ([2607:f8b0:4864:20::a34]:48335)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1tuwqY-0005ni-Mz
 for 77122 <at> debbugs.gnu.org; Wed, 19 Mar 2025 13:04:51 -0400
Received: by mail-vk1-xa34.google.com with SMTP id
 71dfb90a1353d-5259327a937so180221e0c.0
 for <77122 <at> debbugs.gnu.org>; Wed, 19 Mar 2025 10:04:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742403884; x=1743008684; darn=debbugs.gnu.org;
 h=to:subject:message-id:date:from:in-reply-to:references:mime-version
 :from:to:cc:subject:date:message-id:reply-to;
 bh=V6pe4UAk1hQPQjR9/lF2ri3nkuN9EDoUZuoOkJ6DzbI=;
 b=JwHwZT1h8cuC/YFUarYBomOXeKQbkA6/eq3kImF7TD8N32WKXFl8wApFK2o4q5sTsr
 8ZHLlM223ADrLpzxVaU3huNLVZI/+U5dQegGyZaUPkkB2C0LqA14mJ3MgFTAgg6oRxQ7
 dWNuPJOYEGAzaxKBQih+sRquGJyyqQYmPXAnnKA7eyWA9S8obN7UJfmbK16YgHGADCdo
 CcbNPwCKhOMwQFSvzobNePzRI5z5wckssSlv8Z1GUQz4SrEJJiWDvLaJzWZawLb+9eEI
 1+3bnyM5KDTIs2uW4XHHz4PtaVBBxMaDhiV2efPg70KoX/48WA6frOr39wuaFTwaUtLP
 KFDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742403884; x=1743008684;
 h=to:subject:message-id:date:from:in-reply-to:references:mime-version
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=V6pe4UAk1hQPQjR9/lF2ri3nkuN9EDoUZuoOkJ6DzbI=;
 b=Y0BVJN3Pl9utn6sld2Xn+7suggoxAIWbgUcFQhh9m0PeXdee1aORqCUD+VQJ4IQANX
 HpiCRViiQBy60fvHdzMCoBXsyXN9PnRpy/zknn0lL/0PoMZPsibWz8cMjINnJtPS8aZa
 zXW8EAqpd/924e7kd9BeXEivM//HGglDpPECvXih8z7DsAra3Aiz/1vMY3W1H97OqH/N
 90XFVi2A+AFyt9PguSVmwfGZ2agKqmgWrVq+o2YrFK67AV7yJ7YBykUPKMS4exhSVJU1
 VqFbd0t3onkyJGCdeyd9PmmM0UmNimCLchSuD3Yk6iL/ZKMiN2kXywsKdfNsr4hn4GOR
 /zwQ==
X-Gm-Message-State: AOJu0Yz/7uIlJYflqVcrxXee6iAekCDSskJr8mME9UDot6oj8cBfy0oL
 FOQysrkMVzJcBrfntxpYhpEvhFPY3a4ujs13CNYluNisOlwH+fHMdwe1giCCddG0owBE8WiZ7z2
 K30P1EL9jtZDgPz5khm0cWFGhyBM3Yg==
X-Gm-Gg: ASbGnctFO9ToGb2dkynV1uV2bPI3c8Ux8PVXKlfRo71iu7lJE6nTuwHdMsukmFRInNy
 92IjNYLYCNpY+4yAORYq6gYwLcVm7mnkdbj9IwdaPK1byuemOVTiHqfCLZBHOy60xLrTldB2dh1
 sPfIahdMVKnAgCgx1a62tChhHeOw==
X-Google-Smtp-Source: AGHT+IHA78FZcfvjtB7aac1rQnGp+yd8zr7klh/qNydacoikwGaq7+/a5nSRAu3xTLFQFm26IU6zxOumPaNV40FkCvs=
X-Received: by 2002:a05:6122:2487:b0:51f:fc9d:875d with SMTP id
 71dfb90a1353d-52589218085mr2529937e0c.8.1742403883641; Wed, 19 Mar 2025
 10:04:43 -0700 (PDT)
MIME-Version: 1.0
References: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
In-Reply-To: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Wed, 19 Mar 2025 13:04:32 -0400
X-Gm-Features: AQ5f1Jo4m6BhvIJ4REKKoG0XnvL6GfqB2TAKbH0OVjVTZZaZAXvRXdYQZwHi6HI
Message-ID: <CAN+1HbpUvWUmtWs9dwmGraVLJ+D599XwKD9Bg-8720-Yb65F6w@HIDDEN>
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
To: 77122 <at> debbugs.gnu.org
Content-Type: multipart/alternative; boundary="0000000000008a30ee0630b50410"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 77122
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0000000000008a30ee0630b50410
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Mar 19, 2025 at 12:57=E2=80=AFPM Ship Mints <shipmints@HIDDEN> w=
rote:

> This avoids duplicate projects accessed via symlinks that share resolved
> directory locations.  This has bothered me for a while, so here we go.
>

FWIW, I consider this a bug and would like to see this in Emacs 30.2.

--0000000000008a30ee0630b50410
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Wed, Mar 19, 2025 at 12:57=E2=80=AFPM Ship Mints &lt;<a href=3D"mailto:s=
hipmints@HIDDEN">shipmints@HIDDEN</a>&gt; wrote:</span></div></div><d=
iv class=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2=
04);padding-left:1ex"><div dir=3D"ltr"><div style=3D"font-family:monospace"=
>This avoids duplicate projects accessed via symlinks that share resolved d=
irectory locations.=C2=A0 This has bothered me for a while, so here we go.<=
/div></div></blockquote><div><br></div><div class=3D"gmail_default" style=
=3D"font-family:monospace">FWIW, I consider this a bug and would like to se=
e this in Emacs 30.2.</div></div></div>

--0000000000008a30ee0630b50410--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 19 Mar 2025 16:55:44 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 19 12:55:43 2025
Received: from localhost ([127.0.0.1]:52845 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tuwhj-0005LO-6T
	for submit <at> debbugs.gnu.org; Wed, 19 Mar 2025 12:55:43 -0400
Received: from lists.gnu.org ([2001:470:142::17]:55394)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1tuwha-0005Ki-4L
 for submit <at> debbugs.gnu.org; Wed, 19 Mar 2025 12:55:34 -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 <shipmints@HIDDEN>)
 id 1tuwhS-0007iv-Mh
 for bug-gnu-emacs@HIDDEN; Wed, 19 Mar 2025 12:55:26 -0400
Received: from mail-ua1-x92c.google.com ([2607:f8b0:4864:20::92c])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <shipmints@HIDDEN>)
 id 1tuwhO-0005XP-9P
 for bug-gnu-emacs@HIDDEN; Wed, 19 Mar 2025 12:55:26 -0400
Received: by mail-ua1-x92c.google.com with SMTP id
 a1e0cc1a2514c-86d36e41070so3044218241.3
 for <bug-gnu-emacs@HIDDEN>; Wed, 19 Mar 2025 09:55:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742403320; x=1743008120; darn=gnu.org;
 h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
 :date:message-id:reply-to;
 bh=zS47ZbSoH74qnIXFSztIC8uMHoVwRXYtCRCt4f8A0ZM=;
 b=N+SYg6ycsLMlNG/zBnyf1J8k0dHnaJcAIIFyB0E/M/nf3nHJar6kvlf2bYIq23Ul4M
 FQyaML+PUzGVcL6D3Hpi7zn0+e80mt4PJX7jsurGV4jrTZx+5abg9zFYFSsY+6H0cmKq
 6XHtT86ioaYH5vVZvRkXnUpvNUSpgkoaUBF6nue40mbhkE8m+Xk9i0dy7zrPMSvQ+QYW
 RYrvVPGSH1R8SQhHlElxRtdxrrh72IbB20g1Xx3zcmEmGCsoejWGgpE97Fh3hhULz64N
 0z6kK9Jo8jpCf3Qgz6PepZIRi/qmSt0yidhh7kjU+hGJAiNyyM6UHO+EAT0X7C7t965x
 To/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742403320; x=1743008120;
 h=to:subject:message-id:date:from:mime-version:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=zS47ZbSoH74qnIXFSztIC8uMHoVwRXYtCRCt4f8A0ZM=;
 b=LVLW7ctEAioAJQCTRAgjWFvtP8MFhMa09CEnpMIqW7u5I9f6afZ1YQED+DFDYwjJQh
 btBVHUoqiOYSERzYdBdvDNA6nnUp0H1y54FrJSf6lstq1EZu12AvR74orsRoQ6qtNnrO
 MFDByTuP3paheXgT3U68Y+r4Xi3UtLjMZWLdekvTkOOxo+hk6c/0/wXrvR+voJAiYyp/
 m8fxtFNoaYKXJ+m+AhzyKvelmDdm2g9bjKXE57qJCVnZEuupNIG/rKyEsZj5gt2r7VOi
 35sbbyhdk+PS0DRRjCgmfNAsOBBJ671kobYULJps4GYxI/X6XzdTneVsn4DjlmTY/1Xo
 NzXg==
X-Gm-Message-State: AOJu0Yx8/MPrGKeBH5+z6jwJ8scneL4zWLHPGPhjMtaZSVmpBXDdXavr
 2ibENs3seQgHIJWMo5snNNiOEyyUC9e6ETZwZTJgh2uilrbo6ahTMExk/0MfOQWiSqbRb1i65cF
 aO//hfmA/OcLG8fe5ZkE0dC2bQhVVyaN3
X-Gm-Gg: ASbGnctCWYFauf8bW5/e0ucr5iC6a+daFaz8hzpkYERK3a0C19nJk0L/N4J+QxP6YB3
 tyCv4oVxW8lr/7g8b12haDvAxenocHg47xQCq6IVMFX1Onnhnniinfu7Z6BzC09XCTMgLi7hD7X
 dFC/Rv9mTkqnos8lfka56cWApPzg==
X-Google-Smtp-Source: AGHT+IEWZm2qxSha/kXSQo3xH7DwMmNEGq8JfB8m21zs8IkTSi+sPPwhMMtX2HDJGcZnmUkaRFQoLc3e8zwxwvglSuI=
X-Received: by 2002:a05:6102:80a0:b0:4bb:9b46:3f87 with SMTP id
 ada2fe7eead31-4c4ec648ba3mr3070557137.6.1742403320352; Wed, 19 Mar 2025
 09:55:20 -0700 (PDT)
MIME-Version: 1.0
From: Ship Mints <shipmints@HIDDEN>
Date: Wed, 19 Mar 2025 12:55:09 -0400
X-Gm-Features: AQ5f1JqofVhzCC_GcTdP5DG0ISviAKJ3KDAazXTAP91jahlSti7lBm4p8AWc2Ns
Message-ID: <CAN+1HbqXwBNM1m=DLXBzAakoPCza-e5GiZ9UWo1yiwsp87WZZA@HIDDEN>
Subject: [PATCH] project--find-in-directory resolves symlinks
To: bug-gnu-emacs@HIDDEN
Content-Type: multipart/mixed; boundary="000000000000f72ed60630b4e208"
Received-SPF: pass client-ip=2607:f8b0:4864:20::92c;
 envelope-from=shipmints@HIDDEN; helo=mail-ua1-x92c.google.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, FREEMAIL_FROM=0.001,
 HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)

--000000000000f72ed60630b4e208
Content-Type: multipart/alternative; boundary="000000000000f72ed50630b4e206"

--000000000000f72ed50630b4e206
Content-Type: text/plain; charset="UTF-8"

This avoids duplicate projects accessed via symlinks that share resolved
directory locations.  This has bothered me for a while, so here we go.

-Stephane

--000000000000f72ed50630b4e206
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">This avoids duplicate projects accessed via symlinks that share resolved=
 directory locations.=C2=A0 This has bothered me for a while, so here we go=
.<br></div><div class=3D"gmail_default" style=3D"font-family:monospace"><br=
></div><div class=3D"gmail_default" style=3D"font-family:monospace">-Stepha=
ne</div></div>

--000000000000f72ed50630b4e206--

--000000000000f72ed60630b4e208
Content-Type: application/octet-stream; 
	name="0001-project-find-in-directory-resolves-symlinks-bug-xxx.patch"
Content-Disposition: attachment; 
	filename="0001-project-find-in-directory-resolves-symlinks-bug-xxx.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_m8g5xb0w0>
X-Attachment-Id: f_m8g5xb0w0

RnJvbSAwNzQ5MDVmZjM2NWM2YmNkN2NiY2Y3MmUwMTU4YWU5ZGIwOTA4YTIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBzaGlwbWludHMgPHNoaXBtaW50c0BnbWFpbC5jb20+CkRhdGU6
IFdlZCwgMTkgTWFyIDIwMjUgMTI6NTA6MjggLTA0MDAKU3ViamVjdDogW1BBVENIXSBwcm9qZWN0
LS1maW5kLWluLWRpcmVjdG9yeSByZXNvbHZlcyBzeW1saW5rcyAoYnVnI3h4eCkKClRoaXMgYXZv
aWRzIGR1cGxpY2F0ZSBwcm9qZWN0cyB0aGF0IHNoYXJlIHJlc29sdmVkIGRpcmVjdG9yeSBsb2Nh
dGlvbnMuCgoqIGxpc3AvcHJvZ21vZGVzL3Byb2plY3QuZWwgKHByb2plY3QtLWZpbmQtaW4tZGly
ZWN0b3J5KTogSW52b2tlCidwcm9qZWN0LWZpbmQtZnVuY3Rpb25zJyBvbiAnZmlsZS10cnVlbmFt
ZScgcmVzb2x2ZWQgZGlyLgotLS0KIGxpc3AvcHJvZ21vZGVzL3Byb2plY3QuZWwgfCA0ICsrKysK
IDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9saXNwL3Byb2dt
b2Rlcy9wcm9qZWN0LmVsIGIvbGlzcC9wcm9nbW9kZXMvcHJvamVjdC5lbAppbmRleCA0ZWFjNTQx
MTY3YS4uNDVmNTMyOGY2YmUgMTAwNjQ0Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL3Byb2plY3QuZWwK
KysrIGIvbGlzcC9wcm9nbW9kZXMvcHJvamVjdC5lbApAQCAtMjUxLDYgKzI1MSwxMCBAQCBwcm9q
ZWN0LWN1cnJlbnQKICAgICBwcikpCiAKIChkZWZ1biBwcm9qZWN0LS1maW5kLWluLWRpcmVjdG9y
eSAoZGlyKQorICAiSW52b2tlIGBwcm9qZWN0LWZpbmQtZnVuY3Rpb25zJyBmb3IgRElSLgorRElS
IGlzIHJlc29sdmVkIHRvIGl0cyB0cnVlIG5hbWUsICdjaGFzaW5nJyBzeW1ib2xpYyBsaW5rcywg
dG8gYXZvaWQKK2R1cGxpY2F0ZSBwcm9qZWN0cyB0aGF0IHNoYXJlIHJlc29sdmVkIGRpcmVjdG9y
eSBsb2NhdGlvbnMuIgorICAoc2V0cSBkaXIgKGZpbGUtdHJ1ZW5hbWUgZGlyKSkKICAgOzsgVXNl
ICdpZ25vcmUtZXJyb3InIHdoZW4gMjcuMSBpcyB0aGUgbWluaW11bSBzdXBwb3J0ZWQuCiAgIChj
b25kaXRpb24tY2FzZSBuaWwKICAgICAgIChydW4taG9vay13aXRoLWFyZ3MtdW50aWwtc3VjY2Vz
cyAncHJvamVjdC1maW5kLWZ1bmN0aW9ucyBkaXIpCi0tIAoyLjQ3LjEKCg==
--000000000000f72ed60630b4e208--




Acknowledgement sent to Ship Mints <shipmints@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#77122; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Wed, 26 Mar 2025 13:15:01 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.