From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Tassilo Horn Newsgroups: gmane.emacs.devel Subject: Re: A project-files implementation for Git projects Date: Sat, 14 Sep 2019 18:26:57 +0200 Message-ID: <87pnk2zvvy.fsf@gnu.org> References: <8736h9rdc4.fsf@gnu.org> <87mufcfz1u.fsf@gnu.org> <87tv9kz2x6.fsf@gnu.org> <87a7bbjdwe.fsf@gnu.org> <87a7ba8uvx.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="10368"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Dmitry Gutov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Sep 14 18:27:09 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i9AtB-0002Yf-MM for ged-emacs-devel@m.gmane.org; Sat, 14 Sep 2019 18:27:09 +0200 Original-Received: from localhost ([::1]:51210 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i9AtA-0001wn-BF for ged-emacs-devel@m.gmane.org; Sat, 14 Sep 2019 12:27:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:33060) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i9At4-0001uC-Bw for emacs-devel@gnu.org; Sat, 14 Sep 2019 12:27:03 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:53985) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1i9At3-0008NH-8Z; Sat, 14 Sep 2019 12:27:01 -0400 Original-Received: from auth1-smtp.messagingengine.com ([66.111.4.227]:32927) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.82) (envelope-from ) id 1i9At2-0002XT-6g; Sat, 14 Sep 2019 12:27:00 -0400 Original-Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailauth.nyi.internal (Postfix) with ESMTP id BAD1D20F20; Sat, 14 Sep 2019 12:26:59 -0400 (EDT) Original-Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Sat, 14 Sep 2019 12:26:59 -0400 X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedufedrtdelgddutdduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufhfffgjkfgfgggtsehttdertddtredtnecuhfhrohhmpefvrghsshhi lhhoucfjohhrnhcuoehtshguhhesghhnuhdrohhrgheqnecukfhppeegiedrkedtrdejtd drvdehnecurfgrrhgrmhepmhgrihhlfhhrohhmpehthhhorhhnodhmvghsmhhtphgruhht hhhpvghrshhonhgrlhhithihqdekieejfeekjeekgedqieefhedvleekqdhtshguhheppe hgnhhurdhorhhgsehfrghsthhmrghilhdrfhhmnecuvehluhhsthgvrhfuihiivgeptd X-ME-Proxy: Original-Received: from thinkpad-t440p (p2e504619.dip0.t-ipconnect.de [46.80.70.25]) by mail.messagingengine.com (Postfix) with ESMTPA id A3AA380062; Sat, 14 Sep 2019 12:26:58 -0400 (EDT) Mail-Followup-To: Dmitry Gutov , emacs-devel@gnu.org In-Reply-To: (Dmitry Gutov's message of "Sat, 14 Sep 2019 03:29:32 +0300") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:240031 Archived-At: Dmitry Gutov writes: Hi Dmitry, > But we should get the details right, and IMO that means no > "differences in semantics", and it implies certain requirements on the > new VC backend action which we'll need to consider. Sure. > On 11.09.2019 23:01, Tassilo Horn wrote: >> here is a working solution for a VC list-files function. I've added >> implementations for Git, Hg, Bzr, and SVN plus a default >> implementation which probably does the right thing for all other >> handled VC backends. I guess Monotone also has the ability to >> quickly list all tracked files but I haven't been able to install it. > > I don't think there's a point in delegating to backends where the > performance will end up being worse. Though I see you added a faster > implementation for SVN later. As Eli said, just stat find is faster than, e.g., "bzr ls" on my GNU/Linux system doesn't mean much. One benefit is that if you have a bzr project, you'll have bzr installed. That doesn't need to be the case for find at least on Windows systems. >> I also added a vc `project-files' implementation which uses the VC >> list-files feature for backends in a new list-valued defcustom >> `project-vc-project-files-backends'. > > That implementation should both include untracked files (since it's > what we'd generally expect from it given the current Project API > semantics) and honor project-vc-ignores (which is something a user can > set via dir-locals, and I personally found quite useful). Hm, git can list untracked files, list ignored files, and also get a custom ignore pattern. "bzr ls" has an --unknown flag which should list unknown files and an --ignored flag to list ignored files, but in my version it then just lists nothing when I specify either one. "hg files" doesn't seem to have a way to list untracked files. Same for subversion. > Ideally it also should allow future support for whitelisting entries > (that override ignores returned by Git), though that's not there yet. > > All this makes creating new VC action more difficult, but I think we > can do that. Maybe not for all backends, but Git for sure, which will > help 95% of our audience. If you have an interface in mind (i.e., list-files all arguments and their meaning), I can try and check how far we can get. Bye, Tassilo