aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2019-01-23 18:41:55 +0000
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2019-01-23 18:57:00 +0000
commit0f97f15a8d183c6b14894f47c40968e92104181d (patch)
tree2f95bc4c23927f4a7c307be6d6b7170f9d421e02
parent8a0ebd90913231285e443df024b7d2958d0b8bc9 (diff)
Removing files ending with a ~ in the git checkout hook
While editing files, some editors create temporary `~' files that can cause problems in metastore's ability to delete their host directory if its not on the other branch. With this commit, a `find' call was added to the post checkout Git hook to remove such temporary files before metastore is called. Also, some comments were added to both git hooks to make them easier to understand for a beginner.
-rw-r--r--.file-metadatabin4430 -> 3774 bytes
-rw-r--r--reproduce/src/bash/git-post-checkout8
-rw-r--r--reproduce/src/bash/git-pre-commit6
-rw-r--r--reproduce/src/make/dependencies.mk7
4 files changed, 18 insertions, 3 deletions
diff --git a/.file-metadata b/.file-metadata
index c6aa9d2..04c25e5 100644
--- a/.file-metadata
+++ b/.file-metadata
Binary files differ
diff --git a/reproduce/src/bash/git-post-checkout b/reproduce/src/bash/git-post-checkout
index 25dc2ac..e2a0fd0 100644
--- a/reproduce/src/bash/git-post-checkout
+++ b/reproduce/src/bash/git-post-checkout
@@ -9,8 +9,13 @@
# special characters for the installation location of meta-store so our own
# installation is found by Git.
+# File containig the metadata.
MSFILE=".file-metadata"
+# Delete all temporary files
+find @TOP_PROJECT_DIR@/ -name "*~" -type f -delete
+
+# Function to help in reporting a crash.
exit_on_fail() {
"$@"
if [ $? -ne 0 ]; then
@@ -19,12 +24,15 @@ exit_on_fail() {
fi
}
+# Check if the metadata file exists.
if [ ! -e "$MSFILE" ]; then
echo "\"$MSFILE\" missing" >&2
exit 1
fi
+# Run metastore.
exit_on_fail \
@BINDIR@/metastore -a -m -e -E -q -O @USER@ -G @GROUP@ -f "$MSFILE"
+# Return with a success code (0).
exit 0
diff --git a/reproduce/src/bash/git-pre-commit b/reproduce/src/bash/git-pre-commit
index dbf7dc6..ca28757 100644
--- a/reproduce/src/bash/git-pre-commit
+++ b/reproduce/src/bash/git-pre-commit
@@ -20,8 +20,10 @@
# git reset HEAD -- .metadata
# git checkout HEAD -- .metadata
+# File containig the metadata.
MSFILE=".file-metadata"
+# Function to help in reporting a crash.
exit_on_fail() {
"$@"
if [ $? -ne 0 ]; then
@@ -30,6 +32,7 @@ exit_on_fail() {
fi
}
+# Run metastore.
exit_on_fail \
@BINDIR@/metastore -O @USER@ -G @GROUP@ -s -f "$MSFILE"
@@ -39,12 +42,15 @@ if ! git-ls-tree --name-only HEAD 2>/dev/null | grep -Fqx "$MSFILE"; then
@BINDIR@/metastore -O @USER@ -G @GROUP@ -s -f "$MSFILE"
fi
+# Check if the metadata file exists.
if [ ! -e "$MSFILE" ]; then
echo "\"$MSFILE\" missing" >&2
exit 1
fi
+# Add the metadata file to the Git repository.
exit_on_fail \
git-add "$MSFILE"
+# Return with a success code (0).
exit 0
diff --git a/reproduce/src/make/dependencies.mk b/reproduce/src/make/dependencies.mk
index e9023b4..1cc2b00 100644
--- a/reproduce/src/make/dependencies.mk
+++ b/reproduce/src/make/dependencies.mk
@@ -384,9 +384,10 @@ $(ibdir)/metastore: $(tdir)/metastore-$(metastore-version).tar.gz \
cd $$current_dir
if [ -f $@ ]; then
for f in pre-commit post-checkout; do
- sed -e's|@USER[@]|'$$user'|g' \
- -e's|@GROUP[@]|'$$group'|g' \
- -e's|@BINDIR[@]|$(ibdir)|g' \
+ sed -e's|@USER[@]|'$$user'|g' \
+ -e's|@GROUP[@]|'$$group'|g' \
+ -e's|@BINDIR[@]|$(ibdir)|g' \
+ -e's|@TOP_PROJECT_DIR[@]|'$$current_dir'|g' \
reproduce/src/bash/git-$$f > .git/hooks/$$f
chmod +x .git/hooks/$$f
done