git difftool pour donner répertoire de comparer? [dupliquer]
cette question a déjà une réponse ici:
est-il possible d'obtenir la commande git difftool pour ouvrir un répertoire comparer entre les fichiers modifiés et les fichiers contrôlés?
donc idéalement, si 2 fichiers ont changé, ils seraient les seuls 2 affichés, mais dans un répertoire comparer.
j'ai lu des messages sur Git Git pour donner tous les diffs de fichier en parallèle, donc des outils comme BeyondCompare a tout les diffs dans les onglets , mais je ne suis pas heureux avec cela!
On pouvait tirer une copie des fichiers modifiés à partir de mise en scène/fichiers archivés dans un dossier temporaire, puis ouvrir. Est-ce la seule option?
2 réponses
mise à jour juin 2012 (2 ans et demi plus tard):
cela (comparer des annuaires au lieu de file-by-file) semble être bientôt disponible:
Voir [annoncer] Git 1.7.11.rc1 :
git difftool
" j'ai appris l'option "--dir-diff
"pour lancer des outils externes diff qui peuvent comparer deux hiérarchies de répertoires à un moment après peupler deux temporaires répertoires, au lieu d'exécuter une instance de l'outil externe une fois par paire de fichiers .
Voir " Patch difftool
: enseigner difftool
pour gérer le répertoire des diff "
réponse Originale à cette question (janvier 2010)
on pourrait tirer une copie des fichiers modifiés de la mise en scène / vérifié dans les fichiers dans un dossier temporaire, puis ouvrez ça. Est-ce la seule option?
fondamentalement Oui:
Vous difftool script:
- créer 2 répertoires temp
- se définit comme un outil diff
- appel git diff
- qui s'appelle alors pour file to diff
- dans ce mode, le même script, pour chaque fichier, ne copie les deux versions diffèrent dans les deux répertoires temp
- puis Continuer et appeler des outils diff (comme beyondCompare ou WinMerge) sur les deux répertoires temp
vous avez un premier exemple dans cette question .
j'utilise toujours --dirstat=files
:
rudie@devver:virenze$ git diff --dirstat=files
4.1% modules/custom/virenze_conversations/
7.0% modules/custom/virenze_crs/
8.3% modules/custom/
ce qui signifie que j'ai supprimé virenze_conversations
et virenze_crs
dans custom
. (Je ne sais pas ce que les pourcentages signifient...)
vous pouvez probablement utiliser toutes les options normales diff
: --cached
, nom de la branche, etc.