1 / 35

Git, a new Source Code Management system (SCM) after CVS and SVN

Git, a new Source Code Management system (SCM) after CVS and SVN. Claire Mouton Foudil Brétel Atelir Git – October 17 th 2013. Based on the work of Christophe Demarey, Julien Vandaele Research Centre INRIA Lille – Nord Europe. Core Notions. Core notions > Get a project.

prem
Télécharger la présentation

Git, a new Source Code Management system (SCM) after CVS and SVN

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Git,a new Source Code Management system (SCM) after CVS and SVN Claire Mouton Foudil Brétel Atelir Git – October 17th 2013 Based on the work of Christophe Demarey, Julien Vandaele Research Centre INRIA Lille – Nord Europe

  2. Core Notions

  3. Core notions > Get a project checkout / clone Developer A Repository Developer B

  4. Core notions > Commit development Developer A Repository Developer B

  5. Core notions > Commit commit Developer A Repository Developer B

  6. Core notions > Update update Developer A Repository Developer B

  7. Core notions > Conflict commit Developer A Repository Developer B

  8. Core notions > Conflict commit Developer A Repository Developer B

  9. Core notions > Conflict merge Developer A Repository Developer B conflict

  10. Core notions > Conflict diff Developer A Repository Developer B conflict

  11. Core notions > Conflict commit Developer A Repository Developer B

  12. Core notions > Branch Maintenance and development (maintain version N and develop version N+1) Work on a project sub-set (one branch per feature) Experimental development Save commits temporarily branch new branch main branch (trunk)

  13. Core notions > Branches merging "Merge branches" : Bring changes from a branch to another branch merge new branch main branch (trunk)

  14. Centralized SCM> CVS and Subversion (SVN)

  15. Conclusion on centralized SCM A central/core repository Easy to use Parallel work (merge) is difficult No memorizing of successive merges information The user has to remember! (to avoid conflict while merging) Need to be on line for almost commands Privileged users (committers) DistributedSCM (Git) CVS SVN past present future

  16. Distributed SCM

  17. Policy example: centralized

  18. Policy example: distributed

  19. Decentralized benefits Each developer can have his own repository Off-line use (commands available offline) ex: Do a local commit Create a branch without having to ask authorization ex: Open Source community Synchronisation needed between repositories pull = get changes from a remote repository to your local repository push = post your changes to a remote repository

  20. Exchanges between (remote) repositories pull push pull push pull push pull push pull push

  21. Decentralized SCM> Git

  22. Git > History Goal: manage efficiently big projects like "Linux" Use of Git for the Linux kernel since june 2005 April 2005 Matt Marckall Linus Torvalds

  23. Git > Local operations commit Git user Main line master Current line topic New branch

  24. Git > Conflict commit Git user master topic conflict resolution

  25. Git > Distant operations Remote machine master fetch + merge = pull clone Local machine cherrypick origin master

  26. Git > Workflow > Classic working A 1. clone 3. push B 2. commit

  27. Git > Workflow > Classic working A A 1. clone 3. push 1. pull 3. push B B 2. commit 2. commit

  28. Git > Bisection Findsthecommit introducing a bug by dichotomy ? ? ? good bad

  29. Git > Bisection Findsthecommit introducing a bug by dichotomy good suspect bad suspect

  30. Git Good visualization and branch handling, available locally: saving of intermediary states, working on distinct features, experiments, … Easy merge of branches, cherrypick for one single commit All operations available locally, except push and pull Flexible: undo / modify commits, locally before sharing Hooks pre/post (commit, update ...) Bisection: finds the guilty commit (the one that introduced the bug) Efficient on big projects Available on Linux, OS X and Windows

  31. Around Git GUIs qgit (Qt) TortoiseGit via Putty (Windows) GitX (MacOS) Gitk (Windows, Linux, MacOS) Users Linux kernel Wine X.org Android Kitware • Useful links • http://git-scm.com/

  32. Around Git > qgit

  33. Conclusion

  34. Conclusion A decentralized SCM remains a tool No default usage policy Policy to be defined From centralized to decentralized Pull-only vs shared-push Branch by functionality or Release train Anarchic Centralized Linux kernel model

  35. Conclusion A decentralized SCM remains a tool No default usage policy Policy to be defined From centralized to decentralized Pull-only vs shared-push Centralized-style workflow Integration manager workflow

More Related