# [PATCH] Define a shell function to check tree cleanness.

1 messages from 2005-08-26 to 2005-08-26. Participants: Junio C Hamano.
Thread: https://gitlist.dev/t/1650

## Junio C Hamano, 2005-08-26 08:03

Subject: [PATCH] Define a shell function to check tree cleanness.
Message-ID: <7vhdddgm5f.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vhdddgm5f.fsf%40assigned-by-dhcp.cox.net

```
This would be used in places where we require a clean tree, such
as reverting and rebasing.

Signed-off-by: Junio C Hamano <junkio@cox.net>

---

 git-sh-setup-script |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

1de6046ded332e2278320be314f7a5e31a431e14
diff --git a/git-sh-setup-script b/git-sh-setup-script
--- a/git-sh-setup-script
+++ b/git-sh-setup-script
@@ -11,6 +11,17 @@ die() {
 	exit 1
 }
 
+check_clean_tree() {
+    dirty1_=`git-update-cache -q --refresh` && {
+    dirty2_=`git-diff-cache --name-only --cached HEAD`
+    case "$dirty2_" in '') : ;; *) (exit 1) ;; esac
+    } || {
+	echo >&2 "$dirty1_"
+	echo "$dirty2_" | sed >&2 -e 's/^/modified: /'
+	(exit 1)
+    }
+}
+
 [ -d "$GIT_DIR" ] &&
 [ -d "$GIT_DIR/refs" ] &&
 [ -d "$GIT_OBJECT_DIRECTORY" ] &&

```
