我们最近将我们的 SVN 存储库转换为 GIT。看来我们通过这种转换丢失了一些提交,并想验证这一点。
所以我们想为每个 svn commit 找到一个匹配的 git commit 来检查转换是否真的发生了。
$ git log|grep "some partial commit message"
这是不够的,因为它只遍历直接祖先并忽略不是直接祖先的分支。
$ git show <commit-hash>
因为 svn 没有 sha1sums 所以不能工作。
我发现的最接近的事情是:$ git reflog show --all --grep="releasenotes"|xargs git show --shortstat
但这似乎并不完全有效,因为它似乎在更多的地方 grep 而不仅仅是提交消息(我们得到了误报)。
我也试过用这个:$ git rev-list --all|xargs -n1 bash -c 'git show|head -n10'|grep -i release
基本上我缺乏一个很好的方法来打印没有差异的提交消息。
[编辑]
我不确定,但我想这应该列出存储库中的所有提交消息。
git rev-list --all|xargs -n1 git log -n1