{"thread":{"id":"15910","subject":"[Q] \"status\" of files in (a part of) the working tree","startedAt":"2008-10-15T07:53:42Z","lastAt":"2008-10-16T18:44:34Z","messageCount":2,"participants":["Brian Foster","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"93074","messageId":"200810150953.42279.brian.foster@innova-card.com","threadId":"15910","inReplyTo":null,"subject":"[Q] \"status\" of files in (a part of) the working tree","fromName":"Brian Foster","fromEmail":"brian.foster@innova-card.com","sentAt":"2008-10-15T07:53:42Z","receivedAt":"2008-10-15T07:53:42Z","isPatch":false,"sender":{"key":"brian.foster@innova-card.com","avatar":null},"body":"\nHello,\n\n For every file in a directory of my working tree,\n I want to obtain a quick \"status\" summary (ideally,\n recursively, i.e. descending into each sub-directory):\n E.g., not-tracked, latest modification is not in\n the index, latest modification is in the index,\n not-modified, and so on.  As a hypothetical example\n (`# comments' added to explain what the line means):\n\n    $ git some-cmd\n    ? foo      # not-tracked\n    - bar      # tracked, not-modified\n    M xyzzy    # tracked, last modification not-in-index\n    I plover   # tracked, last modification in-the-index\n     ...\n    $ \n\n The `git ls-files' command sort-of seems to almost do\n what I want, but not exactly.  For instance (this is\n written by hand but based on actual results):\n\n    $ git version\n    git version 1.6.0.2\n    $ git ls-files --exclude-standard --others --modified --cached -t\n    ? foo\n    H bar\n    H xyzzy\n    C xyzzy\n    ...\n    $ \n\n However, note that some files are listed twice (which\n is confusing for my purposes), and I'm uncertain I've\n specified all the magic to see all non-excluded files\n regardless of their \"status\".  Obviously, once I know\n the appropriate set of magic I should be able to write\n a filter to process the output and remove the unwanted\n duplicates, but I'm wondering if someone has a better\n suggestion?  Generalissimo Goggle didn't find any clews.\n\ncheers!\n\t-blf-\n\n-- \n“How many surrealists does it take to   | Brian Foster\n change a lightbulb? Three. One calms   | somewhere in south of France\n the warthog, and two fill the bathtub  |   Stop E$$o (ExxonMobil)!\n with brightly-coloured machine tools.” |      http://www.stopesso.com\n"},{"id":"93220","messageId":"20081016184434.GA14707@coredump.intra.peff.net","threadId":"15910","inReplyTo":"200810150953.42279.brian.foster@innova-card.com","subject":"Re: [Q] \"status\" of files in (a part of) the working tree","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2008-10-16T18:44:34Z","receivedAt":"2008-10-16T18:44:34Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Oct 15, 2008 at 09:53:42AM +0200, Brian Foster wrote:\n\n>  For every file in a directory of my working tree,\n>  I want to obtain a quick \"status\" summary (ideally,\n>  recursively, i.e. descending into each sub-directory):\n>  E.g., not-tracked, latest modification is not in\n>  the index, latest modification is in the index,\n>  not-modified, and so on.  As a hypothetical example\n>  (`# comments' added to explain what the line means):\n> \n>     $ git some-cmd\n>     ? foo      # not-tracked\n>     - bar      # tracked, not-modified\n>     M xyzzy    # tracked, last modification not-in-index\n>     I plover   # tracked, last modification in-the-index\n>      ...\n>     $ \n\nCheck out this thread:\n\n  http://thread.gmane.org/gmane.comp.version-control.git/97830/focus=98041\n\nHopefully Shawn will unveil his tool soon, and I expect there may be\nsome discussion about the preferred format.\n\n-Peff\n"}]}