svn2cl(1)
β¨ svn2cl(1) β¨
okay bestie, welcome to the svn2cl manual page π
this is a User Commands situation, and it's literally about turning your subversion logs into a ChangeLog. no cap. let's go π¦
πΈ NAME πΈ
svn2cl β Create a ChangeLog from a subversion log.
π SYNOPSIS π
svn2cl [OPTION]... [PATH]...
π DESCRIPTION π
So like, svn2cl generates a classic GNU-style ChangeLog out of the log messages in a subversion repository. iconic behavior honestly. it works as a wrapper around the svn log command, and it parses the XML output using an XSLT stylesheet. β¨ alternatively it can generate HTML output meant for use with the svn2html.css style sheet that ships with svn2cl.
On top of its own options, it accepts and passes along most svn log options too β go check svn help log for the list of those and their docs. if PATH isn't given, svn2cl will run svn log on the current directory, so it should do the right thing when you run it from the top of a subversion checkout of the project. main character energy fr fr π«Ά
--strip-prefix=NAMEβ StripNAMEfrom the first part of all file names (e.g.project/trunk). By default the current path inside the repository is stripped.--linelen=NUMβ Wrap lines atNUMcharacters. By default, lines are wrapped at 75 characters. This option is ignored when the--htmloption 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-dayoption. This option is ignored when the--htmloption is specified, editsvn2html.cssto tune the layout.-i,--include-revβ Include the subversion revision number in the ChangeLog. If the--htmloption is specified this is implied, editsvn2html.cssto turn it off.-a,--include-actionsβ Add action labels[ADD],[DEL]and[CPY]tags to files to show the operation that is performed on the files.--break-before-msg[=NUM]β Add a line break (or multiple line breaks) between the paths and the log message. If the--htmloption is specified this option is ignored, editsvn2html.cssto set spacing.--reparagraphβ Newlines inside paragraphs are ignored and paragraphs are re-wrapped. Paragraphs are separated by empty lines.--title=NAMEβ If outputting an HTML file theNAMEis used as the 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. IfNAMEcontains two hashes##that part will be replaced by the revision number, otherwise the revision number will be appended toNAME. Only the first occurrence of##will be replaced. This option is ignored for normal text output.--ticket-link=NAMEβ This option is used to generate links from references to tickets within the commit message in the generated HTML file. Anything that looks like a ticket reference (e.g.#foo) will be replaced with a link toNAMEwith the ticket part (fooin the example) appended. This option is ignored for normal text output.--ticket-prefix=NAMEβ This option is used for finding ticket markers in the commit message (when the--ticket-linkoption is used). The default value is#. This option is ignored for normal text output.--ignore-message-starting=STRINGβ Any log messages that start with the specifiedSTRINGare ignored and will not show up in the output. TheSTRINGcomparison is case sensitive.-o,-f,--output=FILE,--file=FILEβ Output ChangeLog toFILEinstead of the defaultChangeLog(orChangeLog.htmlfor HTML output).--stdoutβ Output ChangeLog to stdout instead of to a file.--authors=FILEβ TheFILEis 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--authorsoption 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. Thesvn2html.cssfile 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@arthurdejong.org>
</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@arthurdejong.org</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@arthurdejong.org>
β NOTES β
Note that the default revison range for svn log is BASE:1. This means that svn2cl will not always include the most recent revisons of the repository. Either run svn update before running svn2cl or pass -r HEAD:1.
okay this one matters bestie, don't come crying to me when your newest commits aren't in there π runsvn updatefirst or pass-r HEAD:1.
π 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, 2007, 2008, 2009, 2010, 2013 Arthur de Jong <arthur@arthurdejong.org>. This is free software; see the license for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
and that's the whole page bestie, you ate π β¨
Version 0.14 β Oct 2010 β from the svn2cl(1) manual. go forth and changelog, no cap π¦π
π¦ where this page comes from
- debian bookworm: svn2cl 0.14-3 Β· BSD-3-Clause
- debian trixie: svn2cl 0.14-3 Β· BSD-3-Clause
- fedora 43: svn2cl 0.14-23.fc43 Β· LicenseRef-Callaway-BSD
- fedora 44: svn2cl 0.14-24.fc44 Β· LicenseRef-Callaway-BSD
- ubuntu jammy: svn2cl 0.14-2 Β· BSD-3-Clause
- ubuntu noble: svn2cl 0.14-3 Β· BSD-3-Clause
- ubuntu questing: svn2cl 0.14-3
- ubuntu resolute: svn2cl 0.14-3build1 Β· BSD-3-Clause
- ubuntu stonking: svn2cl 0.14-3.1 Β· BSD-3-Clause
- Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2013 Arthur de Jong
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms