3 # Copyright (c) 2005 Linus Torvalds
6 . git-sh-setup-script || die
"Not a git archive"
9 die
'git commit [-m existing-commit] [<path>...]'
13 while case "$#" in 0) break ;; esac
19 *) use_commit
=`git-rev-parse "$1"` ||
24 files
=($
(git-diff-files
--name-only))\
32 git-update-cache
-q --refresh -- "$@" "${files[@]}" ||
exit 1
34 if [ ! -r "$GIT_DIR/HEAD" ]; then
35 if [ -z "$(git-ls-files)" ]; then
36 echo Nothing to commit
1>&2
41 echo "# Initial commit"
43 git-ls-files |
sed 's/^/# New file: /'
48 if [ -f "$GIT_DIR/MERGE_HEAD" ]; then
50 echo "# It looks like your may be committing a MERGE."
51 echo "# If this is not correct, please remove the file"
52 echo "# $GIT_DIR/MERGE_HEAD"
53 echo "# and try again"
55 PARENTS
="-p HEAD -p MERGE_HEAD"
56 elif test "$use_commit" != ""
61 s/^author \([^<]*\) <[^>]*> .*$/\1/
63 s
/.
*/GIT_AUTHOR_NAME
='\''&'\''/p
66 s
/^author
[^
<]* <\
([^
>]*\
)> .
*$
/\
1/
68 s/.*/GIT_AUTHOR_EMAIL='\''&'\''/p
71 s/^author [^<]* <[^>]*> \(.*\)$/\1/
73 s
/.
*/GIT_AUTHOR_DATE
='\''&'\''/p
78 set_author_env=`git-cat-file commit "$use_commit" |
79 sed -ne "$pick_author_script"`
80 eval "$set_author_env"
81 export GIT_AUTHOR_NAME
82 export GIT_AUTHOR_EMAIL
83 export GIT_AUTHOR_DATE
84 git-cat-file commit "$use_commit" |
87 git-status-script >>.editmsg
97 ${VISUAL:-${EDITOR:-vi}} .editmsg
100 grep -v '^
#' < .editmsg | git-stripspace > .cmitmsg
102 tree
=$
(git-write-tree
) &&
103 commit
=$
(cat .cmitmsg | git-commit-tree
$tree $PARENTS) &&
104 echo $commit > "$GIT_DIR/HEAD" &&
105 rm -f -- "$GIT_DIR/MERGE_HEAD"
107 rm -f .cmitmsg .editmsg