NAME
svn2cl - Create a ChangeLog from a subversion log.
SYNOPSIS
svn2cl [OPTION]... [PATH]...
DESCRIPTION
svn2cl generates a classic GNU-style
ChangeLog from the log messages in a subversion repository. It acts
as a wrapper around the `svn log' command, parsing the XML
output with an XSLT stylesheet. Alternatively it can generate HTML
output intended for use with the svn2html.css style sheet
that comes with svn2cl.
In addition to its own options, it accepts and passes along most
svn log options; see `svn help log' for a list of those and
their documentation. If PATH is not given, svn2cl will run
svn log on the current directory, so it should do the right thing
when run from the top of a subversion checkout of the project.
- --strip-prefix=NAME
- Strip NAME from the first part of all file names (e.g.
project/trunk). By defaults the current path inside the repository
is stripped.
- --linelen=NUM
- Wrap lines at NUM characters. By default, lines are
wrapped at 75 characters. This option is ignored when the --html
option is specified.
- --group-by-day
- This option causes all commit messages to be grouped by day, as
long as all the changes are by the same author. By default each
message is listed separately with its own timestamp.
- --separate-daylogs
- Include a blank line between log entries when they are grouped
by day. Only useful with the --group-by-day option. This
option is ignored when the --html option is specified, edit
svn2html.css to tune the layout.
- -i, --include-rev
- Include the subversion revision number in the ChangeLog. If the
--html option is specified this is implied, edit
svn2html.css to turn it off.
- --break-before-msg[=NUM]
- Add a line break (or multiple line breadks) between the paths
and the log message. If the --html option is specified this option
is ignored, edit svn2html.css to set spacing.
- --reparagraph
- Newlines inside paragraphs are ignored and paragraphs are
re-wrapped. Paragraphs are separated by empty lines.
- --title=NAME
- --title=NAME
- If outputting an HTML file the NAME is used as the
title. This option is ignored for normal text output.
title. This option is ignored for normal text output.
- --revision-link=NAME
- This option is used to generate links from the revision numbers
in the generated HTML file. If NAME contains two hashes
`##' that part will be replaced by the revision number,
otherwise the revision number will be appended to NAME. Only
the first occurrence of `##' will be replaced.
This option is ignored for normal text output.
- -o, -f, --output=FILE,
--file=FILE
- Output ChangeLog to FILE instead of the default
ChangeLog (or ChangeLog.html for HTML output).
- --stdout
- Output ChangeLog to stdout instead of to a file.
- --authors=FILE
- The FILE is used to map author names as exported by svn
to full names. See the section on AUTHORS FILES below for more
information.
Note that the --authors option can have poor performance in some
cases.
- --html
- Generate an HTML file containing a ChangeLog instead of the
default text ChangeLog file. This feature is still experimental.
The svn2html.css file that is included in the distribution
can be used to format the HTML.
- -h, --help
- Show short summary of options.
- -V, --version
- Show version of program.
Optional PATH arguments and the following options are passed
directly to the `svn --xml log' command: -r,
--revision, --targets, --stop-on-copy,
--username, --password, --no-auth-cache,
--non-interactive, --config-dir and
--limit.
See `svn help log' for more information on these options.
AUTHORS FILES
An authors file is basically an XML file that should look
something like:
<?xml version="1.0" encoding="utf-8"?>
<authors>
<author uid="arthur">
Arthur de Jong <
arthur@ch.tudelft.nl>
</author>
</authors>
svn2cl searches for <author> tags with the specified uid
attribute. The content from the author tag is substituted for the
author name.
The <author> tag may also contain XML child tags which can
be useful for embedding HTML into the result. For this to work
namespace information should be included for HTML output:
<?xml version="1.0" encoding="utf-8"?>
<authors xmlns:html="http://www.w3.org/1999/xhtml">
<author uid="arthur">
Arthur de Jong <<html:b>
arthur@ch.tudelft.nl</html:b>>
</author>
</authors>
The svn2cl distribution contains a sample authors.xml file.
As a bonus a plain text authors file that looks like the
following is automatically converted to the XML representation:
arthur:Arthur de Jong <
arthur@ch.tudelft.nl>
EXAMPLES
Run svn log recursively on the current directory and generate a
text ChangeLog file in the current directory for the entire log
history:
svn2cl
Output the changes from the last week, while including revision
numbers in the ChangeLog:
svn2cl -i -r "HEAD:{`date -d '7 days ago' '+%F %T'`}"
(actually subversion will include the first revision before the
specified period)
Generate an HTML changelog for svn://svn.example.com/project/trunk,
removing "project/trunk" from the file names in the changelog.
Group all commits per day into one ChangeLog entry and only include
changes from 2005:
svn2cl --html --strip-prefix=project/trunk --group-by-day \
-r '{2006-01-01}:{2005-01-01}'
svn://svn.example.com/project/trunk
SEE ALSO
`svn help log'
COPYRIGHT
Copyright © 2005, 2006 Arthur de Jong
<arthur@ch.tudelft.nl>.
This is free software; see the license for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.