You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by "Irvine, Chuck R [LTD]" <Ch...@embarq.com> on 2006/08/14 20:33:51 UTC

Commit log templates

We consider the ability to have commit log templates (something similar
to the CVS rcsinfo mechanism) a requirement really. I searched the
mailing list archives and found that there was past discussion on adding
this functionality and what the design would look like. Is this
functionality in the latest version of subversion or is it targeted to
an upcoming release? Thanks -Chuck

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


RE: Re: Commit log templates

Posted by Bart Robinson <lo...@pobox.com>.
On 2006-8-28 Chris.Fouts@qimonda.com wrote:
 > Bart, we're trying something similar, but using Perl scripts
 > that has a "built-in" template. However, users will have to
 > use the Perl scripts. Your way however, seems to be more
 > generic so I'd like to pursue it. Some questions though...
 > 
 > - I assume I'll have a script, say svnlog.sh, that contains
 >   the code you provided correct? This will reside on the 
 >   server side or client side?

The script needs to be runnable from wherever clients do
commits.  The server side would not need any modifications.  The
script assumes a Unix-like environment.  For Windows users you
may have to provide something different, although Cygwin might
be an option.

 > - Will I have to set my SVN_EDITOR to this script, ie,
 >   setenv SVN_EDITOR svnlog.sh?

Yep.

 > - In your pre-commit, is /project-foo/ just a stand-in
 >   for a real project, so one can use say $project for it?

That is just to restrict the template-enforcement to a
particular project (or branch of a project, etc).  If you want
it to apply to the whole repository you can of course remove the
svnlook check.

-- bart

 > 
 > -chris 
 > 
 > >-----Original Message-----
 > >From: Bart Robinson [mailto:lomew@pobox.com] 
 > >Sent: Friday, August 25, 2006 7:48 PM
 > >To: Garrett Rooney
 > >Cc: Irvine, Chuck R [LTD]; users@subversion.tigris.org
 > >Subject: Re: Commit log templates
 > >
 > >On 2006-8-14 Garrett Rooney <ro...@electricjellyfish.net> wrote:
 > > > On 8/14/06, Irvine, Chuck R [LTD] <Ch...@embarq.com> wrote:
 > > > > We consider the ability to have commit log templates 
 > >(something similar  > > to the CVS rcsinfo mechanism) a 
 > >requirement really. I searched the  > > mailing list archives 
 > >and found that there was past discussion on adding  > > this 
 > >functionality and what the design would look like. Is this  > 
 > >> functionality in the latest version of subversion or is it 
 > >targeted to  > > an upcoming release? Thanks -Chuck  >  > 
 > >There are various people who have talked about working on it, 
 > >but  > AFAIK nobody is currently working on it.
 > >
 > >A workaround is to make use of the SVN_EDITOR env var.  This 
 > >would of course require client-side configuration (at this 
 > >point providing a custom built svn with your log message 
 > >hardcoded is also an option).
 > >
 > >Here is an SVN_EDITOR script for Unix-like environments that 
 > >might work for you:
 > >
 > >---------------------------------------------------------------------
 > >#!/bin/sh
 > >#
 > ># Example SVN_EDITOR script
 > >#
 > >
 > >[ $# -eq 1 ] || {
 > >    echo "usage: $0 file"
 > >    exit 1
 > >}
 > >file=$1
 > >
 > >ed=$VISUAL
 > >[ -z $ed ] && ed=$EDITOR
 > >[ -z $ed ] && ed=vi
 > >
 > >cat <<ENDTEMPLATE >$file.$$
 > >BugId:
 > >Approved-By:
 > >ENDTEMPLATE
 > >
 > >cat $file >> $file.$$
 > >
 > >sum=`cksum $file.$$`
 > >if $ed $file.$$; then
 > >    newsum=`cksum $file.$$`
 > >    if [ "$newsum" != "$sum" ]; then
 > >        rm -f $file
 > >        mv $file.$$ $file
 > >    else
 > >        # no changes
 > >        rm -f $file.$$
 > >    fi
 > >else
 > >    echo "editor \"$ed\" failed"
 > >    exit 1
 > >fi
 > >---------------------------------------------------------------------
 > >
 > >You could then check the format of log messages in the 
 > >pre-commit hook, and if they are wrong the stderr can instruct 
 > >them how to properly configure their client, e.g.:
 > >
 > >------ in pre-commit ------------------------------------------------
 > ># Make sure they used the template
 > >if $SVNLOOK dirs-changed -t "$TXN" "$REPOS" | grep /project-foo/; then
 > >  $SVNLOOK log -t "$TXN" "$REPOS" | grep "^BugId:" > /dev/null || {
 > >    echo "*** Please configure your client to use the log 
 > >message template" >&2
 > >    echo "*** Instructions are here: http://foo" >&2
 > >    exit 1
 > >  }
 > >fi
 > >---------------------------------------------------------------------
 > >
 > >-- bart

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

RE: Re: Commit log templates

Posted by Ch...@qimonda.com.
Bart, we're trying something similar, but using Perl scripts
that has a "built-in" template. However, users will have to
use the Perl scripts. Your way however, seems to be more
generic so I'd like to pursue it. Some questions though...

- I assume I'll have a script, say svnlog.sh, that contains
  the code you provided correct? This will reside on the 
  server side or client side?
- Will I have to set my SVN_EDITOR to this script, ie,
  setenv SVN_EDITOR svnlog.sh?
- In your pre-commit, is /project-foo/ just a stand-in
  for a real project, so one can use say $project for it?

-chris 

>-----Original Message-----
>From: Bart Robinson [mailto:lomew@pobox.com] 
>Sent: Friday, August 25, 2006 7:48 PM
>To: Garrett Rooney
>Cc: Irvine, Chuck R [LTD]; users@subversion.tigris.org
>Subject: Re: Commit log templates
>
>On 2006-8-14 Garrett Rooney <ro...@electricjellyfish.net> wrote:
> > On 8/14/06, Irvine, Chuck R [LTD] <Ch...@embarq.com> wrote:
> > > We consider the ability to have commit log templates 
>(something similar  > > to the CVS rcsinfo mechanism) a 
>requirement really. I searched the  > > mailing list archives 
>and found that there was past discussion on adding  > > this 
>functionality and what the design would look like. Is this  > 
>> functionality in the latest version of subversion or is it 
>targeted to  > > an upcoming release? Thanks -Chuck  >  > 
>There are various people who have talked about working on it, 
>but  > AFAIK nobody is currently working on it.
>
>A workaround is to make use of the SVN_EDITOR env var.  This 
>would of course require client-side configuration (at this 
>point providing a custom built svn with your log message 
>hardcoded is also an option).
>
>Here is an SVN_EDITOR script for Unix-like environments that 
>might work for you:
>
>---------------------------------------------------------------------
>#!/bin/sh
>#
># Example SVN_EDITOR script
>#
>
>[ $# -eq 1 ] || {
>    echo "usage: $0 file"
>    exit 1
>}
>file=$1
>
>ed=$VISUAL
>[ -z $ed ] && ed=$EDITOR
>[ -z $ed ] && ed=vi
>
>cat <<ENDTEMPLATE >$file.$$
>BugId:
>Approved-By:
>ENDTEMPLATE
>
>cat $file >> $file.$$
>
>sum=`cksum $file.$$`
>if $ed $file.$$; then
>    newsum=`cksum $file.$$`
>    if [ "$newsum" != "$sum" ]; then
>        rm -f $file
>        mv $file.$$ $file
>    else
>        # no changes
>        rm -f $file.$$
>    fi
>else
>    echo "editor \"$ed\" failed"
>    exit 1
>fi
>---------------------------------------------------------------------
>
>You could then check the format of log messages in the 
>pre-commit hook, and if they are wrong the stderr can instruct 
>them how to properly configure their client, e.g.:
>
>------ in pre-commit ------------------------------------------------
># Make sure they used the template
>if $SVNLOOK dirs-changed -t "$TXN" "$REPOS" | grep /project-foo/; then
>  $SVNLOOK log -t "$TXN" "$REPOS" | grep "^BugId:" > /dev/null || {
>    echo "*** Please configure your client to use the log 
>message template" >&2
>    echo "*** Instructions are here: http://foo" >&2
>    exit 1
>  }
>fi
>---------------------------------------------------------------------
>
>-- bart
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
>For additional commands, e-mail: users-help@subversion.tigris.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


Re: Commit log templates

Posted by Bart Robinson <lo...@pobox.com>.
On 2006-8-14 Garrett Rooney <ro...@electricjellyfish.net> wrote:
 > On 8/14/06, Irvine, Chuck R [LTD] <Ch...@embarq.com> wrote:
 > > We consider the ability to have commit log templates (something similar
 > > to the CVS rcsinfo mechanism) a requirement really. I searched the
 > > mailing list archives and found that there was past discussion on adding
 > > this functionality and what the design would look like. Is this
 > > functionality in the latest version of subversion or is it targeted to
 > > an upcoming release? Thanks -Chuck
 > 
 > There are various people who have talked about working on it, but
 > AFAIK nobody is currently working on it.

A workaround is to make use of the SVN_EDITOR env var.  This
would of course require client-side configuration (at this point
providing a custom built svn with your log message hardcoded is
also an option).

Here is an SVN_EDITOR script for Unix-like environments that
might work for you:

---------------------------------------------------------------------
#!/bin/sh
#
# Example SVN_EDITOR script
#

[ $# -eq 1 ] || {
    echo "usage: $0 file"
    exit 1
}
file=$1

ed=$VISUAL
[ -z $ed ] && ed=$EDITOR
[ -z $ed ] && ed=vi

cat <<ENDTEMPLATE >$file.$$
BugId:
Approved-By:
ENDTEMPLATE

cat $file >> $file.$$

sum=`cksum $file.$$`
if $ed $file.$$; then
    newsum=`cksum $file.$$`
    if [ "$newsum" != "$sum" ]; then
        rm -f $file
        mv $file.$$ $file
    else
        # no changes
        rm -f $file.$$
    fi
else
    echo "editor \"$ed\" failed"
    exit 1
fi
---------------------------------------------------------------------

You could then check the format of log messages in the
pre-commit hook, and if they are wrong the stderr can instruct
them how to properly configure their client, e.g.:

------ in pre-commit ------------------------------------------------
# Make sure they used the template
if $SVNLOOK dirs-changed -t "$TXN" "$REPOS" | grep /project-foo/; then
  $SVNLOOK log -t "$TXN" "$REPOS" | grep "^BugId:" > /dev/null || {
    echo "*** Please configure your client to use the log message template" >&2
    echo "*** Instructions are here: http://foo" >&2
    exit 1
  }
fi
---------------------------------------------------------------------

-- bart

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Commit log templates

Posted by Garrett Rooney <ro...@electricjellyfish.net>.
On 8/14/06, Irvine, Chuck R [LTD] <Ch...@embarq.com> wrote:
> We consider the ability to have commit log templates (something similar
> to the CVS rcsinfo mechanism) a requirement really. I searched the
> mailing list archives and found that there was past discussion on adding
> this functionality and what the design would look like. Is this
> functionality in the latest version of subversion or is it targeted to
> an upcoming release? Thanks -Chuck

There are various people who have talked about working on it, but
AFAIK nobody is currently working on it.

-garrett

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org