Tool collecting path entries across SVN history
Project description
About
svneverever helps you inspect the structure of a SVN repository and the changes made to it over time. Its most common use probably is in combination with svn-all-fast-export (or "KDE's svn2git" if you wish).
Example
In the following shell session I am first dumping the SVN history of
headphone effect library bs2b
using rsvndump.
(I could pass svn://svn.code.sf.net/p/bs2b/code/
to svneverever directly
but it would mean to download all history for each run to svneverever.)
# svnadmin create bs2b_svn_store
# time sh -c 'rsvndump svn://svn.code.sf.net/p/bs2b/code/ | svnadmin load bs2b_svn_store/'
[..]
real 2m54.403s
user 0m1.003s
sys 0m1.300s
After dumping the SVN history, I make svneverever show a tree of all directories in there ever ever.
# svneverever --no-progress bs2b_svn_store/
Analyzing 175 revisions...
( 1; 175) /branches
( 66; 76) /libbs2b-config-header
[..]
( 1; 175) /tags
(109; 175) /description
[..]
( 46; 175) /libbs2b
[..]
( 28; 46) /libbs2b-2.2.1
[..]
( 31; 175) /plugins
[..]
( 1; 175) /trunk
( 80; 175) /description
( 80; 175) /img
( 2; 175) /libbs2b
( 2; 175) /doc
( 2; 80) /img
( 2; 6) /src
( 4; 175) /m4
( 2; 175) /src
( 2; 175) /win32
( 2; 175) /bs2bconvert
( 2; 175) /bs2bstream
( 2; 175) /examples
( 2; 175) /sndfile
( 2; 175) /plugins
( 38; 175) /audacious
( 38; 175) /m4
( 38; 175) /src
( 24; 175) /foobar2000
(143; 175) /ladspa
(144; 175) /m4
(143; 175) /src
( 39; 175) /qmmp
( 2; 175) /vst
( 2; 175) /src
( 2; 175) /resources
( 2; 175) /win32
(117; 175) /winamp
( 2; 175) /xmms
( 12; 175) /m4
( 12; 175) /src
The ranges on the left indicate at what revision folders appeared first and got deleted latest. You can see a few things in this very output:
-
That a branch called "libbs2b-config-header" got deleted at revision 76.
-
In which order bs2b plug-ins appeared over time.
-
That tag "libbs2b-2.2.1" was deleted at the same revision that a tag folder "libbs2b" appeared.
Let's see if that tag was actually moved into that tag subfolder. Yes it was:
# svneverever --no-progress --tags --flatten bs2b_svn_store/ | grep '2.2.1$'
Analyzing 175 revisions...
(110; 175) /tags/description/2.2.1
( 47; 175) /tags/libbs2b/2.2.1
( 28; 46) /tags/libbs2b-2.2.1
Next I have a look at who the committers where, when they joined or left and how many commits the did (though that last number is of limited value).
# svneverever --no-progress --committers bs2b_svn_store/
Analyzing 175 revisions...
81 ( 1; 174) boris_mikhaylov
94 ( 4; 175) hartwork
Installation
If your Linux distribution of choice does not come with a package for svneverever yet, you can install svneverever using pip from PyPI
# pip install svneverever
or from a Git clone:
# git clone https://github.com/hartwork/svneverever.git
# cd svneverever
# python setup.py install --user
# echo 'export PATH="${HOME}/.local/bin:${PATH}"' >> ~/.bashrc
Besides Python 2.7/3.5/3.6, svneverever's only dependency is pysvn.
Usage
# svneverever --help
usage: svneverever [-h] [--version] [--committers] [--no-numbers]
[--no-progress] [--non-interactive] [--tags] [--branches]
[--no-dots] [--depth DEPTH] [--flatten]
[--unknown-committer NAME]
REPOSITORY
Collects path entries across SVN history
positional arguments:
REPOSITORY Path or URI to SVN repository
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
mode selection arguments:
--committers Collect committer names instead of path information
(default: disabled)
common arguments:
--no-numbers Hide numbers, e.g. revision ranges (default: disabled)
--no-progress Hide progress bar (default: disabled)
--non-interactive Will not ask for input (e.g. login credentials) if
required (default: ask if required)
path tree mode arguments:
--tags Show content of tag folders (default: disabled)
--branches Show content of branch folders (default: disabled)
--no-dots Hide "[..]" omission marker (default: disabled)
--depth DEPTH Maximum depth to print (starting at 1)
--flatten Flatten tree (default: disabled)
committer mode arguments:
--unknown-committer NAME
Committer name to use for commits without a proper
svn:author property (default: "<unknown>")
Please report bugs at https://github.com/hartwork/svneverever. Thank you!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file svneverever-1.5.0.tar.gz
.
File metadata
- Download URL: svneverever-1.5.0.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf5dee9b65ef4683954fe34dd2f70327a27b84079abb38f70197ccf229a19acf |
|
MD5 | 4867999cdd657ddaa9b671092124e429 |
|
BLAKE2b-256 | 80c711e348438ef0347455812c05c047c34e463b903f7ffb1d182b27f71ee9bc |
File details
Details for the file svneverever-1.5.0-py3-none-any.whl
.
File metadata
- Download URL: svneverever-1.5.0-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b1ce4ee9ff5cd40f0ae1a464ecdd310314126f69b582c1eee6b46fba49827fb |
|
MD5 | b325b67183adfb4e1852fe9f95ee3d74 |
|
BLAKE2b-256 | e553c83114878c8a62d64f45cb465ba883ea851d4b7b0f6c12e41e0b1331b86e |