[英]How to tell if you're in a git-svn repo command line?
我正在嘗試修改我的bash提示符,如果我在git-svn repo中打印出來。 我看到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 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
如果你想要一個更嚴格的測試,你可以查看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 svn info
。 git-svn存儲庫的示例輸出:
Path: .
URL: svn+ssh://url/path/to/something/trunk
Repository Root: svn+ssh://path/to/something
Repository UUID: c22683c8-8Bcb-47f9-aeb8-1c337d8f7a2d
Revision: 12345
Node Kind: directory
Schedule: normal
Last Changed Author: somebody
Last Changed Rev: 12345
Last Changed Date: 2012-01-24 16:38:36 -0800 (Tue, 24 Jan 2012)
而對於常規的git repo:
Unable to determine upstream SVN information from working tree history
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.