And*_*Ray 5 svn git bash git-svn
我正在尝试修改我的bash提示符以在git-svn存储库中打印出来。我看到git svn仓库有一个.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`
Run Code Online (Sandbox Code Playgroud)
但是后来我注意到我的普通git repo有一个.git / svn文件夹。有什么方法可以确定您是否在git-svn中?
.git/svn如果您在任何存储库中运行任何命令,则可以创建该目录git svn- 例如,只需运行git svn info,正如Carl Norum 所建议的那样,就会创建它。然而,一个稍微好一点的测试可能是.git/svn存在并且非空,例如
[ -d .git/svn ] && [ x != x"$(ls -A .git/svn/)" ] && echo Looks like git-svn
Run Code Online (Sandbox Code Playgroud)
如果您想要进行更严格的测试,您可以查看历史记录中HEAD包含git-svn-id- 本质上这就是git svn info放弃之前所做的事情。例如:
[ x != x"$(git log -n 1 --grep='^\s*git-svn-id' --oneline)" ] && echo "git-svn!"
Run Code Online (Sandbox Code Playgroud)
...但听起来这对于您的用例来说可能太慢了。
中的源代码描述了不同版本的存储库git-svn.perl的布局:git-svn
...所以如果您想小心捕获所有不同的版本,您可以为所有这些编写测试。
| 归档时间: |
|
| 查看次数: |
1048 次 |
| 最近记录: |