11

に新しいツールを追加するとgit-gui、ツールに渡されるいくつかの変数を使用できることがダイアログに示されます ( $REVISION$ARGS$FILENAME)。

文書化されていない他のパラメーターはありますか(たとえば、現在のリポジトリ ディレクトリなど)? のドキュメントにそれらが含まれていないのはなぜgit-guiですか?

私の現在の使用例は、プリコミット フックを有効/無効にする 2 つのスクリプトがあることです。現在、Windows エクスプローラーを開いてバッチ ファイルをダブルクリックする必要がありますが、これは少し面倒です。git-guiより簡単な方法は、 ...から直接それを行うことです

別の方法 (副次的な質問) として、プリコミット フック (つまり--no-verify、コミット時に渡す) を からバイパスすることにも興味がありgit-guiます。

4

3 に答える 3

4

git-guiソースを見ると、 ( git-guiのmanページにはありません):

  • git-gui.sh
    • $GITGUI_VERBOSE、冗長ロードを有効にする
    • SSH_ASKPASS、何も設定されていない場合は、askpassの実装を提案します
    • GIT_DIRおよびGIT_WORK_TREE、リポジトリ設定用
于 2012-03-23T12:35:36.633 に答える
3

git-gui私は、複数のファイルで動作するツールを持っていることを個人的に拡張しました

tools.tclファイルに、次の 2 行を追加します。

set env(GIT_GUITOOL) $fullname
set env(FILENAME) $current_diff_path
>> set env(FILENAMES) [array names selected_paths]

と :

unset env(GIT_GUITOOL)
unset env(FILENAME)
>> unset env(FILENAMES)

$FILENAMESツールの代わりに使用する$FILENAMEと、ファイルのリストがスペースで区切られて渡されます (次のようなツールを作成するのに非常に便利です : rm $FILENAMES)

$FILENAME(および) Git gui ツールのメカニズムは、スペースを含むファイルでは機能しませ$FILENAMESん。各ファイルを引用してみました。

set env(FILENAMES) [string map { \{ \" \} \" } [array names selected_paths]]

しかし、Console::exec引数をスペースで区切り、各引数をエスケープしているようです。

于 2013-08-30T15:37:23.813 に答える