2012-10-15 10 views
9

Su OSX, sto usando diffmerge come strumento per diffondere git. Qui è la mia .gitconfig:Usare git con diffmerge senza prompt e senza alias

[diff] 
     tool = diffmerge 
[difftool "diffmerge"] 
     cmd = diffmerge \"$LOCAL\" \"$REMOTE\" 
[alias] 
     d = difftool --no-prompt 

Se mi basta usare git difftool mi chiederà per ogni singolo file che voglio diff. Per aggirare questo problema, ho creato l'alias git d e aggiunto il flag --no-prompt.

C'è un modo per impedire i prompt ripetuti senza avere l'alias? Ho provato a inserire prompt=false e prompt = NO sotto difftool, oltre a spostare il flag --no-prompt accanto al comando diffmerge, ma nessuno di questi ha aiutato.

risposta

19

spostare la bandiera --no-prompt accanto al comando di diffmerge

--no-prompt è un argomento di difftool (come ho detto in "How do I view 'git diff' output with a visual diff program?").
Quindi confermo che non funzionerà con diffmerge.

ho cercato di inserire prompt=false e prompt = NO sotto difftool

in una sezione [difftool] direttamente, che dovrebbe funzionare (non sotto [difftool "diffmerge"])

Si può vedere another approach here, sulla base di wrapper: che può aiutare per eseguire il debug di questi comandi.

git config --global difftool.diffmerge.cmd "diffmerge-diff.sh \"\$LOCAL\" \"\$REMOTE\"" \"\$BASE\"" \"\$MERGED\"" 
git config --global difftool.prompt false 
git config --global diff.tool diffmerge 
git difftool 
+0

Ha funzionato alla grande! Grazie per la spiegazione. – Newtang

Problemi correlati