46 votes

Eclipse et EGit : Comment revoir facilement les changements de TOUS les fichiers modifiés avant de les commettre dans le dépôt *local*.

J'utilise Eclipse Indigo SR2 avec le plugin EGit (intégré) v.1.3.0.201202151440-r et je n'ai pas réussi à trouver un moyen de revoir facilement toutes mes modifications avant de faire un commit.

J'ai utilisé Eclipse avec SVN pendant des années, et cela a toujours été très facile à faire. Je faisais généralement un clic droit sur mon projet, puis je sélectionnais Team->Synchronize , double-cliquez sur le premier fichier modifié (dans la perspective Team Sync), puis cliquez sur Ctrl - . à plusieurs reprises pour revoir toutes les modifications dans un fichier, et ensuite passer au fichier suivant, car j'ai écrit un résumé de mes modifications pour le message de livraison.

Mais bien sûr, git est très différent de Subversion, et mon flux de travail doit donc changer. Avec EGit, "Team Sync" ne semble être utile que pour revoir les changements entre mes fichiers locaux et le dépôt distant (c'est-à-dire avant un push vers le dépôt distant). J'ai besoin d'un moyen de revoir les changements depuis mon dernier commit dans mon référentiel local le dépôt. En général, je ne me soucie même pas de (ré)examiner les modifications avant de les pousser vers le dépôt distant (et si je le faisais, je préférerais un simple équivalent de git log pour voir quels engagements je suis sur le point de pousser).

Si je fais un clic droit sur mon projet et que je sélectionne Team->Commit je me retrouve face à une fenêtre qui fait presque tout ce que je dois faire (sélectionner les fichiers à mettre en scène, commiter, écrire un message de commit, modifier un commit précédent, etc.) Ce qu'il n'a pas me permet de revoir rapidement et facilement toutes mes modifications dans un éditeur comparatif. Je n'arrive pas à croire que cette fonctionnalité n'existe pas ! Il semble que je doive double-cliquer sur chaque fichier individuel, revoir les modifications, fermer l'éditeur de comparaison et double-cliquer sur le fichier suivant. C'est ridicule !

TL/DR - Je suis à la recherche d'un équivalent simple de l'interface graphique (dans Eclipse) pour faire ce que je suis facilement capable de faire à partir de la ligne de commande en utilisant git vimdiff (où vimdiff est un alias de git qui utilise vimdiff comme "outil de comparaison" pour parcourir tous les fichiers modifiés) suivi par git commit (avec peut-être un git add ou deux entre les deux).

Si personne n'a une bonne solution, je suis curieux de savoir comment les autres gèrent leur flux de travail de commit avec EGit. Je me suis bien débrouillé pour commiter à partir de la ligne de commande (non pas qu'Eclipse soit heureux de cela), mais je ne peux pas croire qu'EGit soit aussi inutile qu'il me semble. Peut-être que mon google-fu n'est plus aussi fort qu'avant ?

2 votes

4 ans plus tard et ce dont on a encore vraiment besoin, c'est d'une visite guidée du paradigme shitft du svn a git . Au moins nous avons stackoverflow.

41voto

Dit aquí que vous pouvez voir les différences entre l'arbre de travail et toute référence donnée. Vous devriez peut-être essayer la dernière version (Juno) d'Eclipse/EGit et voir si elle s'est améliorée ?

Mise à jour : J'ai essayé cette méthode dans la dernière version d'Eclipse et, d'après ce que je peux voir, elle fonctionne bien. Voici comment faire :

Au moment où nous écrivons ces lignes, Eclipse Juno 4.2 est la version que vous devriez choisir. Sur la page de téléchargement, vous pouvez choisir entre plusieurs paquets en fonction de vos besoins. L'IDE Eclipse pour les développeurs Java est fourni avec EGit, mais vous pouvez également installer EGit dans n'importe quelle distribution en utilisant le marché Eclipse (sous le menu Aide).

  • Une fois que vous avez importé votre projet dans Eclipse, assurez-vous que le projet est "partagé" :

Cliquez avec le bouton droit de la souris sur le projet -> Équipe -> Partager le projet -> Git

Faites maintenant ce qui suit :

  • Passez à la perspective de synchronisation de l'équipe.
  • Cliquez sur le petit bouton de synchronisation dans la vue Synchronisation.
  • Choisir Git
  • Choisissez une branche appropriée pour la synchronisation, comme refs/remotes/origin/master
  • Assurez-vous de cocher la case "Inclure les changements locaux non validés dans la comparaison".
  • Cliquez sur Terminer

Maintenant, modifiez certains fichiers et regardez-les apparaître dans la vue Synchroniser. Double-cliquez sur les fichiers modifiés pour voir la différence (comme dans la capture d'écran ci-dessous).

Screenshot of Eclipse Juno - EGit Synchronize View

0 votes

Merci pour votre réponse. Je ne pense pas que cela va m'aider mais en tout cas je ne vois pas le sous-menu "Synchroniser". Peut-être parce que je ne travaille pas sur une branche pour le moment, ou peut-être parce que j'utilise une ancienne version d'Eclipse. Merci d'avoir attiré mon attention sur ce point. Je n'ai aucune idée de la façon dont j'ai été conduit au mauvais téléchargement lorsque j'ai installé Eclipse sur cette machine de développement il y a seulement quelques mois. Le fait qu'Eclipse n'affiche pas un nom au lieu d'un numéro de version dans "Help->About" me semble stupide. Je croyais être à jour.

0 votes

Wow, le site web d'Eclipse est devenu très confus. Il dit beaucoup de choses sans communiquer beaucoup d'informations utiles sur ce qu'est Juno. En lisant le wiki de développement d'Eclipse, j'ai compris que seule la dernière version 4.2 de Juno (publiée ce mois-ci) est recommandée pour les utilisations générales. Je suppose que je n'étais pas aussi dépassé que je le pensais.

0 votes

@Lambart Je vais mettre à jour ma réponse pour donner plus de détails sur la façon d'utiliser la vue Synchroniser.

28voto

Deepak Azad Points 4547

Connaissez-vous la vue "Git Staging" ? Elle garde la trace de tous les fichiers qui ont été modifiés et vous pouvez revoir les changements à tout moment. (Cela peut être un peu mieux que d'utiliser la boîte de dialogue de livraison).

Une alternative est de livrer toutes les modifications sans les réviser, puis d'utiliser la vue historique pour comparer deux livraisons (il suffit de sélectionner les dernières livraisons les plus importantes, de faire un clic droit et de sélectionner "Comparer l'une avec l'autre"). De cette façon, vous n'avez pas besoin de double-cliquer sur les fichiers individuels. Si vous avez besoin de changer quelque chose, vous pouvez toujours 'Modifier' le dernier commit. (Je suis généralement cette approche)

2 votes

Merci pour votre réponse. Non, je n'avais jamais entendu parler de la vue Git Staging. Malheureusement, elle utilise le même éditeur de comparaison, ce qui ne me permet pas de passer directement d'un fichier modifié au suivant. Je commence à avoir l'impression que c'est Eclipse qui est cassé, pas EGit.

0 votes

Ce lien présente un correctif pour EGit qui corrige exactement ce qui me dérange. Mais il date de plus de 3 ans et je suppose que le patch n'a jamais été accepté : git.661346.n2.nabble.com/

2 votes

C'est Egit :-) Mais l'outillage s'est amélioré à un rythme soutenu.

3voto

Kt Mack Points 147

J'écris ceci à partir d'Eclipse Oxygen, mais cela devrait s'appliquer également aux autres versions.

  1. Option 1 avec vue de synchronisation des équipes : cliquez avec le bouton droit de la souris sur le projet > Comparer avec > Valider. Vous pouvez choisir votre dernier commit ici, même si vous ne l'avez pas poussé dans le dépôt.
  2. Option 2 avec vue différente : Si vous souhaitez voir la version "diff" sans valider, vous pouvez le faire en procédant comme suit en cliquant avec le bouton droit de la souris sur votre projet > équipe > cachettes > Stash Changes > cochez Inclure les fichiers non suivis. Cela permettra de sauvegarder toutes vos modifications dans une cachette. Ensuite, vous cliquez droit sur projet > équipe > réserves > sélectionnez la réserve que vous avez sauvegardée. Vous cliquez sur la flèche verte en haut à droite pour réappliquer à votre code toutes les modifications que vous avez cachées. Dans la même fenêtre de dissimulation, vous verrez un onglet "Diff" en bas à droite. En cliquant sur l'onglet "Diff", vos modifications seront affichées dans le style "diff" surligné en rouge/vert. J'aurais aimé qu'il y ait un moyen de générer une vue diff sans mettre en cache, mais c'est la seule solution que j'ai trouvée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X