svnutils
Project home
If you were registered and logged in, you could join this project.
The use of the Subversion version control
system is a vital part of many projects, and along with this use
follows commands and tasks you do maybe several times a day and
would like to automate or combine.
Wrappers around the svn executable to extend built-in svn features,
or other utilities for tasks svn does not (yet) do.
Examples of this could be merge tracking, repository statistics
and other information, diff tools and so on.
In the world of the command line, even a one-liner of a script could
provide interesting functionality.
svnutils is a collection
of those utilities.
Scripts or aliases which is ran maybe dozens of times a day, or
heavier tools to make the daily use of Subversion a little easier.
The svnutils project has room for anyone who want to use or
contribute scripts they find useful, but isn’t big enough to have
its own package.
Please contribute to the project and let’s create a collection of
nice utilities for day-to-day use, hook scripts, libraries or bigger
programs for more complicated tasks.
Instead of having lots of small projects and scripts that never gets
out of people’s ~/bin directories, all these programs
can be merged into a powerful collection of Subversion tools.
Project contents
At the moment, these scripts and programs are available:
UNIX-like environments
- svndiff
Script for looking at differences in a directory tree. Uses
vimdiff(1) as default, but can also use other diff programs for
viewing.
Useful for viewing the changes in text files before commit or
resolving conflicts.
Can also be configured to work with binary tools if the right
tools are available.
- mergesvn
Merge changes between files or directories and store the point of
the last merge in a special "mergesvn" property.
A master location (file or directory) is defined, and other
elements in the same or another repository can be updated along
with the development in the master element.
Includes functionality to locate merge conflicts in a revision
range and show differences between the source and destination of
the merge.
- asvn
Archive SVN (asvn) will allow the recording of file types not
normally handled by svn.
Currently this includes devices, symlinks and file
ownership/permissions.
- svnbranchroot
Find the root of a branch. Takes one parameter — the branch, and
finds the root revision of the branch — the revision from which it
was made.
Especially good for investigating tags.
What revision of the parent branch was this tag made from?
- svnmimeset.sh
This script runs through all files in a hierarchy and sets the
Subversion MIME type on all recognized file extensions.
It takes one or more "mime.types" files as input, which are in the
format of Apache's "mime.types" file.
- convkeyw
Convert RCS/Subversion/CVS keywords in various ways, for example
stripping dollars and keyword name directly from text files.
Designed for use when releasing files and the keywords should not
be changed by other programs.
- sident
A better (IMHO) ident(1).
Does not abort on directories or other non-files, limits the
output to known keywords by CVS and Subversion, and also lists
compressed keywords.
- svedit
Shortcut for editing log messages.
Can be run directly in the working copy or against a remote or
local repository.
- svnrevs
One-liner when called instead of the svn executable will display
all revisions as a comma-separated list.
Can be used for log messages, scripts etc. Needs Perl.
- nosvn
The tiniest script of them all, but also quite useful in pipes and
shell commands.
Filters out .svn directories from a stream of file
names.
MS Windows
- SvnHotCopy.wsf
Made to run as scheduled task from a directory you are free to
choose. If you like to use it in a post-commit, use the files
post-commit.bat and post-commit-wrapper.wsf together with
SvnHotCopy.wsf and place them all in the hooks directory.
- post-commit-wrapper.wsf
A wrapper script that calls other scripts. In this version calls
the SvnHotCopy.wsf
- post-commit.bat
To be placed in the repository hooks directory. This file is made
to call the script post-commit-wrapper.wsf.
Internet Relay Chat
See you in #svnutils on irc.freenode.net .
License
GNU General Public License, see the COPYING
file for details.
Related resources
$Id: index.html 207 2007-04-05 15:31:57Z sunny256 $