Jacob Helwig <jacob.helwig@xxxxxxxxx>: > On Thu, Apr 8, 2010 at 21:04, Eric Raymond <esr@xxxxxxxxxxxxxxxxx> wrote: > > I'm planning some work on Emacs VC mode. > > > > I need a command I can run on a path to tell if it's ignored by git. > > What about a variant of: > git ls-files -i -o --exclude-standard That will do nicely, thank you. There could be something better. Emacs VC mode, and other similar front ends, would be greatly aided by a command that lists all files, each with a status code it can understand. Our canonical list (omitting two that apply only to locking systems) is: 'up-to-date The working file is unmodified with respect to the latest version on the current branch, and not locked. 'edited The working file has been edited by the user. 'needs-update The file has not been edited by the user, but there is a more recent version on the current branch stored in the master file. 'needs-merge The file has been edited by the user, and there is also a more recent version on the current branch stored in the master file. This state can only occur if locking is not used for the file. 'added Scheduled to go into the repository on the next commit. 'removed Scheduled to be deleted from the repository on next commit. 'conflict The file contains conflicts as the result of a merge. 'missing The file is not present in the file system, but the VC system still tracks it. 'ignored The file showed up in a dir-status listing with a flag indicating the version-control system is ignoring it, 'unregistered The file is not under version control. The -t mode of ls-files appears to be almost what is wanted, but not quite. (Among other things, it does not list ignored files.) I request comment on some related questions: 1. How do these statuses map to git terminology? My tentative map, in terms of git file-list -t codes, is up-to-date = H? edited = C needs-update = no equivalent needs-merge = no equivalent added = no equivalent removed = K conflict = no equivalent missing = R ignored = no equivalent unregistered = no equivalent I am unclear on what your "unmerged" (M) status means. 2. I've played with various option combinations, but I can't seem to find one that lists these codes for all files. Is there one? 3. Is the use case for -t such that it would make sense to modify it so it does a complete listing? 4. If the answer to question 3 is 'yes', is there some Emacs user here who already knows git internals and would be willing to do this in order to help VC be faster and more effective? I would handle the VC end, of course. -- <a href="http://www.catb.org/~esr/">Eric S. Raymond</a> -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html