Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F131544105
D29373.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
12 KB
Referenced Files
None
Subscribers
None
D29373.diff
View Options
diff --git a/tools/tools/git/git-arc.sh b/tools/tools/git/git-arc.sh
--- a/tools/tools/git/git-arc.sh
+++ b/tools/tools/git/git-arc.sh
@@ -34,7 +34,7 @@
warn()
{
- echo "$(basename $0): $1" >&2
+ echo "$(basename "$0"): $1" >&2
}
err()
@@ -151,7 +151,7 @@
err "invalid diff ID $diff"
fi
- echo '{"names":["'$diff'"]}' |
+ echo '{"names":["'"$diff"'"]}' |
arc call-conduit -- phid.lookup |
jq -r "select(.response != []) | .response.${diff}.phid"
}
@@ -166,11 +166,11 @@
fi
tmp=$(mktemp)
- echo '{"names":["'$diff'"]}' |
- arc call-conduit -- phid.lookup > $tmp
- status=$(jq -r "select(.response != []) | .response.${diff}.status" < $tmp)
+ echo '{"names":["'"$diff"'"]}' |
+ arc call-conduit -- phid.lookup > "$tmp"
+ status=$(jq -r "select(.response != []) | .response.${diff}.status" < "$tmp")
summary=$(jq -r "select(.response != []) |
- .response.${diff}.fullName" < $tmp)
+ .response.${diff}.fullName" < "$tmp")
printf "%-14s %s\n" "${status}" "${summary}"
}
@@ -178,10 +178,10 @@
{
local diff
- diff=$(git show -s --format=%B $commit |
+ diff=$(git show -s --format=%B "$commit" |
sed -nE '/^Differential Revision:[[:space:]]+(https:\/\/reviews.freebsd.org\/)?(D[0-9]+)$/{s//\2/;p;}')
- if [ -n "$diff" ] && [ $(echo "$diff" | wc -l) -eq 1 ]; then
- echo $diff
+ if [ -n "$diff" ] && [ "$(echo "$diff" | wc -l)" -eq 1 ]; then
+ echo "$diff"
else
echo
fi
@@ -195,23 +195,23 @@
# First, look for a valid differential reference in the commit
# log.
- diff=$(log2diff $commit)
+ diff=$(log2diff "$commit")
if [ -n "$diff" ]; then
- echo $diff
+ echo "$diff"
return
fi
# Second, search the open reviews returned by 'arc list' looking
# for a subject match.
- title=$(git show -s --format=%s $commit)
- diff=$(arc list | fgrep "$title" | egrep -o 'D[1-9][0-9]*:' | tr -d ':')
+ title=$(git show -s --format=%s "$commit")
+ diff=$(arc list | grep -F "$title" | grep -E -o 'D[1-9][0-9]*:' | tr -d ':')
if [ -z "$diff" ]; then
err "could not find review for '${title}'"
- elif [ $(echo "$diff" | wc -l) -ne 1 ]; then
+ elif [ "$(echo "$diff" | wc -l)" -ne 1 ]; then
err "found multiple reviews with the same title"
fi
- echo $diff
+ echo "$diff"
}
create_one_review()
@@ -225,61 +225,61 @@
parent=$4
doprompt=$5
- if [ "$doprompt" ] && ! show_and_prompt $commit; then
+ if [ "$doprompt" ] && ! show_and_prompt "$commit"; then
return 1
fi
- git checkout -q $commit
+ git checkout -q "$commit"
msg=$(mktemp)
- git show -s --format='%B' $commit > $msg
- printf "\nTest Plan:\n" >> $msg
- printf "\nReviewers:\n" >> $msg
- printf "${reviewers}\n" >> $msg
- printf "\nSubscribers:\n" >> $msg
- printf "${subscribers}\n" >> $msg
+ git show -s --format='%B' "$commit" > "$msg"
+ printf "\nTest Plan:\n" >> "$msg"
+ printf "\nReviewers:\n" >> "$msg"
+ printf "%s\n" "${reviewers}" >> "$msg"
+ printf "\nSubscribers:\n" >> "$msg"
+ printf "%s\n" "${subscribers}" >> "$msg"
yes | env EDITOR=true \
- arc diff --message-file $msg --never-apply-patches --create --allow-untracked $BROWSE HEAD~
+ arc diff --message-file "$msg" --never-apply-patches --create --allow-untracked $BROWSE HEAD~
[ $? -eq 0 ] || err "could not create Phabricator diff"
if [ -n "$parent" ]; then
- diff=$(commit2diff $commit)
+ diff=$(commit2diff "$commit")
[ -n "$diff" ] || err "failed to look up review ID for $commit"
- childphid=$(diff2phid $diff)
- parentphid=$(diff2phid $parent)
+ childphid=$(diff2phid "$diff")
+ parentphid=$(diff2phid "$parent")
echo '{
- "objectIdentifier": "'${childphid}'",
+ "objectIdentifier": "'"${childphid}"'",
"transactions": [
{
"type": "parents.add",
- "value": ["'${parentphid}'"]
+ "value": ["'"${parentphid}"'"]
}
]}' |
arc call-conduit -- differential.revision.edit >&3
fi
- rm -f $msg
+ rm -f "$msg"
return 0
}
# Get a list of reviewers who accepted the specified diff.
diff2reviewers()
{
- local diff phid reviewid userids
+ local diff reviewid userids
diff=$1
- reviewid=$(diff2phid $diff)
+ reviewid=$(diff2phid "$diff")
userids=$( \
echo '{
- "constraints": {"phids": ["'$reviewid'"]},
+ "constraints": {"phids": ["'"$reviewid"'"]},
"attachments": {"reviewers": true}
}' |
arc call-conduit -- differential.revision.search |
jq '.response.data[0].attachments.reviewers.reviewers[] | select(.status == "accepted").reviewerPHID')
if [ -n "$userids" ]; then
echo '{
- "constraints": {"phids": ['$(echo -n $userids | tr '[:space:]' ',')']}
+ "constraints": {"phids": ['"$(echo -n "$userids" | tr '[:space:]' ',')"']}
}' |
arc call-conduit -- user.search |
jq -r '.response.data[].fields.username'
@@ -295,7 +295,7 @@
fi
printf "\nDoes this look OK? [y/N] "
- read resp
+ read -r resp
case $resp in
[Yy])
@@ -313,7 +313,7 @@
commit=$1
- git show $commit
+ git show "$commit"
prompt
}
@@ -330,7 +330,7 @@
restore_head()
{
if [ -n "$SAVED_HEAD" ]; then
- git checkout -q $SAVED_HEAD
+ git checkout -q "$SAVED_HEAD"
SAVED_HEAD=
fi
}
@@ -339,15 +339,15 @@
{
local chash _commits commits
- for chash in $@; do
+ for chash in "$@"; do
_commits=$(git rev-parse "${chash}")
if ! git cat-file -e "${chash}"'^{commit}' >/dev/null 2>&1; then
- _commits=$(git rev-list $_commits | tail -r)
+ _commits=$(git rev-list "$_commits" | tail -r)
fi
[ -n "$_commits" ] || err "invalid commit ID ${chash}"
commits="$commits $_commits"
done
- echo $commits
+ echo "$commits"
}
gitarc::create()
@@ -355,7 +355,7 @@
local commit commits doprompt list o prev reviewers subscribers
list=
- if eval $(git config --bool --default false --get arc.list); then
+ if [ "$(git config --bool --default false --get arc.list)" != "false" ]; then
list=1
fi
doprompt=1
@@ -377,11 +377,11 @@
done
shift $((OPTIND-1))
- commits=$(build_commit_list $@)
+ commits=$(build_commit_list "$@")
if [ "$list" ]; then
for commit in ${commits}; do
- git --no-pager show --oneline --no-patch $commit
+ git --no-pager show --oneline --no-patch "$commit"
done | git_pager
if ! prompt; then
return
@@ -406,28 +406,28 @@
{
local chash commit commits diff title
- commits=$(build_commit_list $@)
+ commits=$(build_commit_list "$@")
for commit in $commits; do
- chash=$(git show -s --format='%C(auto)%h' $commit)
+ chash=$(git show -s --format='%C(auto)%h' "$commit")
echo -n "${chash} "
- diff=$(log2diff $commit)
+ diff=$(log2diff "$commit")
if [ -n "$diff" ]; then
- diff2status $diff
+ diff2status "$diff"
continue
fi
# This does not use commit2diff as it needs to handle errors
# differently and keep the entire status. The extra 'cat'
# after 'fgrep' avoids erroring due to -e.
- title=$(git show -s --format=%s $commit)
- diff=$(arc list | fgrep "$title" | cat)
+ title=$(git show -s --format=%s "$commit")
+ diff=$(arc list | grep -F "$title" | cat)
if [ -z "$diff" ]; then
echo "No Review : $title"
- elif [ $(echo "$diff" | wc -l) -ne 1 ]; then
+ elif [ "$(echo "$diff" | wc -l)" -ne 1 ]; then
echo -n "Ambiguous Reviews: "
- echo "$diff" | egrep -o 'D[1-9][0-9]*:' | tr -d ':' \
+ echo "$diff" | grep -E -o 'D[1-9][0-9]*:' | tr -d ':' \
| paste -sd ',' - | sed 's/,/, /g'
else
echo "$diff" | sed -e 's/^[^ ]* *//'
@@ -443,8 +443,8 @@
err_usage
fi
- for rev in $@; do
- arc patch --skip-dependencies --nocommit --nobranch --force $rev
+ for rev in "$@"; do
+ arc patch --skip-dependencies --nocommit --nobranch --force "$rev"
echo "Applying ${rev}..."
[ $? -eq 0 ] || break
done
@@ -467,34 +467,34 @@
done
shift $((OPTIND-1))
- commits=$(build_commit_list $@)
+ commits=$(build_commit_list "$@")
if [ "$branch" = "main" ]; then
git checkout -q main
else
- git checkout -q -b ${branch} main
+ git checkout -q -b "${branch}" main
fi
tmp=$(mktemp)
for commit in $commits; do
- git show -s --format=%B $commit > $tmp
- diff=$(arc list | fgrep "$(git show -s --format=%s $commit)" |
- egrep -o 'D[1-9][0-9]*:' | tr -d ':')
+ git show -s --format=%B "$commit" > "$tmp"
+ diff=$(arc list | grep -F "$(git show -s --format=%s "$commit")" |
+ grep -E -o 'D[1-9][0-9]*:' | tr -d ':')
if [ -n "$diff" ]; then
# XXX this leaves an extra newline in some cases.
- reviewers=$(diff2reviewers $diff | sed '/^$/d' | paste -sd ',' - | sed 's/,/, /g')
+ reviewers=$(diff2reviewers "$diff" | sed '/^$/d' | paste -sd ',' - | sed 's/,/, /g')
if [ -n "$reviewers" ]; then
- printf "Reviewed by:\t${reviewers}\n" >> $tmp
+ printf "Reviewed by:\t%s\n" "${reviewers}" >> "$tmp"
fi
- printf "Differential Revision:\thttps://reviews.freebsd.org/${diff}" >> $tmp
+ printf "Differential Revision:\thttps://reviews.freebsd.org/%s" "${diff}" >> "$tmp"
fi
- author=$(git show -s --format='%an <%ae>' ${commit})
- if ! git cherry-pick --no-commit ${commit}; then
- warn "Failed to apply $(git rev-parse --short ${commit}). Are you staging patches in the wrong order?"
+ author=$(git show -s --format='%an <%ae>' "${commit}")
+ if ! git cherry-pick --no-commit "${commit}"; then
+ warn "Failed to apply $(git rev-parse --short "${commit}"). Are you staging patches in the wrong order?"
git checkout -f
break
fi
- git commit --edit --file $tmp --author "${author}"
+ git commit --edit --file "$tmp" --author "${author}"
done
}
@@ -502,21 +502,21 @@
{
local commit commits diff
- commits=$(build_commit_list $@)
+ commits=$(build_commit_list "$@")
save_head
for commit in ${commits}; do
- diff=$(commit2diff $commit)
+ diff=$(commit2diff "$commit")
- if ! show_and_prompt $commit; then
+ if ! show_and_prompt "$commit"; then
break
fi
- git checkout -q $commit
+ git checkout -q "$commit"
# The linter is stupid and applies patches to the working copy.
# This would be tolerable if it didn't try to correct "misspelled" variable
# names.
- arc diff --allow-untracked --never-apply-patches --update $diff HEAD~
+ arc diff --allow-untracked --never-apply-patches --update "$diff" HEAD~
done
restore_head
}
@@ -524,7 +524,7 @@
set -e
ASSUME_YES=
-if eval $(git config --bool --default false --get arc.assume-yes); then
+if [ "$(git config --bool --default false --get arc.assume-yes)" != "false" ]; then
ASSUME_YES=1
fi
@@ -575,6 +575,7 @@
[ -f "$git_sh_setup" ] || err "cannot find git-sh-setup"
SUBDIRECTORY_OK=y
USAGE=
+# shellcheck disable=SC1090
. "$git_sh_setup"
# Bail if the working tree is unclean, except for "list" and "patch"
@@ -583,14 +584,14 @@
list|patch)
;;
*)
- require_clean_work_tree $verb
+ require_clean_work_tree "$verb"
;;
esac
-if eval $(git config --bool --default false --get arc.browse); then
+if [ "$(git config --bool --default false --get arc.browse)" != "false" ]; then
BROWSE=--browse
fi
trap restore_head EXIT INT
-gitarc::${verb} $@
+gitarc::"${verb}" "$@"
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Oct 10, 3:02 AM (22 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
23515669
Default Alt Text
D29373.diff (12 KB)
Attached To
Mode
D29373: Fix most shellcheck warnings in git-arc.sh
Attached
Detach File
Event Timeline
Log In to Comment