This meetup I will be walking the audience through how to setup, configure and maintain distributed development workflows using Git (the distributed VCS developers either love or hate). Much of the workflows suggested here will be applicable to other dVCSes like Mercurial, Darcs and Bazaar.
2. Scope of Talk
• How does Git differ. . . ?
CVS, Subversion, Perforce, Mercurial
3. Scope of Talk
• How does Git differ. . . ?
CVS, Subversion, Perforce, Mercurial
• Gitting Started Locally
Server configuration management
4. Scope of Talk
• How does Git differ. . . ?
CVS, Subversion, Perforce, Mercurial
• Gitting Started Locally
Server configuration management
• Centralized Remote
(a.k.a. a better Subversion)
5. Scope of Talk
• How does Git differ. . . ? • Forking Workflows
CVS, Subversion, Perforce, Mercurial (the GitHub model)
• Gitting Started Locally
Server configuration management
• Centralized Remote
(a.k.a. a better Subversion)
6. Scope of Talk
• How does Git differ. . . ? • Forking Workflows
CVS, Subversion, Perforce, Mercurial (the GitHub model)
• Gitting Started Locally • Gatekeeper Workflows
Server configuration management (enterprise release management)
• Centralized Remote
(a.k.a. a better Subversion)
7. Scope of Talk
• How does Git differ. . . ? • Forking Workflows
CVS, Subversion, Perforce, Mercurial (the GitHub model)
• Gitting Started Locally • Gatekeeper Workflows
Server configuration management (enterprise release management)
• Centralized Remote • Deployment Strategies?
(a.k.a. a better Subversion) (scalable distributed deployment)
8. VCS Dimensions
Delta DAG
Local RCS cp -r or hard links
Centralized CVS, Subversion, Perforce ?
Distributed Mercurial, Darcs Git, Bazaar
26. Centralized Workflow (1/3)
Adding a remote
• git init bare
Create remote “bare” repo
• Setup server authN/authZ
e.g. $HOME/.ssh/authorized_keys, PAM, LDAP, etc.
27. Centralized Workflow (1/3)
Adding a remote
• git init bare
Create remote “bare” repo
• Setup server authN/authZ
e.g. $HOME/.ssh/authorized_keys, PAM, LDAP, etc.
• git remote add <name> <URL>
Add remote to local repository
36. Gatekeeper Workflow (1/2)
Gatekeeper remote repository. . .
• git init bare
Basically just create a bare Git repo and let gatekeeper curate and selectively push
38. Deployment Workflows (1/2)
Distributed systems deployment could bundle
rollback with new release. . .
39. Deployment Workflows (1/2)
Distributed systems deployment could bundle
rollback with new release. . .
• git bundle create <file.bundle>
<branches,tags,etc>
Creating a bundle with those branches, tags and/or commit range
40. Deployment Workflows (1/2)
Distributed systems deployment could bundle
rollback with new release. . .
• git bundle create <file.bundle>
<branches,tags,etc>
Creating a bundle with those branches, tags and/or commit range
• git bundle verify <file.bundle>
Verify bundle is valid and will apply cleanly to deployed repository
41. Deployment Workflows (1/2)
Distributed systems deployment could bundle
rollback with new release. . .
• git bundle create <file.bundle>
<branches,tags,etc>
Creating a bundle with those branches, tags and/or commit range
• git bundle verify <file.bundle>
Verify bundle is valid and will apply cleanly to deployed repository
• git bundle unbundle <file.bundle>
Unbundling subset of repository on deployment node