aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2021-02-18 15:59:43 +0000
committerMark Johnston <markj@FreeBSD.org>2021-02-18 16:00:09 +0000
commitcd6114d1a65cda09410e91ed4dc220df825a8ba2 (patch)
tree9a3f5c3407fb7e0f823383c51628832c74b90e73
parent57ba8673d7de509c9f2d23fdc1a5e179ff4ff3cc (diff)
downloadsrc-cd6114d1a65cda09410e91ed4dc220df825a8ba2.tar.gz
src-cd6114d1a65cda09410e91ed4dc220df825a8ba2.zip
git-arc: Preserve the commit author when staging commits
Reported by: jhb
-rw-r--r--tools/tools/git/git-arc.sh5
1 files changed, 3 insertions, 2 deletions
diff --git a/tools/tools/git/git-arc.sh b/tools/tools/git/git-arc.sh
index 2de7e1858c00..07b042ceb151 100644
--- a/tools/tools/git/git-arc.sh
+++ b/tools/tools/git/git-arc.sh
@@ -452,7 +452,7 @@ gitarc::patch()
gitarc::stage()
{
- local branch commit commits diff reviewers tmp
+ local author branch commit commits diff reviewers tmp
branch=main
while getopts b: o; do
@@ -488,12 +488,13 @@ gitarc::stage()
fi
printf "Differential Revision:\thttps://reviews.freebsd.org/${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?"
git checkout -f
break
fi
- git commit --edit --file $tmp
+ git commit --edit --file $tmp --author "${author}"
done
}