从SVN历史列出作者,包括已删除(未合并)的分支

时间:2018-02-27 15:09:34

标签: svn

我正在将open source project表单Subversion迁移到git,我在创建authors文件时遇到了一些问题:

有一次,有人在SVN中删除了一个分支。他没有将它合并回来,只是将其删除了。因此,当我运行svn log -g --quiet -r 1:HEAD时,结果不包括对已删除分支进行的任何提交。这意味着我的最终SVN用户列表中缺少任何只提交此,删除,分支的人。

到目前为止,我一直无法找到包含所有此类用户的SVN语法。它们是必要的,因为git迁移过程是不可原谅的。它将跟踪这个已删除的分支,因此需要用户。

有什么建议吗?

编辑:我点了一下子弹并手动将所有用户添加到我的作者文件中。为了做到这一点,我发现了删除分支的提交,并抓住了一个日志到那一点:这让我得到了所有遗漏的提交。

编辑2:我正在处理的回购邮件是:https://svn.atozed.com:444/svn/Indy10,可以使用用户名 Indy-Public-RO <以只读模式访问/ strong>即可。有问题的树删除发生在修订版4493和4494中。 您可以通过尝试提取日志1216-1219(例如svn log -g --quiet -r 1200:1220

来验证问题

1 个答案:

答案 0 :(得分:2)

尝试使用存储库的绝对基本URL (即存储库的最顶层文件夹)运行log命令,例如:

svn log http://your-server.com/svn/your-repo -g --quiet -r 1:HEAD

我只是尝试使用我的旧存储库并且日志不会丢失单个版本。

编辑1:我发现您已经解决了问题,但我想扩展上述方法 - 我确信这应该可行。考虑以下脚本来创建一个repo并做一些工作:

#!/bin/bash
mkdir -p ~/tmp/svntest
cd ~/tmp/svntest
svnadmin create ~/tmp/svntest/repo
svn co file:///home/oink/tmp/svntest/repo wc
svn mkdir wc/trunk wc/branches wc/tags
svn ci wc -m "created repo structure" --username user1
echo change1 > wc/trunk/test.txt
svn add wc/trunk/test.txt
svn ci wc -m "committed change1 to trunk" --username user2
svn cp wc/trunk wc/branches/branch1
svn ci wc -m "created branch1" --username user3
echo change2 > wc/branches/branch1/test.txt
svn ci wc -m "committed change2 to branch1" --username user4
svn up wc
svn del wc/branches/branch1
svn ci wc -m "removed branch1" --username user5
svn log wc -g --quiet -r 1:HEAD

最后一个命令的输出包括对已删除的未合并分支的提交:

------------------------------------------------------------------------
r1 | user1 | 2018-03-02 10:57:48 +0100 (Fri, 02 Mar 2018)
------------------------------------------------------------------------
r2 | user2 | 2018-03-02 10:57:49 +0100 (Fri, 02 Mar 2018)
------------------------------------------------------------------------
r3 | user3 | 2018-03-02 10:57:49 +0100 (Fri, 02 Mar 2018)
------------------------------------------------------------------------
r4 | user4 | 2018-03-02 10:57:49 +0100 (Fri, 02 Mar 2018)
------------------------------------------------------------------------
r5 | user5 | 2018-03-02 10:57:50 +0100 (Fri, 02 Mar 2018)
------------------------------------------------------------------------

编辑2:感谢您发布存储库网址!我们在这里只使用绝对数字。在撰写本文时,此存储库有5448个修订版。我什么时候......

svn log https://svn.atozed.com:444/svn/Indy10 -g --quiet --username Indy-Public-RO > tmp.txt
grep -E "^r" tmp.txt | wc -l

...我得到的输出是:

5448

这意味着我们正在查看所有修订版,对吧?我们只需要收集用户名......

grep -E "^r" tmp.txt | cut -d"|" -f2 | sort | uniq

...获取完整的提交者列表:

 Andreas Hausladen
 Andrew Neillans
 ArvidWinkelsdorf
 (...cut for brevity...)