kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #38219
Re: [PATCH] Add clang-format pre-commit git hook
John,
I merged your patch. Hopefully new devs will use it format their
patches before the submit them.
Thanks,
Wayne
On 10/22/2018 1:29 PM, John Beard wrote:
> Hi Wayne,
>
> If you have git-clang-format installed (you will do if you have clang on
> Arch, for example), you can just run `git clang-format --diff` to see
> violations in the uncommitted changes (according to the `_clang-format`
> file). This is already possible, though you *should* still set `git
> config clangFormat.style file` to ensure it uses the KiCad
> `_clang-format` file.
>
> I have added a env var switch to the format pre-commit hook. If you set
> `KICAD_CHECK_FORMAT` to something in the shell, it will run the check.
> Then the default action is "do not check at all" (as the var is not
> set). Developers can then add to shell configs and/or set/unset/export
> as they need.
>
> We can use the same technique to selectively enable other hooks in future.
>
> Documentation also updated.
>
> Cheers,
>
> John
>
> On 22 October 2018 17:50:41 BST, Wayne Stambaugh <stambaughw@xxxxxxxxx
> <mailto:stambaughw@xxxxxxxxx>> wrote:
>
> Hey John,
>
> Is there a way to set this up in git where you can run clang-format on
> demand rather than using --no-verify to ignore the hook? I don't know
> if I want to force this on developers so it would be nice if it would
> only be run when requested.
>
> Cheers,
>
> Wayne
>
> On 10/19/2018 12:30 PM, John Beard wrote:
>
> Hi,
>
> This is a patch to add a hook to check formatting for *changed lines
> only* when committing to Git.
>
> It is good that KiCad has a style, but it is a highly unique one and
> many people will not be used to writing it. Making it easier for
> people to find mistakes without having to waste the maintainers'
> time
> and their own ping-ponging patches on the mailing list should be the
> aim.
>
> By using git-clang-format, we can allow style checking on the
> changes
> only, so we avoid a huge reformat of the whole code-base (which is,
> despite best efforts, highly inconsistent, so there would be
> many many
> changes).
>
> Instructions are in the dev docs, but basically:
>
> * Install `git-clang-format` (comes with the `clang` package on
> Arch, at least)
> * Enable the hooks: `git config core.hooksPath .githooks`
> * Make sure it uses the right style source: `git config
> clangFormat.style file`
>
> Then it should just work - if you try to commit badly-styled code it
> will tell you what it would change if you ran git clang-format
> on it.
> If you disagree, you can commit anyway with `git commit --no-verify`
> (aka `-n`).
>
> Also included is a general "hook-chain" implementation for running
> multiple hooks.
>
> Cheers,
>
> John
> ------------------------------------------------------------------------
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
> ------------------------------------------------------------------------
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
References