gpt4 book ai didi

git - 如何在 subgit repo 中找到 SVN 版本?

转载 作者:太空狗 更新时间:2023-10-29 13:00:29 25 4
gpt4 key购买 nike

我正在使用 Subgit 访问 Subversion 存储库。它工作得很好,但有时,尤其是在与使用普通 Subversion 客户端访问存储库的用户交流时,我真的很想找到特定变更集对应的 SVN 修订版。

我可以使用 git 在本地仓库的某个地方找到 SVN 修订号吗?

最佳答案

是的,您可以轻松做到这一点。您应该只修改克隆的 Git 存储库中的 .git/config 文件以添加

[remote "origin"]
...
fetch = +refs/svn/map:refs/notes/commits

选项,然后运行 ​​git fetch,如 SubGit book 的“推荐的客户端 Git 配置”部分所述。 .之后,克隆存储库上的 git log 命令将显示修订号。

如果你想在服务器端做那件事(如果你在你的项目中没有将 Git notes 用于其他目的),你可以在服务器机器上运行

$ git update-ref refs/notes/commits refs/svn/map

用于一次性创建 Git 笔记,或者您可以在该存储库中运行

$ cd refs
$ mkdir notes
$ echo "refs: refs/svn/map" > notes/commits

使 refs/notes/commits 遵循由 SubGit 更新的 refs/svn/map 并存储最新修订 <-> SHA-1 映射。之后服务器上的git log也会显示修订号。

如果你想在脚本中将修订转换为 SHA-1 哈希(以上述任何方式设置 Git 注释后),你可以使用此命令

$ git log --format="%H %N" --all

结合行解析函数。例如。如果您不太关心极端情况(例如名称“r$REV 分支”的分支名称),要获取 SHA-1 并通过修订版 REV 更改分支名称,您可以运行

$ git log --format="%H %N" --all | grep "r$REV "

同样,您可以在此处 grep SHA-1 或分支名称。

关于git - 如何在 subgit repo 中找到 SVN 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28021524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com