1

tl; dr: Comment puis-je obtenir mon difftool personnalisé pour ouvrir une vue de répertoire/fichier d'une branche ou de diff diff peut sauter à l'intérieur de mon difftool dans les diffs de fichier unique et revenir à la liste de répertoires pour sélectionner la paire de fichiers suivante? Utilisation de git et Beyond Compare 4. (Sauter d'une liste de fichiers vers un fichier diff et retour est en partie une fonctionnalité de construction des difftools).Git diff de branches ou commits montrant la liste des fichiers aperçu dans difftool visuel, puis sélectionnable unique fichier diff

Détails:
Je suis moi-même travaillé dans Git les deux derniers mois et il est un excellent outil. Mais je me demandais s'il y avait une possibilité de résoudre une fonctionnalité que je n'ai pas trouvée lors de mes recherches sur Internet sur des sujets git. Scripter quelque chose pour obtenir un comportement similaire serait également bien. Mais peut-être que c'est intégré ou quelqu'un a déjà résolu le problème?

Qu'est-ce que j'essaie de faire?
De mon ancien environnement de travail j'avais la possibilité de choisir de voir un diff de 2 checkins (commits). Il a ouvert une liste de fichiers/répertoires diff dans mon outil de comparaison et j'ai vu tous les fichiers côte à côte. D'un côté, engagez (ou branchez) N ° un de l'autre côté engagez (ou branchez) N ° 2. Je pourrais sélectionner une paire de fichiers et voir un diff des 2 fichiers et revenir dans la liste de répertoire/fichier (fonction difftool personnalisée) lorsque vous avez terminé.

Que fait mon git?
Actuellement, si je fais un diff impliquant plusieurs fichiers comme

git difftool branch1..branch2 

le bash git ouvre un fichier après l'autre. Demander pour chacun séparément. C'est un peu compliqué s'il y a beaucoup de fichiers et au cas où je ne suis pas sûr de ce que je veux regarder avant ou si je veux juste avoir un aperçu. Et je préférerais surtout le voir dans mon difftool. Ann.: Une fonctionnalité plus sophistiquée serait de voir un fichier de 3 diff incluant l'ancêtre commun du fichier (mais pas dans la vue fichier/répertoire).

Infos:
Je suis sur une plate-forme Windows, donc si vous connaissez une solution Linux ou avez une mise en place s'il vous plaît donnez-moi quelques informations sur linux internes impliqués.
Peut-être que les outils que j'utilise ont déjà une fonction "secrète"? Ils sont Visual Studio 2013 et Sourcetree en plus de la ligne de commande git bash.
si pertinent: Les difftools que j'utilise sont Beyond Compare 4 et Sourcegear DiffMerge.

Répondre

2

Je ne sais pas ce que je regardais tout le temps. Je suis tombé sur la solution quand j'ai fait des différences et relu la page d'aide de git diff-tool pour me souvenir d'un paramètre. Habituellement, je ne lis que la page d'aide git diff parce qu'ils partagent les mêmes paramètres.

J'ai vu le paramètre -d et l'ai essayé.
La solution pour une 2 voies diff avec des dossiers et des fichiers est la commande:

git difftool -d branch1 branch2 
git difftool --dir-diff branch1 branch2 

ou

git difftool -d commit1 commit2 

puis Beyond Compare ouvre dans le répertoire en mode diff et je peux voir les différences entre les branches ou commettre.
Bien que vous ne puissiez voir que les fichiers modifiés n'incluant pas les fichiers non modifiés. Mais ce n'est pas vraiment un inconvénient.

Dans le fichier d'aide à git-difftool il dit:

-d 
--dir-diff 

    Copy the modified files to a temporary location and perform a  
directory diff on them. This mode never prompts before launching the diff tool.