From eb154465c28a0a0aa604131b77ac17b8c8d5e29d Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Wed, 22 Oct 2025 14:25:48 -0600 Subject: [PATCH 01/19] Have pre-commit fail on default prefixes --- tools/pre-commit | 15 ++++++- .../remove_default_prefix.py | 40 +++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 tools/remove_default_prefix/remove_default_prefix.py diff --git a/tools/pre-commit b/tools/pre-commit index edf98a18..df175dff 100644 --- a/tools/pre-commit +++ b/tools/pre-commit @@ -18,9 +18,22 @@ fi # Get root directory of this git repository base_dir=$(git rev-parse --show-toplevel) -# Run the serializer set -x +# Verify that there are no default PREFIX statements in the ontology files +"${base_dir}/tools/remove_default_prefix/remove_default_prefix.py ${base_dir}/ontologies/" +rc=$? +#if [ ! ${rc} -eq 0 ] ; then +# exit 1 +#fi +# For repositories that have their ontology files in the project root directory +"${base_dir}/tools/remove_default_prefix/remove_default_prefix.py ${base_dir}/" +rc=$? +#if [ ! ${rc} -eq 0 ] ; then +# exit 1 +#fi + +# Run the serializer "${base_dir}/tools/serializer/pre-commit" rc=$? diff --git a/tools/remove_default_prefix/remove_default_prefix.py b/tools/remove_default_prefix/remove_default_prefix.py new file mode 100644 index 00000000..70d91de5 --- /dev/null +++ b/tools/remove_default_prefix/remove_default_prefix.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +import re, sys, pathlib + +# Get command line arguments +verbose = False +if "--verbose" in sys.argv: + sys.argv.remove("--verbose") + verbose = True + +if len(sys.argv) != 2: + print("INVALID ARGUMENTS! Usage: ", sys.argv[0], " path/to/ontology/files [--verbose]") + sys.exit(1) + +# Regex matches both Turtle (@prefix) and SPARQL (PREFIX) default declarations. +pattern = re.compile( + r'(?mi)^\s*(?:@prefix|prefix)\s*:\s*<[^>]+>\s*(?:\.\s*)?(?:#.*)?$' +) + +changed = False +for filePath in pathlib.Path(sys.argv[1]).glob("*.ttl"): + if verbose: + print("Checking for a default prefix in file: ", filePath) + currentText = filePath.read_text(encoding="utf-8") + newText = pattern.sub("", currentText).strip() + # Preserve the original file's trailing newlines + if currentText.endswith("\n\n"): + newText += "\n\n" + elif currentText.endswith("\n"): + newText += "\n" + if newText != currentText: + print("ERROR: there is a default PREFIX statement in file: ", filePath) + print("It must be removed from the file before you can commit your other changes.") + changed = True + # The following line would fix the file, then you would need to "git add filename" + # filePath.write_text(newText, encoding="utf-8") + # Exit 1 if anything changed, so you re-stage before committing. + +# Exit 1 to indicate there are default PREFIX to remove +# If no change was needed, exit 0 and let the commit proceed. +sys.exit(1 if changed else 0) From 427767f4af4a648915adae5dd1a0d4ca4f7d11ae Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Wed, 22 Oct 2025 20:11:13 -0600 Subject: [PATCH 02/19] Rename files --- .../check_default_prefix.py} | 0 tools/pre-commit | 20 +++++++++---------- tools/setup.cmd | 7 +++++-- 3 files changed, 14 insertions(+), 13 deletions(-) rename tools/{remove_default_prefix/remove_default_prefix.py => check_default_prefix/check_default_prefix.py} (100%) diff --git a/tools/remove_default_prefix/remove_default_prefix.py b/tools/check_default_prefix/check_default_prefix.py similarity index 100% rename from tools/remove_default_prefix/remove_default_prefix.py rename to tools/check_default_prefix/check_default_prefix.py diff --git a/tools/pre-commit b/tools/pre-commit index df175dff..388cf215 100644 --- a/tools/pre-commit +++ b/tools/pre-commit @@ -18,26 +18,24 @@ fi # Get root directory of this git repository base_dir=$(git rev-parse --show-toplevel) -set -x - # Verify that there are no default PREFIX statements in the ontology files -"${base_dir}/tools/remove_default_prefix/remove_default_prefix.py ${base_dir}/ontologies/" +"${base_dir}/tools/check_default_prefix/check_default_prefix.py" "${base_dir}/ontologies/" rc=$? -#if [ ! ${rc} -eq 0 ] ; then -# exit 1 -#fi +if [ ! ${rc} -eq 0 ] ; then + exit 1 +fi + # For repositories that have their ontology files in the project root directory -"${base_dir}/tools/remove_default_prefix/remove_default_prefix.py ${base_dir}/" +"${base_dir}/tools/check_default_prefix/check_default_prefix.py" "${base_dir}/" rc=$? -#if [ ! ${rc} -eq 0 ] ; then -# exit 1 -#fi +if [ ! ${rc} -eq 0 ] ; then + exit 1 +fi # Run the serializer "${base_dir}/tools/serializer/pre-commit" rc=$? -set +x # echo "RESULT == ${rc}" if [ ! ${rc} -eq 0 ] ; then diff --git a/tools/setup.cmd b/tools/setup.cmd index 2ca47d93..f7a23d93 100644 --- a/tools/setup.cmd +++ b/tools/setup.cmd @@ -19,13 +19,16 @@ set -x # Copy pre-commit to the git hooks directory cp "${base_dir}/tools/pre-commit" "${base_dir}/.git/hooks/" -# Make pre-commit hook executable. +# Make pre-commit hook executable. chmod +x "${base_dir}/.git/hooks/pre-commit" # Ensure that the serializer pre-commit hook is executable. chmod +x "${base_dir}/tools/serializer/pre-commit" -# Don't track executable flags on files in this repository (this is not a global setting). +# Ensure that the serializer pre-commit hook is executable. +chmod +x "${base_dir}/tools/check_default_prefix/check_default_prefix.py" + +# Don't track executable flags on files in this repository (this is not a global setting). git config core.filemode false # Exit linux shell From e5989c9add1afd0477109d768c695ee06872d2ff Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Wed, 22 Oct 2025 20:34:33 -0600 Subject: [PATCH 03/19] Fix code comment --- tools/setup.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/setup.cmd b/tools/setup.cmd index f7a23d93..205caf62 100644 --- a/tools/setup.cmd +++ b/tools/setup.cmd @@ -25,7 +25,7 @@ chmod +x "${base_dir}/.git/hooks/pre-commit" # Ensure that the serializer pre-commit hook is executable. chmod +x "${base_dir}/tools/serializer/pre-commit" -# Ensure that the serializer pre-commit hook is executable. +# Ensure that check_default_prefix.py is executable. chmod +x "${base_dir}/tools/check_default_prefix/check_default_prefix.py" # Don't track executable flags on files in this repository (this is not a global setting). From b66cb08cc039cb56d3021fedfd8e88c49ca840b4 Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Wed, 22 Oct 2025 23:15:42 -0600 Subject: [PATCH 04/19] Remove default prefix --- ontologies/gistCore.ttl | 1 - 1 file changed, 1 deletion(-) diff --git a/ontologies/gistCore.ttl b/ontologies/gistCore.ttl index f1f2ead1..05f311d9 100644 --- a/ontologies/gistCore.ttl +++ b/ontologies/gistCore.ttl @@ -1,4 +1,3 @@ -@prefix : . @prefix gist: . @prefix gistd: . @prefix owl: . From cd2cc139d825dbefda59722850312f38c7528dd8 Mon Sep 17 00:00:00 2001 From: StevenChalem Date: Thu, 23 Oct 2025 10:58:22 -0700 Subject: [PATCH 05/19] test hook --- ontologies/gistCore.ttl | 1 + 1 file changed, 1 insertion(+) diff --git a/ontologies/gistCore.ttl b/ontologies/gistCore.ttl index 05f311d9..f1f2ead1 100644 --- a/ontologies/gistCore.ttl +++ b/ontologies/gistCore.ttl @@ -1,3 +1,4 @@ +@prefix : . @prefix gist: . @prefix gistd: . @prefix owl: . From e5d6068d4af0ca32281619984762cb8de4504b21 Mon Sep 17 00:00:00 2001 From: StevenChalem Date: Thu, 23 Oct 2025 11:06:54 -0700 Subject: [PATCH 06/19] hook test --- ontologies/gistCore.ttl | 1 - 1 file changed, 1 deletion(-) diff --git a/ontologies/gistCore.ttl b/ontologies/gistCore.ttl index f1f2ead1..05f311d9 100644 --- a/ontologies/gistCore.ttl +++ b/ontologies/gistCore.ttl @@ -1,4 +1,3 @@ -@prefix : . @prefix gist: . @prefix gistd: . @prefix owl: . From bcc3974e81e7b78bed080d105df99e7335ed7912 Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Fri, 24 Oct 2025 13:53:05 -0600 Subject: [PATCH 07/19] Add release note. --- docs/release_notes/898-remove-default-prefix | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 docs/release_notes/898-remove-default-prefix diff --git a/docs/release_notes/898-remove-default-prefix b/docs/release_notes/898-remove-default-prefix new file mode 100644 index 00000000..f4f41396 --- /dev/null +++ b/docs/release_notes/898-remove-default-prefix @@ -0,0 +1,3 @@ +### Patch Updates + +- Added a test in the git pre-commit hook to check for default PREFIX declarations in ontology files and cause the commit to fail if it finds one. From 2797780159a8e86f0fc23a0f6814a0c02d038b60 Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Fri, 24 Oct 2025 13:54:28 -0600 Subject: [PATCH 08/19] Add release note. --- docs/release_notes/898-remove-default-prefix | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/release_notes/898-remove-default-prefix b/docs/release_notes/898-remove-default-prefix index f4f41396..0527225c 100644 --- a/docs/release_notes/898-remove-default-prefix +++ b/docs/release_notes/898-remove-default-prefix @@ -1,3 +1,4 @@ ### Patch Updates - Added a test in the git pre-commit hook to check for default PREFIX declarations in ontology files and cause the commit to fail if it finds one. + For this to work, the setup.cmd command needs to be re-run to update the git hook. From 53c9e01b7c20daff20b192d051df948711dece87 Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Fri, 24 Oct 2025 14:11:45 -0600 Subject: [PATCH 09/19] Update pre-commit to verify itself --- tools/pre-commit | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/tools/pre-commit b/tools/pre-commit index 388cf215..0dbfc159 100644 --- a/tools/pre-commit +++ b/tools/pre-commit @@ -2,6 +2,21 @@ # This file should be copied into the .git/hooks directory of the project. +# Get absolute path to this script +# SCRIPT=$(readlink -f "$0") +# SCRIPTPATH=$(dirname "$SCRIPT") + +# Get root directory of this git repository +base_dir=$(git rev-parse --show-toplevel) + +# Verify that the currently executing script is up to date. +file1="$0" # The current script +file2="$base_dir/tools/pre-commit" +if ! cmp -s "$file1" "$file2"; then + echo "ABORTED: the pre-commit hook is not up to date. Run ./tools/setup.cmd to fix." + exit 1 +fi + # Stops accidental commits to branches master, main, or develop. BRANCH=`git rev-parse --abbrev-ref HEAD` @@ -11,13 +26,6 @@ then exit 1 fi -# Get absolute path to this script -# SCRIPT=$(readlink -f "$0") -# SCRIPTPATH=$(dirname "$SCRIPT") - -# Get root directory of this git repository -base_dir=$(git rev-parse --show-toplevel) - # Verify that there are no default PREFIX statements in the ontology files "${base_dir}/tools/check_default_prefix/check_default_prefix.py" "${base_dir}/ontologies/" rc=$? @@ -43,3 +51,4 @@ if [ ! ${rc} -eq 0 ] ; then fi exit 0 + From 4320ed99a9b40fecc945b7b33f1211fc69a09520 Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Fri, 24 Oct 2025 14:15:22 -0600 Subject: [PATCH 10/19] Add release note --- docs/release_notes/891-verify-pre-commit-hook | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 docs/release_notes/891-verify-pre-commit-hook diff --git a/docs/release_notes/891-verify-pre-commit-hook b/docs/release_notes/891-verify-pre-commit-hook new file mode 100644 index 00000000..1f703cba --- /dev/null +++ b/docs/release_notes/891-verify-pre-commit-hook @@ -0,0 +1,4 @@ +### Patch Updates + +- Added a test in the git pre-commit to verify that it is identical to the version in the ./tools directory. + If not, it instructs the user to run the setup.cmd command to update the git pre-commit hook. From 997eaad527b70e8bb8d468f342765bf40f0232b6 Mon Sep 17 00:00:00 2001 From: Jamie-SA <45212760+Jamie-SA@users.noreply.github.com> Date: Fri, 24 Oct 2025 15:01:15 -0600 Subject: [PATCH 11/19] Update docs/release_notes/898-remove-default-prefix Co-authored-by: Rebecca Younes --- docs/release_notes/898-remove-default-prefix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/release_notes/898-remove-default-prefix b/docs/release_notes/898-remove-default-prefix index 0527225c..f0f84f02 100644 --- a/docs/release_notes/898-remove-default-prefix +++ b/docs/release_notes/898-remove-default-prefix @@ -1,4 +1,3 @@ ### Patch Updates -- Added a test in the git pre-commit hook to check for default PREFIX declarations in ontology files and cause the commit to fail if it finds one. - For this to work, the setup.cmd command needs to be re-run to update the git hook. +- Added a test in the git pre-commit hook to check for default PREFIX declarations in ontology files and cause the commit to fail if it finds one. For this to work, the setup.cmd command needs to be re-run to update the git hook. Issue [#898](https://github.com/semanticarts/gist/issues/898). From 2ba471c01d2b45ab534f4953812027f86b46ba34 Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Fri, 24 Oct 2025 15:10:42 -0600 Subject: [PATCH 12/19] Reverting some changes This reverts commit 2797780159a8e86f0fc23a0f6814a0c02d038b60. --- docs/release_notes/898-remove-default-prefix | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/release_notes/898-remove-default-prefix b/docs/release_notes/898-remove-default-prefix index f0f84f02..041085c1 100644 --- a/docs/release_notes/898-remove-default-prefix +++ b/docs/release_notes/898-remove-default-prefix @@ -1,3 +1,4 @@ ### Patch Updates - Added a test in the git pre-commit hook to check for default PREFIX declarations in ontology files and cause the commit to fail if it finds one. For this to work, the setup.cmd command needs to be re-run to update the git hook. Issue [#898](https://github.com/semanticarts/gist/issues/898). + From 1f735d3d6f145cb26d643898a6b0e83ec6028f36 Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Fri, 24 Oct 2025 15:12:58 -0600 Subject: [PATCH 13/19] Remove wrong release note --- docs/release_notes/891-verify-pre-commit-hook | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 docs/release_notes/891-verify-pre-commit-hook diff --git a/docs/release_notes/891-verify-pre-commit-hook b/docs/release_notes/891-verify-pre-commit-hook deleted file mode 100644 index 1f703cba..00000000 --- a/docs/release_notes/891-verify-pre-commit-hook +++ /dev/null @@ -1,4 +0,0 @@ -### Patch Updates - -- Added a test in the git pre-commit to verify that it is identical to the version in the ./tools directory. - If not, it instructs the user to run the setup.cmd command to update the git pre-commit hook. From a31296b67d5b3197adec862d2346f4970ac1a2d3 Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Fri, 24 Oct 2025 15:19:35 -0600 Subject: [PATCH 14/19] Remove accidentally merged branch --- tools/pre-commit | 8 -------- 1 file changed, 8 deletions(-) diff --git a/tools/pre-commit b/tools/pre-commit index 0dbfc159..d2bca899 100644 --- a/tools/pre-commit +++ b/tools/pre-commit @@ -9,14 +9,6 @@ # Get root directory of this git repository base_dir=$(git rev-parse --show-toplevel) -# Verify that the currently executing script is up to date. -file1="$0" # The current script -file2="$base_dir/tools/pre-commit" -if ! cmp -s "$file1" "$file2"; then - echo "ABORTED: the pre-commit hook is not up to date. Run ./tools/setup.cmd to fix." - exit 1 -fi - # Stops accidental commits to branches master, main, or develop. BRANCH=`git rev-parse --abbrev-ref HEAD` From 008060defb9ee689db56c131f15e71fa29e75525 Mon Sep 17 00:00:00 2001 From: StevenChalem Date: Fri, 24 Oct 2025 14:32:36 -0700 Subject: [PATCH 15/19] commit change to gistCore.ttl --- ontologies/gistCore.ttl | 1 + 1 file changed, 1 insertion(+) diff --git a/ontologies/gistCore.ttl b/ontologies/gistCore.ttl index d2e98ea9..6d9683b2 100644 --- a/ontologies/gistCore.ttl +++ b/ontologies/gistCore.ttl @@ -1,3 +1,4 @@ +@prefix : . @prefix gist: . @prefix gistd: . @prefix owl: . From 933b4b29d17923115f0e878ebee00c04da2e157b Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Fri, 24 Oct 2025 16:12:22 -0600 Subject: [PATCH 16/19] Remove default prefix again --- ontologies/gistCore.ttl | 1 - 1 file changed, 1 deletion(-) diff --git a/ontologies/gistCore.ttl b/ontologies/gistCore.ttl index 6d9683b2..d2e98ea9 100644 --- a/ontologies/gistCore.ttl +++ b/ontologies/gistCore.ttl @@ -1,4 +1,3 @@ -@prefix : . @prefix gist: . @prefix gistd: . @prefix owl: . From cf2dc5be7aafab96fca85317976ec8ecd423e93d Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Fri, 24 Oct 2025 14:54:26 -0600 Subject: [PATCH 17/19] Refactor pre-commit hook --- docs/release_notes/891-refactor-pre-commit | 7 +++++++ tools/{pre-commit => pre-commit-code} | 3 ++- tools/pre-commit-hook | 18 ++++++++++++++++++ tools/setup.cmd | 13 ++++++++----- 4 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 docs/release_notes/891-refactor-pre-commit rename tools/{pre-commit => pre-commit-code} (87%) create mode 100644 tools/pre-commit-hook diff --git a/docs/release_notes/891-refactor-pre-commit b/docs/release_notes/891-refactor-pre-commit new file mode 100644 index 00000000..6b0e667e --- /dev/null +++ b/docs/release_notes/891-refactor-pre-commit @@ -0,0 +1,7 @@ +### Patch Updates + +- Refactored the git pre-commit to make sure the latest version is always used. + - Updated setup.cmd to install tools/pre-commit-hook as .git/hooks/pre-commit + - New file tools/pre-commit-hook which just calls ./tools/pre-commit-code. + - Renamed tools/pre-commit to tools/pre-commit-code + diff --git a/tools/pre-commit b/tools/pre-commit-code similarity index 87% rename from tools/pre-commit rename to tools/pre-commit-code index d2bca899..105c7a52 100644 --- a/tools/pre-commit +++ b/tools/pre-commit-code @@ -1,6 +1,7 @@ #!/usr/bin/env sh -# This file should be copied into the .git/hooks directory of the project. +# This file performs all the actual git pre-commit checks. +# It should be called by .git/hooks/pre-commit, which should be a copy of tools/pre-commit-hook. # Get absolute path to this script # SCRIPT=$(readlink -f "$0") diff --git a/tools/pre-commit-hook b/tools/pre-commit-hook new file mode 100644 index 00000000..bbc9036e --- /dev/null +++ b/tools/pre-commit-hook @@ -0,0 +1,18 @@ +#!/usr/bin/env sh + +# This file should be copied into the .git/hooks directory of the project. +# All it does is call ./tools/pre-commit-code + +# Get root directory of this git repository +base_dir=$(git rev-parse --show-toplevel) + +# Run the pre-commit code from the ./tools/ directory +"${base_dir}/tools/pre-commit-code" +rc=$? + +# Return the response code from previous command +if [ ! ${rc} -eq 0 ] ; then + exit 1 +fi + +exit 0 diff --git a/tools/setup.cmd b/tools/setup.cmd index 205caf62..4b24f418 100644 --- a/tools/setup.cmd +++ b/tools/setup.cmd @@ -16,12 +16,15 @@ base_dir=$(git rev-parse --show-toplevel) # Print out commands so user can see what is being done set -x -# Copy pre-commit to the git hooks directory -cp "${base_dir}/tools/pre-commit" "${base_dir}/.git/hooks/" +# Copy pre-commit-hook to the git hooks directory +cp "${base_dir}/tools/pre-commit-hook" "${base_dir}/.git/hooks/pre-commit" # Make pre-commit hook executable. chmod +x "${base_dir}/.git/hooks/pre-commit" +# Ensure that tools/pre-commit-code is executable. +chmod +x "${base_dir}/tools/pre-commit-code" + # Ensure that the serializer pre-commit hook is executable. chmod +x "${base_dir}/tools/serializer/pre-commit" @@ -38,8 +41,8 @@ exit :WINDOWS CHDIR "%~dp0" IF EXIST "tools" chdir tools -IF EXIST "pre-commit" ( - copy "pre-commit" ..\.git\hooks\ +IF EXIST "pre-commit-hook" ( + copy "pre-commit-hook" ..\.git\hooks\pre-commit ) ELSE ( - echo Could not find the "pre-commit" file in %cd%. + echo ERROR: Could not find the "pre-commit-hook" file in %cd%. ) From 616fb9c4908c0ee9d8343ad74c331fe2d2a4e7e2 Mon Sep 17 00:00:00 2001 From: Jamie-SA Date: Fri, 24 Oct 2025 15:31:35 -0600 Subject: [PATCH 18/19] Update release note --- docs/release_notes/891-refactor-pre-commit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release_notes/891-refactor-pre-commit b/docs/release_notes/891-refactor-pre-commit index 6b0e667e..0a032f43 100644 --- a/docs/release_notes/891-refactor-pre-commit +++ b/docs/release_notes/891-refactor-pre-commit @@ -1,6 +1,6 @@ ### Patch Updates -- Refactored the git pre-commit to make sure the latest version is always used. +- Refactored the git pre-commit to make sure the latest version is always used. Issue [#891](https://github.com/semanticarts/gist/issues/891) - Updated setup.cmd to install tools/pre-commit-hook as .git/hooks/pre-commit - New file tools/pre-commit-hook which just calls ./tools/pre-commit-code. - Renamed tools/pre-commit to tools/pre-commit-code From 904368f2b92e214d1802ed218e28f8a913cb2e01 Mon Sep 17 00:00:00 2001 From: Rebecca Younes Date: Sun, 26 Oct 2025 11:26:04 -0400 Subject: [PATCH 19/19] Remove core.filemode false setting --- tools/setup.cmd | 3 --- 1 file changed, 3 deletions(-) diff --git a/tools/setup.cmd b/tools/setup.cmd index 4b24f418..d7223325 100644 --- a/tools/setup.cmd +++ b/tools/setup.cmd @@ -31,9 +31,6 @@ chmod +x "${base_dir}/tools/serializer/pre-commit" # Ensure that check_default_prefix.py is executable. chmod +x "${base_dir}/tools/check_default_prefix/check_default_prefix.py" -# Don't track executable flags on files in this repository (this is not a global setting). -git config core.filemode false - # Exit linux shell exit