Commit graph

38 commits

Author SHA1 Message Date
Jan-Marek Glogowski
c5eb63edde git hooks: update commit-msg to Gerrit 2.16.15
This mainly replaces the whole AWK code with the git helper
"interpret-trailers", which was added in git v2.2 end of 2014.

It also moves the argument checks from the original Gerrit hook
to the front of our tests to verify the script arguments.

Change-Id: I38c831bf7c9d399419a598d6966e48166d31ea6f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87369
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-02-01 04:14:09 +01:00
Miklos Vajna
cac5ce6de0 git hooks: update the change-id part of commit-msg
To the up to date version that is set up by e.g. 'git review -s' from
gerrit.libreoffice.org. Should help with \c in commit messages.

Change-Id: I42508f6f5bbb6fa70357694fcc820ed9a22f3b0e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87347
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Tested-by: Jan-Marek Glogowski <glogow@fbihome.de>
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-01-24 21:05:58 +01:00
Stephan Bergmann
8eb8d64fa1 Don't count terminating newline when determining line length
Change-Id: I3a5d306f32697e160f008e73de38fc53f2f1dbda
Reviewed-on: https://gerrit.libreoffice.org/84349
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03 20:21:33 +01:00
Miklos Vajna
058c54d540 git-hooks: show length of first line if it's too long
Change-Id: I164e4308c2a3e685bbc83cfde1cae5189839075e
Reviewed-on: https://gerrit.libreoffice.org/73556
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2019-06-05 21:34:15 +02:00
Stephan Bergmann
6cd9bc8aa4 Remove unhelpful "Check for whitespace in front of *'s" from .git-hooks
It was added with 60f200caa4 "git-hooks: Copy them
from the build repo", but I don't see its purpose, and it caused trouble for me
now when trying to commit <https://gerrit.libreoffice.org/67672> "Merge in
Flatpak improvements".

Change-Id: I922b5be87549793466f99db8b12be6081e683292
Reviewed-on: https://gerrit.libreoffice.org/67674
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-02-13 10:24:26 +01:00
Jan Holesovsky
eea439b4b1 git hooks: Tell what to do in another problematic submodules case.
Change-Id: I6247df16c021c13c97471cae16d3a1c0f3ddc691
2018-11-22 11:53:07 +01:00
Jan Holesovsky
e1f067151f git hooks: Check that you are not committing to submodules by accident.
And also for a dangerous setting in the configuration that hides the
changes from you.

Change-Id: I99bad8024baf7048696d9602e857c253c20cb5c2
Reviewed-on: https://gerrit.libreoffice.org/63389
Tested-by: Jenkins
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2018-11-22 11:25:10 +01:00
Thorsten Behrens
9d11ab9295 Add Python files to pre-commit hook checks
Change-Id: Ie5a631abe25a25bab9e74b353994f0788fe3dd06
Reviewed-on: https://gerrit.libreoffice.org/61279
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-10-03 10:39:39 +02:00
Tor Lillqvist
a0b34f97ef Restore .git-hooks/commit-msg accidentally removed earlier
(Removed in a06954bf5b100c9433b4e1dbcdcf8ab2df2763a1.)

Change-Id: Ieec84ecb9863c490786e4c195b8e6a838c0712a0
Reviewed-on: https://gerrit.libreoffice.org/54662
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-05-22 11:48:59 +02:00
Rizal Muttaqin
a06954bf5b tdf#117342 - Add Karasa Jaga to LibreOffice core
Change-Id: Id121df0ddc763a299c5714cadd0d61740876e3d6
Reviewed-on: https://gerrit.libreoffice.org/54512
Reviewed-by: Heiko Tietze <tietze.heiko@gmail.com>
Tested-by: Heiko Tietze <tietze.heiko@gmail.com>
2018-05-22 10:38:59 +02:00
Miklos Vajna
5f5f093754 clang-format: improve error message when CI fails
Don't just tell the problem but hint how to fix it.

Change-Id: I9d079ee7d4ed61266e22a3fa21efe10366724645
Reviewed-on: https://gerrit.libreoffice.org/49471
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2018-02-09 13:06:17 +01:00
Miklos Vajna
0623f3a8f5 git pre-commit hook: catch copy&pasted author identity
git log --author="Your"

confirms that this happens in practice.

Change-Id: I48633bc9154ebc66fc022938831057bdc3ff76b3
Reviewed-on: https://gerrit.libreoffice.org/47892
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
2018-01-15 11:08:26 +01:00
Miklos Vajna
653b513181 clang-format: restore lost warning on touching formatted file without check
Consistently only assign something to $clang_format if it's a good
version, and also consistently return undef if we found no good version.

Change-Id: Iadbbb56a5c15dfaeec5c80e3cc8fcc78b787c04b
Reviewed-on: https://gerrit.libreoffice.org/46489
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-12-15 09:02:17 +01:00
Miklos Vajna
2e4ecd03d6 clang-format: ignore not staged hunks
09:28 <@sberg> vmiklos, I think I ran into a scenario last night where I had
both `git add`-ed and non-added changes in a non-blacklisted file, and the
non-added changes violated clang-format (and the added ones did not), and the
commit hook complained

So make sure we validate the index version, not the filesystem one.

(And modify a formatted file to trigger CI validation of the hook change
itself.)

Change-Id: I6431b35ac50dd03741104b5709c5195d6ff28632
Reviewed-on: https://gerrit.libreoffice.org/46368
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-12-13 13:44:23 +01:00
Miklos Vajna
46ab76a709 git-hooks: fix pre-commit in submodules
translations.git failed with "Can't locate ClangFormat.pm in @INC (you
may need to install the ClangFormat module)".

Change-Id: Ibbe051c1cb4c1200da58821589b8271434b1f9a6
Reviewed-on: https://gerrit.libreoffice.org/45020
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-11-21 11:16:11 +01:00
Miklos Vajna
13de75274b clang-format: enforce coding style via Jenkins
- factor out common code to a shared module, and quote path to the
  clang-format binary, just in case.
- add a new check-last-commit script that is the CI equivalent of the
  exiting git pre-commit hook, but this one handles lack of clang-format
  as an error, not as a warning.
- $LODE_HOME/opt/bin is supposed to be in PATH already, so not
  mentioning LODE_HOME in ClangFormat::find() explicitly.
- if both COMPILER_PLUGINS and LODE_HOME is set, invoke
  solenv/clang-format/check-last-commit as part of 'make check'

To test these changes as part of CI, fix a single style violation in an
already committed, non-blacklisted file.

This depends on the lode.git commit
496123bcae28e06c6d6aeda39a5afd1e1fb1fd98 (utils_Linux: install
clang-format in the Jenkins case, 2017-11-16), otherwise erroring out on
a not installed clang-format as part of the build would be a problem.

Change-Id: Ib3110826194ff78a7f1bed1c3796147e92ccb3ba
Reviewed-on: https://gerrit.libreoffice.org/44939
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-11-20 13:41:40 +01:00
Miklos Vajna
ea5339e31c git-hooks: mention download link for clang-format when warning about it
Change-Id: I99f2154bb3d15fe4a99c1d27ca20756e1fb31cec
Reviewed-on: https://gerrit.libreoffice.org/44810
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-11-16 20:24:46 +01:00
Stephan Bergmann
c74f6d3c64 Warn when commit touches new files, but no suitable clang-format is found
Change-Id: Ifd254c30b8aecf6e7aec00bbfc8522a91bfa0909
2017-11-16 09:53:33 +01:00
Stephan Bergmann
e61a1b8dd8 First look for clang-format in CLANG_FORMT env var
Change-Id: I5de5c6f3e8be1d40c03cbddb9d2f4414b9a5791b
2017-11-13 11:59:08 +01:00
Miklos Vajna
53e13b256f clang-format: standardize on 5.0.0
Restrict the git hook further to only enforce style in case the found
clang-format binary's version matches to avoid output differences with
different clang-format version.

While at it, move the blacklist reading after the version check to speed
up committing a bit when no local enforcement happens.

Also add a simple script to list formatted files, since the blacklist is
large enough that doing it naively from the shell is too slow.

Change-Id: I0bc05961d262cc6bc91c6efdd1b91994ecfc6940
Reviewed-on: https://gerrit.libreoffice.org/44662
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-11-13 10:43:39 +01:00
Miklos Vajna
98f5f4d39c Enforce coding style with clang-format for new code
- The actual blacklist has to be generated with
  solenv/clang-format/generate-style-blacklist.sh in a separate commit.

- .clang-format is from
  <https://lists.freedesktop.org/archives/libreoffice/2014-August/062802.html>,
  except:

  - the commented out lines are removed
  - Standard is Cpp11 instead of Cpp03
  - explicitly avoid sorting includes (requested during ESC meeting
    2017-10-11)
  - no indentation inside namespaces (lots of existing code in sc wants this)

- The git hooks prints a diff when the style is violated, along with a
  command to fix up the violation automatically. It also enforces style
  only in new files and ignores all files listed in the blacklist.

- To avoid introducing one more hard-to-setup build dependency for new
  developers, help them two ways:

  - if clang-format is not installed, provide pre-built binaries for
    Linux/Windows/macOS

  - download/install of these binaries are printed as cmdline
    instructions, similar to how we have our own 'make' on Windows

- As per ESC call 2017-11-02, currently don't do any checks if
  clang-format is not installed (as a first step).

Change-Id: Iaa139c396337e8734aa1853305d808438260c41a
Reviewed-on: https://gerrit.libreoffice.org/43736
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-11-03 09:29:11 +01:00
Michael Stahl
236b7e19bb git-hooks: don't complain about large .ui files
Looks legit.

Change-Id: I73562d0a8d863868ae717cee97b6497a93df4ee4
2017-10-30 10:51:32 +01:00
Samuel Mehrbrodt
ecdf8f2803 pre-commit-hook: Also check xsl files for whitespace and tabs
Change-Id: Ibc1520735ab20787496564e8561a6bb5920a5538
Reviewed-on: https://gerrit.libreoffice.org/42280
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2017-09-20 16:12:11 +02:00
Caolán McNamara
354d460af2 insist in a domain in .ui files
and just check .ui files for those .ui-specific patterns

Change-Id: If7b9c8779f7592db5b22ab96058dd85666ca9bdf
Reviewed-on: https://gerrit.libreoffice.org/42160
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-09-11 15:01:41 +02:00
Caolán McNamara
3fa79c0fa5 disallow .ui translatable entries without context at checkin
Change-Id: Iece6ae3c4eabad4cd113f469495d2c42833a7b92
Reviewed-on: https://gerrit.libreoffice.org/42157
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-09-11 12:56:12 +02:00
Samuel Mehrbrodt
50f3cfc1fa git pre-commit hook: Also check swift files
Change-Id: I60c7ccd06b104c6a6ae5e7985fe8c3215f7e97d4
Reviewed-on: https://gerrit.libreoffice.org/35624
Reviewed-by: jan iversen <jani@libreoffice.org>
Tested-by: jan iversen <jani@libreoffice.org>
2017-03-24 09:41:54 +00:00
Marina Latini
4f92098da7 tdf#102784 - Enhance git pre-commit hook
This pre-commit hook prevents the commit of ui files with tooltip_markup property

Change-Id: I70d6f90fc36e782c290f35f0cc9415b9fa96495b
Signed-off-by: Marina Latini <marina@studiostorti.com>
Reviewed-on: https://gerrit.libreoffice.org/31735
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Muhammet Kara <muhammet.kara@pardus.org.tr>
Tested-by: Muhammet Kara <muhammet.kara@pardus.org.tr>
Reviewed-by: jan iversen <jani@documentfoundation.org>
2016-12-08 10:01:50 +00:00
Jan Holesovsky
417c9fa8a9 git-hooks: Info how to install them manually.
Change-Id: I42f007a1ef18e39a6f42e882b43ece771052081a
2015-09-08 14:50:48 +02:00
Thorsten Behrens
8f45f78e82 Catch funny line-ends in pre-commit hook.
Change-Id: I38836a9b3c9fb8ab7b71e157bba8a803eb4d3905
2015-06-13 10:41:39 +02:00
Thomas Klausner
f4f064da1a git-hooks: post-merge script does not need /bin/bash
Just use /bin/sh, which exists on more systems.

Change-Id: I5e5453b89841510473414a4c339b647b4f95ae7b
2015-02-13 16:40:36 +01:00
Miklos Vajna
2c1e951240 git-hooks: recognize multiple bug ids
Change-Id: I6ef51a8ec3215f331d2671074be17f68aa6cd1ce
2015-02-13 13:42:34 +01:00
Miklos Vajna
8c5e878529 git hooks: reject suspicious fdo references
Change-Id: If2302adb662bd2b0d32bacdf9cdc3c0278b86de8
2015-02-12 20:29:42 +01:00
Miklos Vajna
66fce1f61e git pre-commit hook: block large files
Change-Id: Id27cfa805fc7cd0f4f6cc3d8bb770aa7abd536e1
2014-05-16 16:54:20 +02:00
Luboš Luňák
b3553246c6 grep actually doesn't normally know \t, but [:blank:] is [ \t]
Change-Id: Ie9bf8ea60f1c0595aa3ac2e0f9b3e6505af30e6c
2013-03-01 19:37:38 +01:00
Luboš Luňák
86b49aa44e warn about commit messages with accidental comments
The comment provided by git starts lines with '# ' (space or tab),
so warn if a line starts with # not followed by a space. It's most
likely something like '#ifdef UNX' or AOO's '#i103131#'. We already
have commits where git silently stripped off such lines.

Change-Id: Ic366d8ee64207edb8bb2fb1ef3a6a192f55872d8
2013-03-01 19:37:34 +01:00
Caolán McNamara
d21eb6bc91 add hook to block use of markup in .ui files
Change-Id: Ia7eed5e9e1f8fba9876730e909461dabc167deb9
2012-10-26 12:58:56 +01:00
Miklos Vajna
bab471569a if git hooks are moved, move the README as well
Change-Id: I1d9e64bf16b7572de120e9f81e9f13c7c4c11ca0
2012-10-25 18:40:07 +02:00
Norbert Thiebaud
9152c42a65 submodules migration
Change-Id: Ib3e472a4b1abf880f695be7a6667393d6a82f10d
2012-10-16 11:28:26 -05:00