From: Ramkumar Ramachandra Date: Sun, 26 Sep 2010 15:21:55 GMT Subject: [PATCH 1/2] sh-setup: Write a new require_clean_work_tree function Message-ID: <1285514516-5112-2-git-send-email-artagnon@gmail.com> In-Reply-To: <4C9E07B1.50600@workspacewhiz.com> Write a new require_clean_work_tree function to error out when working tree contains unstaged changes or index contains uncommitted changes. Signed-off-by: Ramkumar Ramachandra --- git-sh-setup.sh | 23 +++++++++++++++++++++++ 1 files changed, 23 insertions(+), 0 deletions(-) diff --git a/git-sh-setup.sh b/git-sh-setup.sh index 6131670..3a337da 100644 --- a/git-sh-setup.sh +++ b/git-sh-setup.sh @@ -145,6 +145,29 @@ require_work_tree () { die "fatal: $0 cannot be used without a working tree." } +require_clean_work_tree () { + # Update the index + git update-index -q --ignore-submodules --refresh + + # Disallow unstaged changes in the working tree + if ! git diff-files --quiet --ignore-submodules -- + then + echo >&2 "cannot $1: you have unstaged changes." + echo >&2 "Please commit or stash them." + git diff-files --name-status -r --ignore-submodules -- >&2 + exit 1 + fi + + # Disallow uncommitted changes in the index + if ! git diff-index --cached --quiet --ignore-submodules HEAD -- + then + echo >&2 "cannot $1: your index contains uncommitted changes." + echo >&2 "Please commit or stash them." + git diff-index --cached --name-status -r --ignore-submodules HEAD -- >&2 + exit 1 + fi +} + get_author_ident_from_commit () { pick_author_script=' /^author /{ -- 1.7.2.2.409.gdbb11.dirty