diff options
-rwxr-xr-x | git-s | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -0,0 +1,20 @@ +#!/bin/sh + +# git-s -- selection-friendly git-status + +git status -s | perl -ne ' + push @{$x{$1}}, $2 if /^(.). (.*)/; + push @{$y{$1}}, $2 if /^.(.) (.*)/; + END { + delete $x{"?"}; + for ([">" => \%x], ["." => \%y]) { + ($n, $h) = @$_; + for (sort keys %$h) { + next if $_ eq " "; + print "$n$_"; + print " $_" for @{$h->{$_}}; + print "\n"; + } + } + } +' |