39 lines
		
	
	
		
			868 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			39 lines
		
	
	
		
			868 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/sh
 | |
| report () {
 | |
|   header="#
 | |
| # $1:
 | |
| #   ($2)
 | |
| #
 | |
| "
 | |
|   trailer=""
 | |
|   while read oldmode mode oldsha sha status name newname
 | |
|   do
 | |
|     echo -n "$header"
 | |
|     header=""
 | |
|     trailer="#
 | |
| "
 | |
|     case "$status" in
 | |
|     M ) echo "#	modified: $name";;
 | |
|     D*) echo "#	deleted:  $name";;
 | |
|     T ) echo "#	typechange: $name";;
 | |
|     C*) echo "#	copied: $name -> $newname";;
 | |
|     R*) echo "#	renamed: $name -> $newname";;
 | |
|     A*) echo "#	new file: $name";;
 | |
|     U ) echo "#	unmerged: $name";;
 | |
|     esac
 | |
|   done
 | |
|   echo -n "$trailer"
 | |
|   [ "$header" ]
 | |
| }
 | |
| 
 | |
| git-update-cache --refresh >& /dev/null
 | |
| git-diff-cache -M --cached HEAD | sed 's/^://' | report "Updated but not checked in" "will commit"
 | |
| committable="$?"
 | |
| git-diff-files | sed 's/^://' | report "Changed but not updated" "use git-update-cache to mark for commit"
 | |
| if [ "$committable" == "0" ]
 | |
| then
 | |
| 	echo "nothing to commit"
 | |
| 	exit 1
 | |
| fi
 | |
| exit 0
 |