J'avais l'habitude d'utiliser Windows, SVN, SVN Tortoise et Beyond Compare. C'était une excellente combinaison pour faire des revues de code.
Maintenant, j'utilise OSX et Git. J'ai réussi à combiner un script bash avec Gitx et DiffMerge pour proposer une solution à peine acceptable.
Je me suis embrouillé avec cette configuration, et similaires, pendant plus d'un an. J'ai également essayé d'utiliser le visualiseur de diff Github et le visualiseur de diff Gitx, alors ce n'est pas comme si je ne leur avais pas laissé leur chance.
Il y a tellement de gens intelligents qui font de bonnes choses avec Git. Pourquoi ne pas le diff côte à côte avec la possibilité de voir le fichier entier? Avec des gens qui ont utilisé les deux, je n'ai jamais entendu parler de quelqu'un qui aime mieux la vue simple +/-, du moins pour plus d'un contrôle rapide.
Réponses:
Je ne peux pas parler pour Linus à ce sujet, mais la façon dont git gère difftools est très unixish, philosophiquement parlant. git fait ce qu’il fait très bien et utilise des outils externes pour tout le reste, y compris des fonctions de diffing et de fusion plus sophistiquées.
J'utilise aussi DiffMerge avec git sous OS X et je n'ai pas eu besoin de recourir à un shell bash. C'était délicat, mais j'ai configuré les paramètres difftool et mergetool de git pour qu'ils appellent directement DiffMerge. Je peux maintenant afficher les diffs et résoudre les conflits de fusion dans un excellent outil tiers visuel.
Voici ma config:
la source
git diff --stat
. Vous donne une belle liste graphique de tous les fichiers modifiés, avec le nombre de lignes modifiées.Vous remarquerez que SVN n’offre pas non plus de solution côte à côte. Vous avez énuméré des outils tiers. Comme avec la plupart des choses dans git, ceci est extraordinairement configurable et offre une excellente prise en charge des outils. Avez-vous un logiciel mergetool ? Si non, vous devriez. Si vous le faites, essayez
git difftool
. Consultez ensuite la page de manuel pour les options de configuration.J'utilise KDiff3 comme outil de fusion parce que c'est un outil multi-plateforme agréable, et sans configuration supplémentaire,
git difftool
fait exactement ce que vous demandez.la source
C'est la philosophie * nix. Beaucoup de ceux qui utilisent ces outils passent beaucoup de temps dans le terminal. Le terminal ne nécessite pas que nous passions les mains du clavier à la souris. Je sais que je préfère le style +/- aux outils de différenciation / fusion visuelle, principalement parce que je ne me soucie que des différences. Je me soucie des lignes 3-4 autour du changement et du changement lui-même. De plus, ce sont des informations supplémentaires qui ne m'aident vraiment pas.
Les difficultés sont couramment utilisées pour obtenir un aperçu rapide de ce qui a été changé. Ne pas lire le code.
Je n'ai jamais trouvé les outils de visualisation visuels très utiles comparés au diff par défaut sur les systèmes GNU. Tout ce qu'ils me font faire, c'est commencer à jouer avec la souris et à m'obliger à faire défiler le fichier, à comprendre leur interface utilisateur, puis à lutter pour revenir dans la ligne de commande où je peux faire quelque chose à propos d'un problème que je vois dans le diff .
la source
De mon usage personnel, je pense que la réponse est principalement que les différences sont suffisamment courtes pour que cela ne soit pas grave.
Pour les révisions de code, j'utilise un outil complet de révision de code, qui me donne tout ce que j'aime, comme les commentaires, la coloration syntaxique et la vue côte à côte.
J'utilise
git diff
presque exclusivement lors de la mise en place du code à valider; Lorsque c'est le cas, les différences sont suffisamment petites et récentes pour que je n'ai pas besoin de voir le contexte pour me rappeler ce qui se passe.Mon outil de choix du code , Phabricator , ou peut-être des outils intégrés à l'EDI, tenant compte du contexte linguistique. Je pense que le flux de demandes de github est terrible pour la révision de code, principalement parce qu'il affiche un diff unifié et non pas côte à côte.
la source