Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Version Controlling

Version Controlling

Slides of the session on Version Controlling. The session was held at Fedora Meetup in Jamia Milia Islamia, New Delhi, India.

Vaidik Kapoor

July 21, 2012
Tweet

More Decks by Vaidik Kapoor

Other Decks in Programming

Transcript

  1. I am Vaidik ➔ A B. Tech. student at Jaypee

    Institute of Information Technology, NOIDA. ➔ A web developer. ➔ A Drupal Contributor. ➔ A Mozilla Student Rep and Contributor. ➔ Twitter: @vaidikkapoor ➔ Github: vaidikkp
  2. What we will talk about? ➔ Version Controlling – The

    Concept ➔ Distributed VCS vs Centralized VCS ➔ Introduction to Git ➔ Hands-on Git! ➔ More Resources
  3. Version Controlling ➔ What is Version Control? ✔ A system

    that is used to record changes to a file or a set of files. ➔ Why we need it? ✔ Keep track of changes that anyone makes to a set of files. ✔ Revert to a particular version of your file (state) if you need to so you don't have to remember everything you do. ✔ Compare different states of your file. ✔ Collaborate easily, independent of geography.
  4. Centralized vs. Distributed ➔ Local VCS: ✔ The project is

    on your local machine. ✔ Commits are stored in a local database that keeps track of changes. ✔ Disadvantages:  No way to collaborate  Single point-of-failure: if your local machine crashes, all your work is lost.
  5. Centralized vs. Distributed ➔ Centralized ✔ The VCS database is

    on a server accessible to everyone. ✔ Read/update the latest snapshot of the files from the central server. ✔ Advantages:  Very easy to collaborate.  Everyone stays updated with the changes everyone makes.  A lot more control over files (like who can read/write which files, etc.). ✔ Disadvantages:  Single point-of-failure: if the server crashes or goes down, the work might get lost or nobody might be able to collaborate for some time. ✔ Examples:  CVS, SVN, Perforce
  6. Centralized vs. Distributed ➔ Distributed ✔ The VCS database is

    on a server accessible to everyone. ✔ Instead of reading/updating the snapshot of files, get the whole history of changes. ✔ Advantages:  Everybody has everything that is there on the server.  No single point-of-failure, everybody is happy! :) ✔ Examples:  Git, Mercurial, Bazaar, Darcs
  7. Git ➔ A DVCS. ➔ Originally developed by Linus Torvalds

    for version controlling of the Kernel. ➔ Originally a command-line utility, but a wide variety of GUI clients exist. ➔ Works on Linux, Mac and Windows. ➔ Used a lot, wide community.
  8. Hands-on Time! ➔ Git Basic Commands ✔ Init ✔ Add/Commit

    ✔ Log ✔ Revert ✔ Branch ✔ Merge ✔ Merge Conflict ➔ A common workflow ➔ How to work with Github? ✔ Push ✔ Pull
  9. More Resources ➔ More Tutorials: ✔ Git SCM Book: http://git-scm.com/book

    ✔ Pro Git: http://progit.org/book/ ✔ Git Immersion: http://gitimmersion.com/ ✔ Screencast from Github: http://learn.github.com/p/intro.html ✔ Presentation by Shakti Kannan: http://goo.gl/6BTTv
  10. Thank You! This presentation can be found online at http://www.slideshare.net/...

    (the chicken and egg problem :P) Me: • Website http://vaidikkapoor.info • Twitter http://twitter.com/vaidikkapoor • Github http://github.com/vaidikkp OSDC: • Website http://opensource.jiitu.org • Wiki http://opensource.jiitu.org/wiki • Twitter http://twitter.com/jiitosdc • Facebook Group http://on.fb.me/jiitosdc