 38cc7ab814
			
		
	
	38cc7ab814
	
	
	
		
			
			What we list as "Ignored files" are not "ignored". Rather, it is the list of "not listed in the to-be-ignored files, but exists -- you may be forgetting to add them". Pointed out by Daniel. Signed-off-by: Junio C Hamano <junkio@cox.net>
		
			
				
	
	
		
			107 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # Copyright (c) 2005 Linus Torvalds
 | |
| #
 | |
| . git-sh-setup || die "Not a git archive"
 | |
| 
 | |
| report () {
 | |
|   header="#
 | |
| # $1:
 | |
| #   ($2)
 | |
| #
 | |
| "
 | |
|   trailer=""
 | |
|   while read 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" ]
 | |
| }
 | |
| 
 | |
| branch=$(GIT_DIR="$GIT_DIR" git-symbolic-ref HEAD)
 | |
| case "$branch" in
 | |
| refs/heads/master) ;;
 | |
| *)	echo "# On branch $branch" ;;
 | |
| esac
 | |
| 
 | |
| git-update-index -q --unmerged --refresh || exit
 | |
| 
 | |
| if GIT_DIR="$GIT_DIR" git-rev-parse --verify HEAD >/dev/null 2>&1
 | |
| then
 | |
| 	git-diff-index -M --cached --name-status HEAD |
 | |
| 	sed -e '
 | |
| 		s/\\/\\\\/g
 | |
| 		s/ /\\ /g
 | |
| 	' |
 | |
| 	report "Updated but not checked in" "will commit"
 | |
| 
 | |
| 	committable="$?"
 | |
| else
 | |
| 	echo '#
 | |
| # Initial commit
 | |
| #'
 | |
| 	git-ls-files |
 | |
| 	sed -e '
 | |
| 		s/\\/\\\\/g
 | |
| 		s/ /\\ /g
 | |
| 		s/^/A /
 | |
| 	' |
 | |
| 	report "Updated but not checked in" "will commit"
 | |
| 
 | |
| 	committable="$?"
 | |
| fi
 | |
| 
 | |
| git-diff-files  --name-status |
 | |
| sed -e '
 | |
| 	s/\\/\\\\/g
 | |
| 	s/ /\\ /g
 | |
| ' |
 | |
| report "Changed but not updated" "use git-update-index to mark for commit"
 | |
| 
 | |
| 
 | |
| if test -f "$GIT_DIR/info/exclude"
 | |
| then
 | |
|     git-ls-files -z --others \
 | |
| 	--exclude-from="$GIT_DIR/info/exclude" \
 | |
|         --exclude-per-directory=.gitignore
 | |
| else
 | |
|     git-ls-files -z --others \
 | |
|         --exclude-per-directory=.gitignore
 | |
| fi |
 | |
| perl -e '$/ = "\0";
 | |
| 	my $shown = 0;
 | |
| 	while (<>) {
 | |
| 		chomp;
 | |
| 		s|\\|\\\\|g;
 | |
| 		s|\t|\\t|g;
 | |
| 		s|\n|\\n|g;
 | |
| 		s/^/#	/;
 | |
| 		if (!$shown) {
 | |
| 			print "#\n# Untracked files:\n";
 | |
| 			print "#   (use \"git add\" to add to commit)\n#\n";
 | |
| 			$shown = 1;
 | |
| 		}
 | |
| 		print "$_\n";
 | |
| 	}
 | |
| '
 | |
| 
 | |
| case "$committable" in
 | |
| 0)
 | |
| 	echo "nothing to commit"
 | |
| 	exit 1
 | |
| esac
 | |
| exit 0
 |