Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
jami-client-qt
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
savoirfairelinux
jami-client-qt
Commits
cb7b0fee
Commit
cb7b0fee
authored
2 years ago
by
Amin Bandali
Committed by
Sébastien Blin
2 years ago
Browse files
Options
Downloads
Patches
Plain Diff
scripts: Update commit-msg from Gerrit 3.6.1.
Change-Id: I1c7099fd82251a1434bebcaf804278cedbb6e6d9
parent
355c0e63
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
extras/scripts/commit-msg
+64
-164
64 additions, 164 deletions
extras/scripts/commit-msg
with
64 additions
and
164 deletions
extras/scripts/commit-msg
+
64
−
164
View file @
cb7b0fee
#!/bin/sh
#!/bin/sh
# From Gerrit Code Review
2.11.3
# From Gerrit Code Review
3.6.1
#
#
# Part of Gerrit Code Review (http://
code.google.com/p/gerrit
/)
# Part of Gerrit Code Review (http
s
://
www.gerritcodereview.com
/)
#
#
# Copyright (C) 2009 The Android Open Source Project
# Copyright (C) 2009 The Android Open Source Project
#
#
...
@@ -16,166 +16,66 @@
...
@@ -16,166 +16,66 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# See the License for the specific language governing permissions and
# limitations under the License.
# limitations under the License.
#
unset
GREP_OPTIONS
CHANGE_ID_AFTER
=
"Bug|Issue"
MSG
=
"
$1
"
# Check for, and add if missing, a unique Change-Id
#
add_ChangeId
()
{
clean_message
=
`
sed
-e
'
/^diff --git .*/{
s///
q
}
/^Signed-off-by:/d
/^#/d
'
"
$MSG
"
| git stripspace
`
if
test
-z
"
$clean_message
"
then
return
fi
if
test
"false"
=
"
`
git config
--bool
--get
gerrit.createChangeId
`
"
then
return
fi
# Does Change-Id: already exist? if so, exit (no change).
if
grep
-i
'^Change-Id:'
"
$MSG
"
>
/dev/null
then
return
fi
id
=
`
_gen_ChangeId
`
T
=
"
$MSG
.tmp.
$$
"
AWK
=
awk
if
[
-x
/usr/xpg4/bin/awk
]
;
then
# Solaris AWK is just too broken
AWK
=
/usr/xpg4/bin/awk
fi
# How this works:
# - parse the commit message as (textLine+ blankLine*)*
# - assume textLine+ to be a footer until proven otherwise
# - exception: the first block is not footer (as it is the title)
# - read textLine+ into a variable
# - then count blankLines
# - once the next textLine appears, print textLine+ blankLine* as these
# aren't footer
# - in END, the last textLine+ block is available for footer parsing
$AWK
'
BEGIN {
# while we start with the assumption that textLine+
# is a footer, the first block is not.
isFooter = 0
footerComment = 0
blankLines = 0
}
# Skip lines starting with "#" without any spaces before it.
/^#/ { next }
# Skip the line starting with the diff command and everything after it,
# up to the end of the file, assuming it is only patch data.
# If more than one line before the diff was empty, strip all but one.
/^diff --git / {
blankLines = 0
while (getline) { }
next
}
# Count blank lines outside footer comments
/^$/ && (footerComment == 0) {
blankLines++
next
}
# Catch footer comment
/^\[[a-zA-Z0-9-]+:/ && (isFooter == 1) {
footerComment = 1
}
/]$/ && (footerComment == 1) {
footerComment = 2
}
# We have a non-blank line after blank lines. Handle this.
(blankLines > 0) {
print lines
for (i = 0; i < blankLines; i++) {
print ""
}
lines = ""
blankLines = 0
isFooter = 1
footerComment = 0
}
# Detect that the current block is not the footer
(footerComment == 0) && (!/^\[?[a-zA-Z0-9-]+:/ || /^[a-zA-Z0-9-]+:\/\//) {
isFooter = 0
}
{
# We need this information about the current last comment line
if (footerComment == 2) {
footerComment = 0
}
if (lines != "") {
lines = lines "\n";
}
lines = lines $0
}
# Footer handling:
# If the last block is considered a footer, splice in the Change-Id at the
# right place.
# Look for the right place to inject Change-Id by considering
# CHANGE_ID_AFTER. Keys listed in it (case insensitive) come first,
# then Change-Id, then everything else (eg. Signed-off-by:).
#
# Otherwise just print the last block, a new line and the Change-Id as a
# block of its own.
END {
unprinted = 1
if (isFooter == 0) {
print lines "\n"
lines = ""
}
changeIdAfter = "^(" tolower("'
"
$CHANGE_ID_AFTER
"
'") "):"
numlines = split(lines, footer, "\n")
for (line = 1; line <= numlines; line++) {
if (unprinted && match(tolower(footer[line]), changeIdAfter) != 1) {
unprinted = 0
print "Change-Id: I'
"
$id
"
'"
}
print footer[line]
}
if (unprinted) {
print "Change-Id: I'
"
$id
"
'"
}
}'
"
$MSG
"
>
"
$T
"
&&
mv
"
$T
"
"
$MSG
"
||
rm
-f
"
$T
"
}
_gen_ChangeIdInput
()
{
echo
"tree
`
git write-tree
`
"
if
parent
=
`
git rev-parse
"HEAD^0"
2>/dev/null
`
then
echo
"parent
$parent
"
fi
echo
"author
`
git var GIT_AUTHOR_IDENT
`
"
echo
"committer
`
git var GIT_COMMITTER_IDENT
`
"
echo
printf
'%s'
"
$clean_message
"
}
_gen_ChangeId
()
{
_gen_ChangeIdInput |
git hash-object
-t
commit
--stdin
}
add_ChangeId
set
-u
# avoid [[ which is not POSIX sh.
if
test
"$#"
!=
1
;
then
echo
"
$0
requires an argument."
exit
1
fi
if
test
!
-f
"
$1
"
;
then
echo
"file does not exist:
$1
"
exit
1
fi
# Do not create a change id if requested
if
test
"false"
=
"
$(
git config
--bool
--get
gerrit.createChangeId
)
"
;
then
exit
0
fi
if
git rev-parse
--verify
HEAD
>
/dev/null 2>&1
;
then
refhash
=
"
$(
git rev-parse HEAD
)
"
else
refhash
=
"
$(
git hash-object
-t
tree /dev/null
)
"
fi
random
=
$(
{
git var GIT_COMMITTER_IDENT
;
echo
"
$refhash
"
;
cat
"
$1
"
;
}
| git hash-object
--stdin
)
dest
=
"
$1
.tmp.
${
random
}
"
trap
'rm -f "${dest}"'
EXIT
if
!
git stripspace
--strip-comments
<
"
$1
"
>
"
${
dest
}
"
;
then
echo
"cannot strip comments from
$1
"
exit
1
fi
if
test
!
-s
"
${
dest
}
"
;
then
echo
"file is empty:
$1
"
exit
1
fi
reviewurl
=
"
$(
git config
--get
gerrit.reviewUrl
)
"
if
test
-n
"
${
reviewurl
}
"
;
then
if
!
git interpret-trailers
--parse
<
"
$1
"
|
grep
-q
'^Link:.*/id/I[0-9a-f]\{40\}$'
;
then
if
!
git interpret-trailers
\
--trailer
"Link:
${
reviewurl
%/
}
/id/I
${
random
}
"
<
"
$1
"
>
"
${
dest
}
"
;
then
echo
"cannot insert link footer in
$1
"
exit
1
fi
fi
else
# Avoid the --in-place option which only appeared in Git 2.8
# Avoid the --if-exists option which only appeared in Git 2.15
if
!
git
-c
trailer.ifexists
=
doNothing interpret-trailers
\
--trailer
"Change-Id: I
${
random
}
"
<
"
$1
"
>
"
${
dest
}
"
;
then
echo
"cannot insert change-id line in
$1
"
exit
1
fi
fi
if
!
mv
"
${
dest
}
"
"
$1
"
;
then
echo
"cannot mv
${
dest
}
to
$1
"
exit
1
fi
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment