目前我的團隊使用Git a.w.a Mercurial進行各種項目,所以我在這裏定義我自己的vcs命令,以便在不同項目/目錄(git & hg)之間實現無縫連接。魚殼:每個目錄的別名
我如何在魚殼中實現這一目標?所以這個別名可以在每個目錄/子目錄的基礎上觸發相應的git或hg命令。
目前我的團隊使用Git a.w.a Mercurial進行各種項目,所以我在這裏定義我自己的vcs命令,以便在不同項目/目錄(git & hg)之間實現無縫連接。魚殼:每個目錄的別名
我如何在魚殼中實現這一目標?所以這個別名可以在每個目錄/子目錄的基礎上觸發相應的git或hg命令。
您可以通過運行確定當前的Git分支:
set git_branch (git symbolic-ref HEAD ^/dev/null | sed -e 's|^refs/heads/||')
和當前汞分支:
set hg_branch (hg branch)
然後簡單地檢查哪一個是truthy,並從那裏繼續:
if test "$git_branch"
git $argv
else if test "$hg_branch"
hg $argv
else
echo "[X] Not in a VCS directory"
return 1
end
如果你真的想編寫一整套VCS命令,它們是git/hg agnost這需要更多的工作來翻譯所有等價的命令並映射參數等。
雖然這通常不是一個好主意,但它掩蓋了底層系統的實際行爲。最好是向開發人員展示您所使用的回購類型,或者使用像hg-git這樣的實際兼容層。
你的函數可以使用git rev-parse --show-toplevel
和Mercurial的相應函數來檢查它是否在Git或HG文件夾中。取決於結果,你可以決定執行什麼。
您的問題未指定。使用'$ PWD'變量來決定你是否在git或mercurial項目目錄中並且相應地採取行動是微不足道的。坦率地說,我認爲你所要做的將會導致比解決問題更多的問題。但是,如果您需要有關魚腳本語法的幫助,請告訴我們您已經嘗試了什麼,我們很樂意提供指導。 –
看起來你對所問的內容沒有太多的想法,讓我知道如果你需要任何特定的部分需要位解釋/讓它更通知。 – nehemiah