diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..76efd4887 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,12 @@ + diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 810008dbc..03c1044c9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -67,7 +67,7 @@ jobs: - name: Check out code. uses: actions/checkout@v3 - name: Linux Install - if: matrix.platform == 'ubuntu-22.04' + if: matrix.platform == 'ubuntu-latest' run: | sudo apt-get install -y bsdmainutils - name: Script diff --git a/AUTHORS b/AUTHORS index 1cf47a954..9e05518ea 100644 --- a/AUTHORS +++ b/AUTHORS @@ -11,13 +11,13 @@ Maintainers - Nimit Kalra - Nicolai Skogheim - spacewander +- Edwin Kofler Patches and Suggestions ``````````````````````` - Jonhnny Weslley - Tobias Fendin - LeeW -- Edwin Kofler - timfeirg - Niklas Schlimm - nickl- diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 019f79173..604ac70eb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,3 +38,7 @@ Let's say you wish to add a new command. Assuming your new command is named `foo 8. Run `./check_integrity.sh foo` to check if all done. You are welcome to open up an issue to discuss new commands or features before opening a pull request. + +## Submitting a pull request + +Please follow the suggestion in `./.github/PULL_REQUEST_TEMPLATE.md`. diff --git a/bin/git-utimes b/bin/git-utimes index 83cc48c51..326464c1c 100755 --- a/bin/git-utimes +++ b/bin/git-utimes @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# shellcheck disable=SC2312,SC2248,SC2250,SC2064,SC2086 +# shellcheck disable=SC2312 # # Change files modification time to their last commit date # @@ -34,13 +34,6 @@ fi if bash --help 2>&1 | grep -q -- '--norc'; then bash_opts="${bash_opts} --norc" fi -# sanity check, not required: -if bash --help 2>&1 | grep -q -- '--posix'; then - bash_opts="${bash_opts} --posix" -fi - -prefix="$(git rev-parse --show-prefix) " -strip="${#prefix}" status_opts= whatchanged_opts= @@ -55,16 +48,22 @@ if git status --help 2>&1 | grep -q -- "--ignored"; then status_opts="${status_opts} --ignored=no" fi +prefix="$(git rev-parse --show-prefix) " +strip="${#prefix}" + tmpfile=$(mktemp) +# shellcheck disable=SC2064 trap "rm -f '${tmpfile}'" 0 # prefix is stripped: +# shellcheck disable=SC2086 git --no-pager status --porcelain --short ${status_opts} . | cut -c 4- >"${tmpfile}" # prefix is not stripped: +# shellcheck disable=SC1003,SC2086,SC2248 git --no-pager whatchanged ${whatchanged_opts} --format='%ct' . | - awk $awk_flags \ + awk ${awk_flags} \ -F'\t' \ -v date_flags="${date_flags}" \ -v op="${op}" \ @@ -80,7 +79,7 @@ git --no-pager whatchanged ${whatchanged_opts} --format='%ct' . | print " echo \"+ touch -h -d@$1 $2\"" print " touch -h -d@$1 \"$2\"" } else { - printf(" t=$(date %s$1 \"+%Y%m%d%H%M.%S\")\n", date_flags) + print " t=$(date -r$1 \"+%Y%m%d%H%M.%S\")" print " echo \"+ touch -h -t $t $2\"" print " touch -h -t $t \"$2\"" } @@ -107,8 +106,13 @@ FILENAME==tmpfile { next } seen[$2]=1 - # escape quotes: - gsub(/"/, "\\\"", $2) - printf("t %s \"%s\"\n", ct, $2) + # remove double quotes and backslashes that git adds: + if (substr($2, 1, 1) == "\"" && substr($2, length($2), 1) == "\"") { + $2 = substr($2, 2, length($2) - 2) + gsub(/\\/, "", $2) + } + # escape single quotes: + gsub(/'\''/, "'\''\\'\'''\''", $2) + printf("t %s '\''%s'\''\n", ct, $2) } ' "${tmpfile}" - | BASH_ENV='' bash ${bash_opts} /dev/stdin