System Hrishikesh K B S7 CSE College of Engineering Munnar 15 September 2011 Creative Commons Attribution Share Alike 2.5 India License http://creativecommons.org/licenses/by-sa/2.5/in Created with L ATEX Hrishikesh K B Git-A Distributed Version Control System
is Version Control System? Technical Terms Centralized Version Control System Distributed Version Control System 2 GIT Repository structure Blob Object Tree Object Commit Object Tag Object 3 Advantages and Improvements Advantages Improvements 4 Conclusion References Hrishikesh K B Git-A Distributed Version Control System
System? Technical Terms Centralized Version Control System Distributed Version Control System What is Version Control System? An Aspect of software configuration management. Keeps multiple (older and newer) versions of everything (not just source code) Requests comments regarding every change. Enable groups of people to work together. Hrishikesh K B Git-A Distributed Version Control System
System? Technical Terms Centralized Version Control System Distributed Version Control System Technical Terms Change Repository Commit Trunk Branch Tags Merge Hrishikesh K B Git-A Distributed Version Control System
System? Technical Terms Centralized Version Control System Distributed Version Control System Centralized Version Control System Traditional version control system Server with database Clients have a working version Examples: CVS,Subversion,Visual Source Safe etc. Multi-developer conflicts Client/server communication Requires ’Committer’ Status Hrishikesh K B Git-A Distributed Version Control System
System? Technical Terms Centralized Version Control System Distributed Version Control System Distributed Version Control System Authoritative server by convention only. Every working checkout is a repository. Get version control even when detached. Examples: Git , Mercurial , Bazaar etc. Hrishikesh K B Git-A Distributed Version Control System
designed and developed by Linus Torvalds. Very fast operations compared to other VCS. Managing branches is easy and switching between them locally is fast Used by many major open source projects such as Android, Eclipse and Ruby on Rails. Hrishikesh K B Git-A Distributed Version Control System
Used to store file data. It doesn’t refer to anything else or have attributes of any kind Files with same content will share the same blob object. Renaming a file does not change the object that file is associated with. Hrishikesh K B Git-A Distributed Version Control System
Represents the contents of a directory or subdirectory. It is a simple object that has a bunch of pointers to blobs and other trees A tree object contains a list of entries, each with a mode, object type, SHA1 name, and name. Two trees have the same SHA1 name if and only if their contents are identical. Hrishikesh K B Git-A Distributed Version Control System
The ”commit” object links a physical state of a tree with a description of how we got there and why. A commit is defined by a tree , parent(s),an author,a commiter , and a comment Changes are calculated by comparing the contents of the tree referred to by this commit with the trees associated with its parents. Hrishikesh K B Git-A Distributed Version Control System
A tag object contains an object name (called simply ’object’), object type, tag name, the name of the person (”tagger”) who created the tag, and a message, which may contain a signature Hrishikesh K B Git-A Distributed Version Control System
users to work productively even when not connected to a network Makes most operations much faster since no network is involved Allows private work, so users can use their revision control system even for early drafts they do not want to publish Avoids relying on a single physical machine as a single point of failure. Hrishikesh K B Git-A Distributed Version Control System
to a better hash function before further research destroys SHA1. Remove Commit Size Limit Increase Repository Size. Hrishikesh K B Git-A Distributed Version Control System
multiple versions of everything Centralized and Distributed Systems Git is a fast Distributed Version Control system It has many advantages over other systems. Corporate software developers should consider git over other VCSs Hrishikesh K B Git-A Distributed Version Control System
Control Systems, by Dipl. Medieninformatiker (BA) Daniel Kuhn http://git-scm.com/ http://eagain.net/articles/ git-for-computer-scientists/ http: //hoth.entp.com/output/git_for_designers.html http://www-cs-students.stanford.edu/~blynn/ gitmagic/book.pdf http://en.wikipedia.org/wiki/Git_software http://en.wikipedia.org/wiki/Distributed_ revision_control_system http://stackoverflow.com/questions/35837/ what-is-the-difference-between-mercurial-and-git Hrishikesh K B Git-A Distributed Version Control System