gpt4 book ai didi

git - 如何判断你是否在 git-svn repo 命令行中?

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

如果我在 git-svn 存储库中,我正在尝试修改我的 bash 提示以打印出来。我看到 git svn repos 有一个 .git/svn 文件夹,所以我可以检查:

# Find the top level git folder
_git_dir=`git rev-parse --show-toplevel 2> /dev/null`
# Find svn folder
_gsvn_check=`cd $_git_dir; ls .git/svn 2> /dev/null`

但后来我注意到我的普通 git 存储库有一个 .git/svn 文件夹。有什么方法可以确定你在 git-svn 中吗?

最佳答案

如果您在任何存储库中运行任何 git svn 命令,则可以创建 .git/svn 目录 - 例如只是运行 git svn info,作为 Carl Norum suggests将创建它。然而,一个稍微好一点的测试可能是 .git/svn 存在并且是非空的,例如

[ -d .git/svn  ] && [ x != x"$(ls -A .git/svn/)" ] && echo Looks like git-svn

如果你想要更严格的测试,你可以查看 HEAD 的历史记录,寻找任何包含 git-svn-id 的提交消息 - 本质上就是 git svn info 在它放弃之前正在做。例如:

[ x != x"$(git log -n 1 --grep='^\s*git-svn-id' --oneline)" ] && echo "git-svn!"

...但听起来这对于您的用例来说可能太慢了。

git-svn.perl 中的源代码描述了不同版本的 git-svn 存储库的布局:

...所以如果您想小心捕捉所有不同的版本,您可以为所有这些编写测试。

关于git - 如何判断你是否在 git-svn repo 命令行中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9085596/

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