GIT vs SVN
Plan

•   But de la présentation
•   Genèse
•   Système centralisé VS distribué
•   Branching
•   Staging area et nouveaux Workflows
•   Les outils graphiques
•   Ressources
Pourquoi cette Présentation

Git fait de plus en plus parler de lui :

• De nombreux projets sous Git
   o (Git, Linux Kernel, Perl, Eclipse, Gnome, KDE
       Qt, Ruby on Rails, Android, PostgreSQL
       Debian, X.org, Plone...)
• le nombre total de commit pour la période de Janvier à Mai
  2011 de Github est largement supérieur à ceux de
  Sourceforge, Google Code et Microsoft CodePlex.
• Systeme de branching au coeur du fonctionnement de Git
Au début il y avait BitKeeper...

Kernel.org versionné par BitKeeper
          mais sa licence d'utilisation change.


Besoin : VCS rapide, gérant de gros volumes de données

Outils de remplacement : Aucun
...puis vint Git

Linus Torvald crée son propre outil :

• Outil écrit en 5 jours
• Optimisé pour le noyau linux
• exécution rapide des tâches (codé en C)
• Zero perte d'information ( DAG : directed Acyclic Graph ou
  graphe orienté acyclique)
• Nombreuses fonctionnalités (détaillées plus loin)


MAIS Git n'est pas un VCS !
Difference Svn/Git
Différence Svn/Git
Svn :                             Git:
• checkout récupère la dernière   • checkout récupère tout le repo
  révision                        • Pull/push online seulement
• Checkout/commit/diff online     • branching base de Git
• branching non historisé         • un seul .git par défaut
• plusieurs .svn par sous         • gestion de droits (base du
  répertoire                          fonctionnement de Github)
• pas de gestion évoluée de       • révision identifiée par
  droits                              hashcode des fichiers
• révisions identifiées par       • X workflows possibles
  incrément                       • historise : unversionné, new,
• Workflow centralisé                 deleted, modifié,modifié "non
• "Annulation" de commit              ajouté"
  impossible
• historise : unversionné, new,
  deleted, modifié
Utilisation de Git comme Svn
Utilisation de Git comme Svn




Git ne revert pas. Tout est mémorisé, même les branches
mergées.

Git aussi a des conflits...mais aucun basé sur le changement
de nom d'un fichier (ou sa suppression).

On peut utiliser Git pour travailler sur Svn
    git svn clone http://svn.neuros.fr/...
Branching : La principale puissance de Git

Multiples branches locales :création, fusion (merge) ou
suppression en quelques secondes.

On peut :

• Créer une branche pour essayer une nouvelle idée, committer,
  revenir à l'endroit où vous avez créé cette branche, appliquer un
  patch, retourner là où vous expérimentez et fusionnez le avec votre
  branche principale.
• Créer une nouvelle branche pour toutes les fonctionnalités que vous
  développez, puis effacer chaque branche une fois que la
  fonctionnalité est incluse dans la branche principale.
Branching : La principale puissance de Git
Staging area
Exemples de Workflows
Exemples de Workflows
Outils graphiques


Les différents IDE possèdent leurs plugins Git :
 • Egit (Eclipse)
 • NBGit (NetBeans)


Des utilitaires existent pour Git :
• TortoiseGit
• Git Tower (Mac)
Ressources

http://fr.whygitisbetterthanx.com (Plaidoyer Pro git)

http://progit.org/book/ (livre en ligne)

http://blog.loof.fr/2010/08/from-svn-to-git.html

http://www.git-attitude.fr

http://gitfr.net/blog/ (@gitfr)

Videos de présentation
  http://www.parleys.com/#st=5&id=2366
  http://www.parleys.com/#st=5&id=2368

Git vs SVN

  • 1.
  • 2.
    Plan • But de la présentation • Genèse • Système centralisé VS distribué • Branching • Staging area et nouveaux Workflows • Les outils graphiques • Ressources
  • 3.
    Pourquoi cette Présentation Gitfait de plus en plus parler de lui : • De nombreux projets sous Git o (Git, Linux Kernel, Perl, Eclipse, Gnome, KDE Qt, Ruby on Rails, Android, PostgreSQL Debian, X.org, Plone...) • le nombre total de commit pour la période de Janvier à Mai 2011 de Github est largement supérieur à ceux de Sourceforge, Google Code et Microsoft CodePlex. • Systeme de branching au coeur du fonctionnement de Git
  • 4.
    Au début ily avait BitKeeper... Kernel.org versionné par BitKeeper mais sa licence d'utilisation change. Besoin : VCS rapide, gérant de gros volumes de données Outils de remplacement : Aucun
  • 5.
    ...puis vint Git LinusTorvald crée son propre outil : • Outil écrit en 5 jours • Optimisé pour le noyau linux • exécution rapide des tâches (codé en C) • Zero perte d'information ( DAG : directed Acyclic Graph ou graphe orienté acyclique) • Nombreuses fonctionnalités (détaillées plus loin) MAIS Git n'est pas un VCS !
  • 6.
  • 7.
    Différence Svn/Git Svn : Git: • checkout récupère la dernière • checkout récupère tout le repo révision • Pull/push online seulement • Checkout/commit/diff online • branching base de Git • branching non historisé • un seul .git par défaut • plusieurs .svn par sous • gestion de droits (base du répertoire fonctionnement de Github) • pas de gestion évoluée de • révision identifiée par droits hashcode des fichiers • révisions identifiées par • X workflows possibles incrément • historise : unversionné, new, • Workflow centralisé deleted, modifié,modifié "non • "Annulation" de commit ajouté" impossible • historise : unversionné, new, deleted, modifié
  • 8.
  • 9.
    Utilisation de Gitcomme Svn Git ne revert pas. Tout est mémorisé, même les branches mergées. Git aussi a des conflits...mais aucun basé sur le changement de nom d'un fichier (ou sa suppression). On peut utiliser Git pour travailler sur Svn git svn clone http://svn.neuros.fr/...
  • 10.
    Branching : Laprincipale puissance de Git Multiples branches locales :création, fusion (merge) ou suppression en quelques secondes. On peut : • Créer une branche pour essayer une nouvelle idée, committer, revenir à l'endroit où vous avez créé cette branche, appliquer un patch, retourner là où vous expérimentez et fusionnez le avec votre branche principale. • Créer une nouvelle branche pour toutes les fonctionnalités que vous développez, puis effacer chaque branche une fois que la fonctionnalité est incluse dans la branche principale.
  • 11.
    Branching : Laprincipale puissance de Git
  • 12.
  • 13.
  • 14.
  • 15.
    Outils graphiques Les différentsIDE possèdent leurs plugins Git : • Egit (Eclipse) • NBGit (NetBeans) Des utilitaires existent pour Git : • TortoiseGit • Git Tower (Mac)
  • 16.
    Ressources http://fr.whygitisbetterthanx.com (Plaidoyer Progit) http://progit.org/book/ (livre en ligne) http://blog.loof.fr/2010/08/from-svn-to-git.html http://www.git-attitude.fr http://gitfr.net/blog/ (@gitfr) Videos de présentation http://www.parleys.com/#st=5&id=2366 http://www.parleys.com/#st=5&id=2368