工具收集SVN历史记录中的路径条目
项目描述
关于
svneverever 帮助您检查SVN仓库的结构以及随时间对其所做的更改。它最常用的用途是与 svn-all-fast-export(或“KDE的svn2git”)结合使用。
安装
依赖关系
svneverever 需要 Python 3.7 或更高版本和 PySVN(SourceForge上的,而不是PyPI上的)。如果您想使用 pip 安装 svneverever,则需要一些额外的包。对于 Debian/Ubuntu,以下应该可行
# sudo apt install python3-svn python3-pip
系统包管理器
一些发行版 为 svneverever 提供了本地包
pip
以用户身份安装pip以避免与Python系统文件混淆。
# pip install --user svneverever
从源代码安装
# git clone https://github.com/hartwork/svneverever.git
# cd svneverever
# python3 setup.py install --user
# echo 'export PATH="${HOME}/.local/bin:${PATH}"' >> ~/.bashrc
用法
svneverever 需要包含完整历史的“服务器端”仓库。有两种方法可以获得这种。以 耳机效果库bs2b 的SVN历史记录为例。
第一种方法是将 svneverever 直接指向服务器 svneverever svn://svn.code.sf.net/p/bs2b/code/
。然而,这种方法速度较慢,会对服务器造成很大压力,多次运行可能不太有趣。
第二种也是推荐的方法是首先使用 svnrdump dump
(随 Subversion >=1.7 一起提供)或 rsvndump
(具有略不同的功能集并支持 Subversion 的较旧版本)。对于这种方法,我们首先需要使用 svnadmin
创建一个空的仓库,然后将 svnrdump/rsvndump 的输出加载到其中。可以按照以下方式操作
使用 svnrdump dump
# svnadmin create bs2b_svn_store
# time sh -c 'svnrdump dump svn://svn.code.sf.net/p/bs2b/code/ | svnadmin load bs2b_svn_store/'
[..]
real 0m3.008s
user 0m0.309s
sys 0m0.235s
使用 rsvndump
# 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
现在可以通过将 svneverever 指向 svn 存储目录 bs2b_svn_store
来获取输出。
# svneverever --no-progress bs2b_svn_store/
分析输出
直接方法或 rsvndump 方法的输出将相同,如下所示
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
左侧的范围表示文件夹首次出现和最后删除的修订版本。
您可以从输出中看到一些内容
- 名为
libbs2b-config-header
的分支在修订版本 76 被删除。 - 在
plugins
中插件随时间出现的顺序。 - 标签
libbs2b-2.2.1
在与标签文件夹libbs2b
出现相同的修订版本中被删除。
最后一个我们可以验证的项目是它是否确实被移动到那个标签子文件夹。
# 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
接下来,我查看提交者是谁,他们何时加入或离开,以及他们提交了多少次(尽管最后一个数字的价值有限)。这有助于为 svn2git 编写身份映射。
# svneverever --no-progress --committers bs2b_svn_store/
Analyzing 175 revisions...
81 ( 1; 174) boris_mikhaylov
94 ( 4; 175) hartwork
--help
输出
# 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!
项目详情
下载文件
下载适合您平台文件的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。
源分发
构建分发
svneverever-1.7.2.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | bf8accfdcf1bc321dc1d6c51a34660072c1565fc3fd700173aa9c64f6b48d294 |
|
MD5 | 08cafcd00bc35b47fb07ad1fa7c91172 |
|
BLAKE2b-256 | ad87a6d0a321aa383081d22916431e63880f4dc1f260c65f9019ce3f701e2a70 |
svneverever-1.7.2-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 2c88d6202b72a1121d567a569cde4c355a31ade5ac4993f4ef61f825dcd90100 |
|
MD5 | ebb7749695c7f653b81f8405a46a8d0c |
|
BLAKE2b-256 | 77d56bf03f0858903a979b199c1a1fd51b8d8b74657e4b147496bb0f184eee27 |