Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.


The Good, The Bad and the GIT

First prezi

Jędrzej Nowowiejski

on 14 February 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of The Good, The Bad and the GIT

CVCS vs. DVCS CVCS Base Camp The Good,
the Bad
and the Why should I use version control? DVCS Short Briefing GIT - what is it about? git svn --help Wanted to experiment with a new feature without interfering with working code? Made a change to code, realized it was a mistake and wanted to go back? Lost code or had a backup that was too old? Had to maintain multiple versions of a product? Wanted to see the difference between two (or more) versions of your code? Wanted to prove that a particular change broke or fixed some piece of code? Wanted to submit a change (patch) to someone else's code? Wanted to see how much work is being done (where/when/who)? Have you ever? If yes, please use VCS;) http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/ http://pages.cs.wisc.edu/~driscoll/software/vcs/ http://pages.cs.wisc.edu/~driscoll/software/vcs/ http://programmers.stackexchange.com/questions/35074/im-a-subversion-geek-why-should-i-consider-or-not-consider-mercurial-or-git-or http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/ Rational Clear Case centralized(-replicated) VCS

linear version storage

3-way merging



branches are first-class citizens

path-accessed both pessimistic lock and optimistic lock

cheap branching

flat-file storage

local or network workspace access

centralized deported storage

meta-data oriented

system-based protection Characteristics: http://www.geekstir.com/wp-content/uploads/2009/09/trekdog.jpg http://fabiopereira.me/blog/2011/03/03/clearcase-merge-excuse-for-slacking-off/ Expensive!!! Sloooooowwwwww... http://fabiopereira.me/blog/2011/03/03/clearcase-merge-excuse-for-slacking-off/ Subversion/SVN centralized VCS

atomic commits

full revision history retained for files that are renamed, copied, moved or removed

no file locking (by design)

working copy of files are always writable and all changes are local until committed
fast and flexible update/commits

branching and tagging are cheap operations

ease of access to the commit log

easy to setup email triggers

integrates with everything

ease of setup and administration Characteristics: GIT is Distributed So what's the BIG deal? You must be online! http://imgfave.com/view/507358 Work offline! All clones are equal! Everybody has a backup! One change == One commit No more commented treasures Keeps track of your work (really) Write good comments! git commit --amend Changing History http://vimeo.com/51117993 Branching Branch is a Pointer
That's it Branch to Your Heart's Desire! Work on more than one thing at a time Push to trunk only the branches you want Sanctuary for unwanted code KRRA! Directed Acyclic Graph A Hash Tree? Hashes instead of revision numbers Each commit is a graph node Commit Object is the basic unit of GIT repo GIT operates only on commits Each commit contains info about its parent commits Adds new commits, sometimes with multiple parents Modifies commits? WHY I SEE
NO BRANCHES HERE? Removes commits? Here! (commits) Make branching YOUR
adventure! What about merging? Merging is done only at the level of commits Multiple merging strategies Mercurial/Hg distributed VCS

atomic commits

easy maintenance

better learning curve than git

Windows support Characteristics: http://glyphobet.soup.io/tag/funny About Mercurial: "(...) though it is definitely speedy, both in terms of learning curve and execution speed, it is also at times inconsistent, maddening, and unpredictable. (...)" http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/ Mercurial is James Bond GIT Distributed VCS

Strong support for non-linear development

Compatibility with existing systems/protocols

Efficient handling of large projects

Cryptographic authentication of history Characteristics: Toolkit-based design

Pluggable merge strategies

Garbage accumulates unless collected

Periodic explicit object packing GIT is MacGyver Authors: Name: Andrzej Nieradka Alias: Borsuk Aktualna lokalizacja: Kurnik (R&D) Name: Jędrek Nowowiejski Alias: unknown Aktualna lokalizacja: Kurnik (R&D) For whom is GIT? 3-way merge
Full transcript