Hi Anders,
Ack with the following comments: 1) Is it possible to avoid the "HG" prefix from each line in the editor? 2) Can we document in the README a good "example commit message" that follows these guidelines. Thanks, Mathi. > -------- Original Message -------- > Subject: [devel] [PATCH 1 of 1] osaf: Update the commit message > template [#791] > Date: Mon, 17 Feb 2014 17:44:16 +0100 > From: Anders Widell <[email protected]> > To: <[email protected]> , <[email protected]> > CC: [email protected] > > tools/devel/review/00-README | 77 > ++++++------------------------------- > tools/devel/review/commit.template | 51 ++++++++++++++++++++++-- > tools/devel/review/hgeditor.sh | 32 +++++++++++++++ > 3 files changed, 91 insertions(+), 69 deletions(-) > > > Update the commit message template with the agreeed format for how to > write > commit messages in OpenSAF. Add a shell script that can be used to set > the > default commit message in Mercurial to the commit message template. > > diff --git a/tools/devel/review/00-README > b/tools/devel/review/00-README > --- a/tools/devel/review/00-README > +++ b/tools/devel/review/00-README > @@ -1,79 +1,24 @@ > Commit Message Format > ===================== > > -The patch review process heavily relies on properly formatted commit > message. > -This section will describe how commit message should be formatted and > the > -relation it has with the patch review process by email. > - > -A commit message should comply to the following template: > - > -* First line : 80-chars long one line short description (#ticket). > Describe what > - the patch is doing logically (not the bug > description) > -* Second line : Blank > -* Third line+ : 80-chars long lines for a more complete description > - > ------<-----<-----<-----<-----<----- > -example: this is a one line short description (#2000) > - > -This is a more elaborate description that explains your changes and > the > -original problem and how it got solved. > - > - * Blah > - * Blah > - > -Signed-off-by: John Doe <[email protected]> > ------<-----<-----<-----<-----<----- > - > -The first line will be grabbed by the 'hg email' command and added as > the > -subject of the patch, hence the why it should be short and precise. > Note that it > -also contains the "area/module/feature" of the changes (i.e. > example:). If you > -have trouble identifying the unique nature of the patch, your patch > is probably > -way to long and should be divided in a series. > - > -The Ticket # in a future integration will be used on the Trac web > interface to > -correlate tickets and commits. It will also be used by Mercurial > hooks to > -close/fix tickets automatically if needed. > - > -The long description gives more details about the patch/changeset. > - > -The SOB tag is the original patch author. > - > +The patch review process heavily relies on properly formatted commit > messages. > +Use the file commit.template in this directory as a template when > writing > +commit messages. Make sure that your commit message contains all the > necessary > +parts, i.e. the component name, a short description, the ticket > number and > +a long description. > > Default Commit Message Template > =============================== > > -Apparently Mercurial lacks the support of customizing the default > commit message > -based on a template file somewhere in the repository. > +Enter the following set of commands to set up the commit.template as > the default > +commit message in Mercurial (you need to log out and log in again for > the change > +to take effect): > > -The Qct extension can be installed and used in your ~/.hgrc profile > to point to > -a template file, so that you're nagged every time how to fill the > commit > -message properly ;) > - > -For instance under Red Hat/Fedora the package is called > 'qct-mercurial' > - > - % yum install qct-mercurial > - % yum install qct > - > -http://www.selenic.com/mercurial/wiki/index.cgi/QctExtension > - > -Under './tools/devel/review/commit.template', you'll find a default > template that you > -can use with the Qct extension. The extension automatically looks for > a template > -file under `hg root`/.commit.template, a copy is already placed in > the OpenSAF > -repository for developer that would like to use the Qct extension. > - > ------<-----<-----<-----<-----<----- > -[extensions] > -hgext.qct = > - > -[qct] > -signoff = Signed-off-by: John Doe <[email protected]> > ------<-----<-----<-----<-----<----- > - > -To use the Qct Extension, you'll have to commit your changes using > the 'hg > -commit-tool | hg qct' command. The tool has neat features, like > dynamically > -deciding which files will be part of the current commit etc. But it > might bug > -some developers since it pops up a GUI. > - > +mkdir ~/bin > +cp hgeditor.sh ~/bin > +chmod 755 ~/bin/hgeditor.sh > +echo "export HGEDITOR=~/bin/hgeditor.sh" >> ~/.bashrc > +echo "setenv HGEDITOR ~/bin/hgeditor.sh" >> ~/.cshrc > > Mercurial Settings Needed for Email Review > ========================================== > diff --git a/tools/devel/review/commit.template > b/tools/devel/review/commit.template > --- a/tools/devel/review/commit.template > +++ b/tools/devel/review/commit.template > @@ -1,6 +1,47 @@ > -module: this is a one line short description > +component: short_description [#ticket_number] > > -Ticket #xxx (delete me if none) > - > -This is a more elaborate description that explains your changes and > the > -original problem and how it got solved. > +long_description > +HG: > +HG: Enter commit message. Lines beginning with 'HG:' are removed. > +HG: An empty message aborts the commit. > +HG: > +HG: Edit the different parts of the commit message template above as > follows: > +HG: > +HG: component > +HG: Concatenation of the "Component" and "Part" fields of the > ticket in > +HG: the OpenSAF ticket system at SourceForge. The "Part" field > is > +HG: optional. Write in lower case, with no space or other > character > +HG: between the component and the part. Follow with a colon and > then a > +HG: space. > +HG: > +HG: short_description > +HG: A one-line (max 80 characters) description of the > changeset, starting > +HG: with a verb in present tense (e.g. Add, Fix, Change, ...) > +HG: > +HG: ticket_number > +HG: The ticket number in the OpenSAF ticket system at > SourceForge. The > +HG: ticket number shall be preceded with a hash sign and > surrounded with > +HG: square brackets, so that SourceForge recognizes it as a > ticket > +HG: reference and inserts a hyperlink when displaying the > commit message > +HG: on a web page. > +HG: > +HG: long_descrption > +HG: The long description shall be a more elaborate description > of what > +HG: has been changed and why. For defect tickets, the long > description > +HG: should consist of three parts, separated by blank lines: > +HG: > +HG: visible_symptoms_of_the_problem > +HG: > +HG: analysis_of_the_cause > +HG: > +HG: description_of_the_solution > +HG: > +HG: The visible_symptoms_of_the_problem should show how the > problem > +HG: manifests itself, e.g. actual (and verbatim) log messages > taken from > +HG: a system where the problem occurred. If the problem happens > again, it > +HG: should be easy to search for the log messages to find the > changeset > +HG: containing the fix. > +HG: > +HG: The analysis_of_the_cause shall explain the fault in the > program > +HG: code. The description_of_the_solution shall explain how the > changeset > +HG: corrects the fault in the program code. > diff --git a/tools/devel/review/hgeditor.sh > b/tools/devel/review/hgeditor.sh > new file mode 100755 > --- /dev/null > +++ b/tools/devel/review/hgeditor.sh > @@ -0,0 +1,32 @@ > +#!/bin/bash > + > +hgeditor="" > +if test -n "$VISUAL" -a -z "$hgeditor"; then > + hgeditor=$(type -p "$VISUAL") > +fi > +if test -n "$EDITOR" -a -z "$hgeditor"; then > + hgeditor=$(type -p "$EDITOR") > +fi > +if test -z "$hgeditor"; then > + hgeditor=$(type -p emacs) > +fi > +if test -z "$hgeditor"; then > + hgeditor=$(type -p vi) > +fi > +if test -z "$hgeditor"; then > + echo "Cannot find a suitable editor. Please set the environment > variable" > + echo "EDITOR" > + exit 1 > +fi > + > +template_file=$(hg root)/tools/devel/review/commit.template > +if test -s "$template_file"; then > + grep -E "^HG:" "$1" >& /dev/null && cp "$template_file" "$1" > + test -s "$1" || cp "$template_file" "$1" > + "$hgeditor" "$1" > + diff -Bw "$template_file" "$1" > /dev/null && exit 1 > + sed -i -e "/^\HG:/d" "$1" > +else > + "$hgeditor" "$1" > +fi > +grep '[^ \t]' "$1" > /dev/null > > ------------------------------------------------------------------------------ > Managing the Performance of Cloud-Based Applications > Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. > Read the Whitepaper. > http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk > _______________________________________________ > Opensaf-devel mailing list [email protected] > https://lists.sourceforge.net/lists/listinfo/opensaf-devel ------------------------------------------------------------------------------ Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
