Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tools for analyzing, updating and adding copyright headers in source files #8674

merged 1 commit into from Nov 2, 2016
Changes from all commits
File filter...
Filter file types
Jump to…
Jump to file or symbol
Failed to load files and symbols.


Just for now

@@ -24,21 +24,64 @@ the script should be called from the git root folder as follows.
git diff -U0 HEAD~1.. | ./contrib/devtools/ -p1 -i -v
Provides utilities for managing copyright headers of `The Bitcoin Core
developers` in repository source files. It has three subcommands:

Every year newly updated files need to have its copyright headers updated to reflect the current year.
If you run this script from the root folder it will automatically update the year on the copyright header for all
source files if these have a git commit from the current year.
$ ./ report <base_directory> [verbose]
$ ./ update <base_directory>
$ ./ insert <file>
Running these subcommands without arguments displays a usage string.

For example a file changed in 2015 (with 2015 being the current year):
copyright\ report \<base\_directory\> [verbose]

```// Copyright (c) 2009-2013 The Bitcoin Core developers```
Produces a report of all copyright header notices found inside the source files
of a repository. Useful to quickly visualize the state of the headers.
Specifying `verbose` will list the full filenames of files of each category.

would be changed to:
copyright\ update \<base\_directory\> [verbose]
Updates all the copyright headers of `The Bitcoin Core developers` which were
changed in a year more recent than is listed. For example:
// Copyright (c) <firstYear>-<lastYear> The Bitcoin Core developers
will be updated to:
// Copyright (c) <firstYear>-<lastModifiedYear> The Bitcoin Core developers
where `<lastModifiedYear>` is obtained from the `git log` history.

```// Copyright (c) 2009-2015 The Bitcoin Core developers```
This subcommand also handles copyright headers that have only a single year. In
those cases:
// Copyright (c) <year> The Bitcoin Core developers
will be updated to:
// Copyright (c) <year>-<lastModifiedYear> The Bitcoin Core developers
where the update is appropriate.

copyright\ insert \<file\>
Inserts a copyright header for `The Bitcoin Core developers` at the top of the
file in either Python or C++ style as determined by the file extension. If the
file is a Python file and it has `#!` starting the first line, the header is
inserted in the line below it.

The copyright dates will be set to be `<year_introduced>-<current_year>` where
`<year_introduced>` is according to the `git log` history. If
`<year_introduced>` is equal to `<current_year>`, it will be set as a single
year rather than two hyphenated years.

If the file already has a copyright for `The Bitcoin Core developers`, the
script will exit.
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.