SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
On 19 February I held a presentation for my colleagues about distributed version control systems (DVCS). My main goal was to inform them on what I think is the next logical step in source control.
Also see http://vlent.nl/weblog/2010/02/25/distributed-version-control-systems-presentation
On 19 February I held a presentation for my colleagues about distributed version control systems (DVCS). My main goal was to inform them on what I think is the next logical step in source control.
Also see http://vlent.nl/weblog/2010/02/25/distributed-version-control-systems-presentation
9.
DVCS in 5 minutes
• Complete local copy of the repository
• Most common actions don’t need network
• Private branches
10.
DVCS in 5 minutes
• Most popular:
• Bazaar
• Git
• Mercurial
11.
Disadvantages
• More complex to learn/use
• New or redefined terminology
• No partial clones so one repo per project
• Easier to crawl into a cave
12.
Advantages
• Local commits (easier to experiment)
• FAST!
• Cleaner working copy (no .svn dirs)
• Working copy svn same size as full history
• Code review local commits before push
13.
Advantages
• Cooperation without commits to central
repo
• Better merging, thus low barrier for
branching
• Commit before merge instead of merge
before commit
26.
Merge before commit
remote local
update
run tests; no errors
27.
Merge before commit
remote local
update
run tests; no errors
write code
run tests; no errors
28.
Merge before commit
remote local
update
run tests; no errors
write code
run tests; no errors
update + solve conflicts
29.
Merge before commit
remote local
update
run tests; no errors
write code
error in run tests; no errors
commit?
error in
update + solve conflicts
merge?
run tests; errors
30.
Merge before commit
remote local
update
run tests; no errors
write code
error in run tests; no errors
commit?
error in
update + solve conflicts
merge?
run tests; errors
No commit to revert to!
31.
Commit before merge
remote local
update
run tests; no errors
32.
Commit before merge
remote local
update
run tests; no errors
write code
run tests; no errors
make local commit
33.
Commit before merge
remote local
update
run tests; no errors
write code
run tests; no errors
make local commit
update + solve conflicts
34.
Commit before merge
remote local
update
run tests; no errors
write code
error in run tests; no errors
commit?
make local commit
error in
update + solve conflicts merge?
run tests; errors
35.
Commit before merge
remote local
update
run tests; no errors
write code
Revert to
run tests; no errors
working commit
make local commit and try again
36.
How I use git-svn
svn buildout
src
theme
policy
37.
How I use git-svn
svn buildout
src
theme
policy
$ git svn clone -s <buildout-url>
git buildout
src
theme
policy
38.
How I use git-svn
svn buildout
src
theme svn:external
policy svn:external
39.
How I use git-svn
svn buildout
src
theme svn:external
policy svn:external
$ git svn clone -s <buildout-url>
$ git-ext-svn-clone
git buildout
src
theme git
policy git