[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A project-files implementation for Git projects

From: Tassilo Horn
Subject: Re: A project-files implementation for Git projects
Date: Mon, 16 Sep 2019 15:32:45 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Dmitry Gutov <address@hidden> writes:

Hi Dmitry,

>> "hg files" doesn't seem to have a way to list untracked files.  Same
>> for subversion.
> I've only looked into Mercurial so far, and 'hg status -u' seems to do
> the trick.  Depending on performance, you could call 'hg status -c -u',
> or augment the output of 'hg files' with a call to 'hg status -u'.

Ah, "hg status --all" lists all files including their state (untracked,
ignored, you-name-it), so that's the one we should use.  Performance
seems to be the same as for "hg files".

> Overall, I'm not 100% sure that we should use VC backend action here
> because it seems like we'll be fighting an impedance mismatch between
> what Git thinks its files are and what we want to see in the list of
> project files. We probably want to use Git because it's fast and
> flexible, but other VCSes are going to be less helpful. So if I were
> writing this myself I'd create a "fast path" for Git repos, and
> delegate to 'find' otherwise.

I think we can come up with a VC list-files operation which optionally
includes untracked and ignored files (where the latter implies the
former, doesn't it?) but I'd leave the filtering according to
project-vc-ignores to project.el.

How would project.el call such a VC list-files operation?  I guess you
would include untracked and also ignored files, right?  In my use-case,
the inclusion of ignored files would probably increase the size of the
list of files by a factor of at least 2 because for every *.java file in
our project, there's at least one ignored *.class file (but probably
more like 2-20 *.class files).  So a new defcustom or include ignored
files only if project-vc-ignores has a non-nil value?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]