当 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/