現在、私のチームはさまざまなプロジェクトに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/||')
と現在のHG支店:
set hg_branch (hg branch)
そして、単にtruthyである1つのチェック、およびそこから進む:
if test "$git_branch"
git $argv
else if test "$hg_branch"
hg $argv
else
echo "[X] Not in a VCS directory"
return 1
end
実際にgit/hg agnostであるVCSコマンドの全スイートを作成する場合はicは、すべての同等のコマンドを翻訳し、引数をマップするためにはもっと多くの作業が必要です。
これは、基本的なシステムの実際の動作を不明瞭にしています。デベロッパーに表示するレポのタイプを表示するか、hg-gitのような実際の互換性レイヤーを使用する方が良いでしょう。
あなたの関数は、git rev-parse --show-toplevel
とそれに対応するMercurialを使用して、GitまたはHGフォルダ内にあるかどうかをチェックできます。結果に応じて、実行するものを決めることができます。
あなたの質問は特定されていません。 '$ PWD'変数を使用してgitまたはmercurialプロジェクトディレクトリにいるかどうかを判断し、それに応じて行動することは自明です。率直に言って、あなたがしようとしていることは、それが解決するよりも多くの問題を引き起こすだろうと思います。しかし、魚のスクリプトの構文の助けが必要な場合は、あなたが試したことを私たちに教えてください。私たちは案内を提供してくれるでしょう。 –
あなたは何が尋ねられているかについて多くのアイデアを持っていないようですね、特定の部分が必要な場合は私に知らせてください。 – nehemiah