Thread (7 messages) flat view 7 messages, 5 authors, 2016-06-15

Re: Listing files in order they are changed

From: Jeff King <hidden>
Date: 2016-06-15 22:49:36

On Thu, Sep 23, 2010 at 11:51:56AM -0700, Parag Kalra wrote:
Is there a way I can make Git list all the tracked files in the
working directory in order they are changed (modified, added or
deleted)
It's a somewhat expensive operation, since you have to walk history
backwards looking at changes. But try:

git log --pretty=format: --name-only |
  grep . |
  perl -ne 'print unless $seen{$_}++'

which will walk history backwards, printing out each filename the most
recent time it is encountered. Which should give you a list of all files
in the repo (including ones which no longer exist!), in order of most
recent to oldest.

If you want to restrict only to existing files, you would have to do
some clever path-limiting, or parse the results with a slightly smarter
perl script.

You can also tweak the definition of "most recent" by using --topo-order
or --date-order with git log.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help