[flashrom] [PATCH] Convert flashrom to git
Nico Huber
nico.h at gmx.de
Tue Nov 22 23:57:05 CET 2016
Hi Stefan,
could you please split this up? I started to review but I guess the
patch will have gone through some revisions before I'm done reading.
On 21.11.2016 01:19, Stefan Tauner wrote:
> - Drop support for Subversion in the getrevision script and Makefile.
> - Add .gitignore file
> - Restore modification dates of the exported files from the SCM.
> - Stop exporting SCM log dumps to CHANGELOG. This makes no sense.
> - Do not export the pre-"compiled" manpage. It can be generated like
> anything else from the code dump when we export the respective variable.
> The latter is added with this change.
> - Add some initial client-side git hooks
> * When committing check for obvious stuff you never want anyway:
> - white space errors
> - duplicate sign-offs
> * When pushing to the upstream repository check mandatory rules:
> - existing signoffs and acks in all new commits
> - no deletions or creation of branches
> - do not rewrite history of the precious branches, even if forced
> - Change version string of flashrom as follows.
> Previously, we included the last stable version according to a hard-
> coded string in the Makefile and appended the subversion revision number.
>
> With this patch the version string includes the last reachable git tag,
> number of commits since said tag in the upstream branches (if any),
> the name of said upstream branch, number of commits since that branch
> (if any), and the shortened git hash.
> In case there are uncommitted changes a "-dirty" indicator is also added.
> The case of unknown versions is explicitly handled in getrevision instead
> of simply appending "-unknown" to a hardcoded release number.
>
> The version information is either taken from an existing git remote
> pointing to an upstream repository (or a known mirror), or if that
> is not available - with the user's consent - a shadow copy is fetched
> from the upstream repo that is updated on every build (usually takes
> less than a second).
>
> In the following some examples of the version string changes are shown.
> Basically we print the distance to the last known upstream tag, which
> comprises any upstream commits since that tag as well as local commits on
> top of that. Additionally we handle upstream's stable and staging branches
> specially.
>
> Old output:
> flashrom v0.9.7-r1716 on Linux 3.8.0-6-generic (x86_64)
>
> New output variants:
>
> Build of the 0.9.99 release without any changes:
> flashrom 0.9.99-e4f6643 on Linux 3.13.0-76-generic (x86_64)
Well, that's redundant. Why doesn't it just say 0.9.99? If somebody
would forge the tag locally, he could also just override getrevision.sh.
Nico
>
> 5 commits since last tag in upstream's stable branch:
> flashrom 0.9.99-5-stable-e4f6643-dirty on Linux 3.13.0-76-generic (x86_64)
>
> 3 commits since last tag in upstream's staging branch and
> 4 local commits on top of that:
> flashrom 0.9.99-3-staging-4-e4f6643 on Linux 3.13.0-76-generic (x86_64)
>
> 3 commits since last tag in upstream's staging branch and
> 4 local commits on top of that, and some local uncommitted changes too:
> flashrom 0.9.99-3-staging-4-e4f6643-dirty on Linux 3.13.0-76-generic (x86_64)
>
> 3 commits since the last tag in an unrelated upstream branch
> (e.g., a stable release *branch* such as 0.9.99) or local branch:
> flashrom 0.9.99-3-e4f6643 on Linux 3.13.0-76-generic (x86_64)
>
> No tags reachable from current commit (generic git fallback):
> flashrom d95935a version on Linux 3.13.0-76-generic (x86_64)
>
> Not in a repository:
> flashrom unknown version on Linux 3.13.0-76-generic (x86_64)
>
> Signed-off-by: Stefan Tauner <stefan.tauner at alumni.tuwien.ac.at>
> Acked-by: Stefan Tauner <stefan.tauner at alumni.tuwien.ac.at>
More information about the flashrom
mailing list