From: Ramkumar Ramachandra <artagnon@gmail.com>
To: Git List <git@vger.kernel.org>
Cc: Junio C Hamano <gitster@pobox.com>,
Jonathan Nieder <jrnieder@gmail.com>,
Joshua Jensen <jjensen@workspacewhiz.com>,
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Subject: [PATCH v2 1/2] sh-setup: Write a new require_clean_work_tree function
Date: Fri, 1 Oct 2010 01:33:36 +0530 [thread overview]
Message-ID: <1285877017-8060-2-git-send-email-artagnon@gmail.com> (raw)
In-Reply-To: <1285877017-8060-1-git-send-email-artagnon@gmail.com>
Write a new require_clean_work_tree function to error out when
unstaged changes are present in the working tree and (optionally)
uncommitted changes in the index.
Cc: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
git-sh-setup.sh | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 6131670..215ec33 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -145,6 +145,34 @@ 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
+ err=0
+
+ # Disallow unstaged changes in the working tree
+ if ! git diff-files --quiet --ignore-submodules --
+ then
+ echo >&2 "cannot $1: you have unstaged changes."
+ git diff-files --name-status -r --ignore-submodules -- >&2
+ err=1
+ fi
+
+ # Disallow uncommitted changes in the index
+ if ! git diff-index --cached --quiet HEAD --ignore-submodules --
+ then
+ echo >&2 "cannot $1: your index contains uncommitted changes."
+ git diff-index --cached --name-status -r --ignore-submodules HEAD -- >&2
+ err=1
+ fi
+
+ if [ $err = 1 ]
+ then
+ echo >&2 "Please commit or stash them."
+ exit 1
+ fi
+}
+
get_author_ident_from_commit () {
pick_author_script='
/^author /{
--
1.7.2.2.409.gdbb11.dirty
next prev parent reply other threads:[~2010-09-30 20:05 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-30 20:03 [PATCH v2 0/2] Eliminate cryptic "needs update" error message Ramkumar Ramachandra
2010-09-30 20:03 ` Ramkumar Ramachandra [this message]
2010-09-30 20:38 ` [PATCH v2 1/2] sh-setup: Write a new require_clean_work_tree function Junio C Hamano
2010-10-01 4:57 ` Ramkumar Ramachandra
2010-10-01 5:37 ` Jonathan Nieder
2010-10-01 7:21 ` Ramkumar Ramachandra
2010-10-01 7:40 ` Jonathan Nieder
2010-10-01 12:56 ` Ramkumar Ramachandra
2010-10-01 18:28 ` Jonathan Nieder
2010-10-01 20:22 ` Sverre Rabbelier
2010-10-02 4:32 ` [PATCH v2 0/2] Eliminate cryptic "needs update" error message Ramkumar Ramachandra
2010-10-02 4:32 ` [PATCH v2 1/2] sh-setup: Write a new require_clean_work_tree function Ramkumar Ramachandra
2010-10-02 4:37 ` Ramkumar Ramachandra
2010-10-02 4:37 ` [PATCH] SubmittingPatches: Document some extra tags used in commit messages Ramkumar Ramachandra
2010-10-01 15:07 ` [PATCH v2 1/2] sh-setup: Write a new require_clean_work_tree function Junio C Hamano
2010-09-30 20:03 ` [PATCH v2 2/2] Porcelain scripts: Rewrite cryptic "needs update" error message Ramkumar Ramachandra
2010-09-30 21:08 ` Junio C Hamano
2010-10-01 5:14 ` Ramkumar Ramachandra
2010-10-03 23:34 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1285877017-8060-2-git-send-email-artagnon@gmail.com \
--to=artagnon@gmail.com \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jjensen@workspacewhiz.com \
--cc=jrnieder@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.