git - 所有 svn 修订号的映射 <=> git SHA-1 提交哈希

标签 git svn logging git-svn

git-svn 需要重建它的内部映射时,它会输出想要的信息到 STDERR:

Rebuilding .git/svn/refs/remotes/origin/trunk/.rev_map.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
r38601 = 28d3a624c5c96db9a1f45d8f261a9b0de1f6f288
r38652 = 74c55b8dff798e5ae1bc2ad00d8ec6eee4f2646b
r38744 = eb457e1949ecf854816ba9cf64b4bace710a7302
r38745 = 5bca99a37fbc6db72d2d50a75301185f4297926c
(...)

不幸的是,文件 .git/svn/refs/remotes/origin/trunk/.rev_map.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 是二进制的,因此不容易解析。有没有办法让 git-svn 通过特定命令输出上述信息?顺便说一下,我在 git 2.7.0 上。

编辑:我知道 git svn find-rev,但这只会让我找出 的 SHA-1 提交哈希单一修订,我必须提供特定的 SVN 修订。不过,我想要得到的是所有修订 的映射。最好不要强制我通过或使用外部数据源(即 SVN 存储库)来提供 SVN 修订作为输入。最优选的是,不提供任何信息,因为在 git-svn 构建其修订映射之后,此信息存储在存储库中——或者不是吗?

最佳答案

获取所有 SVN 修订版:

git config --add svn-remote.<Remote>.url <SVN URL>
git config --add svn-remote.<Remote>.fetch :refs/remotes/<Remote Name>
git svn fetch <Remote>

映射修订号 <=> git SHA-1:

git checkout remotes/<Remote Name>
git svn log --show-commit --oneline

输出:

r50 | 77c9acf | "SVN Commit message"
...
r1 | 84e6c49 | "SVN Commit message"

关于git - 所有 svn 修订号的映射 <=> git SHA-1 提交哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35481861/

相关文章:

svn - 我可以使用 git-svn 并看起来像我在使用 SVN,如果可以的话怎么办?

java - 在运行时更改 Tomcat 中的日志记录级别?

git - 在 Docker 中的 Jenkins 构建脚本中调用 Git

git - 同步到远程仓库时git push的问题

git - 如何在调用 git fetch 后查看更改的文件

java - 某些日志不会在 Javaagent 中打印

java - 同时使用静态和实例记录器变量的原因是什么

ruby-on-rails - 如何用 git 组织 50 个相关的 Rails 应用程序?

svn - 如何仅检入更改为颠覆的文件集

python - 提交电子邮件的提交后 Hook 详细信息中数字的含义