Metadata-Version: 2.1
Name: svneverever
Version: 1.5.0
Summary: Tool collecting path entries across SVN history
Home-page: https://github.com/hartwork/svneverever
Author: Sebastian Pipping
Author-email: sebastian@pipping.org
License: GPL v3 or later
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](https://github.com/svn-all-fast-export/svn2git)
        (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](http://bs2b.sourceforge.net/)
        using [rsvndump](http://rsvndump.sourceforge.net/).
        (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**.)
        
        ```console
        # 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.
        
        ```console
        # 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:
        
        ```console
        # 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).
        
        ```console
        # 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
        
        ```console
        # pip install svneverever
        ```
        
        or from a Git clone:
        
        ```console
        # 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](https://pysvn.sourceforge.io/).
        
        
        # Usage
        
        ```console
        # 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!
        ```
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Version Control
Classifier: Topic :: Utilities
Description-Content-Type: text/markdown
