BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Git améliore ses options par défaut et devient plus rapide

Git améliore ses options par défaut et devient plus rapide

Favoris

Git 2.0 vient finalement de sortir, presque un mois après la première release candidate. Cette version apporte des améliorations de performance comme avec l'ajout des index bit-map, ainsi que des valeurs par défaut plus judicieuses, aidant spécialement les nouveaux utilisateurs. Pour les utilisateurs existants, il y a des options permettant de conserver les comportements des versions précédentes, réduisant l'impact sur leurs habitudes.

Les utilisateurs Git sont avertis depuis quelques versions de certains de ces changements. Junio Hamano, mainteneur de Git, explique :

... (certains disent) que cette nouvelle version n'apporte rien de bien nouveau et c'est exactement ce que l'on souhaite entendre des utilisateurs existants. Lors des précédentes versions de ces dernières années, nous avons ajouté des options permettant aux utilisateurs d'activer les nouvelles valeurs par défaut avant la sortie de la 2.0, et ajouté des avertissements indiquant aux utilisateurs qu'ils exécutent une action qui aura un comportement différent entre les versions 1.x et 2.0. Les utilisateurs existants sont très bien préparés et "Git 2.0" est conçu de manière à être l'ultime version avec des changements dans les options par défaut.

Certains des changements importants sont :

  • push utilise par défaut le comportement "simple" (à la place de "matching"), qui pousse uniquement la branche courante sur la branche distante portant le même nom.
  • "git add -u" et "git add -A", lorsqu'elles sont exécutées sans chemin indiqué, s'exécutent sur l'ensemble des répertoires même si elles sont exécutées dans un sous-répertoire. Vous devez nécessairement ajouter un point ("git add -u ." ou "git add -A .") pour limiter l'ajout au répertoire courant.
  • "git add <path>" ne va plus ignorer les suppressions et son effet sera identique à "git add -A <path>".

Felipe Contreras explique ces changements non rétro-compatibles en détail.

Il y a aussi d'autres améliorations telles que :

  • "git grep" se comporte de manière similaire à la version native de grep lorsque les options "-h" (pas d'entête) et "-c" (compter) sont utilisées.
  • Beaucoup de commandes qui créent des commits, telles que "-pull" et "-rebase" prennent une option "--gpg-sign" (plus d'information sur les commits signés).
  • Ajout de nouvelles options telles que "pull.ff" (accepter seulement les fast-forward), "-N" pour "git reset" et "commit.gpgsign" (toujours signer lors de l'utilisation de "git commit").
  • Les espaces en fin de ligne dans les fichiers .gitignore provoquent un avertissement et sont ignorés (sauf s'ils sont cités).

Quelques améliorations de performance :

  • L'index bitmap provenant de JGit a été porté et améliore grandement la phase de calcul des opérations clone et fetch (avec comme coût un plus grand espace disque utilisé).
  • La manière dont "git log --cc" montre un diff combiné avec de multiples parents a été optimisée.

Vous pouvez prendre connaissance de tous ces changements ainsi que les différentes corrections de bugs dans la note de version.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT