我正在将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
)
答案 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...)