Upload
chris-oldwood
View
207
Download
6
Embed Size (px)
DESCRIPTION
After the text editor and programming language the next most valuable, hotly debated and often poorly used tool is probably the version control system. Some treat it as nothing more than an ad-hoc backup of their source code whilst others endeavour to create a narrative that describes the evolution of their entire software product from inception to decommission. This session takes a walk through the software development lifecycle and examines the role the source control system plays – what we store, why we store it, how we change it and then later how we reconstruct what was changed and why. We’ll look at the various forces that dictate our branching (and subsequent merging) strategies along with some of the less contentious policies we can adopt to ensure our system continues to evolve reliably whilst maintaining a traceable narrative. Despite the range of commercial and open source SCM products out there the patterns and practices I will discuss here are almost universal. For the Software Archaeologist preserving history across file/folder moves and renames is just one aspect where tool specific knowledge matters. But before we can get there we need to deal with their lack of agreement on a common vernacular…
Citation preview
Version Control – Version Control – Patterns & PracticesPatterns & Practices
Chris OldwoodChris Oldwood
ACCU Conference 2014ACCU Conference 2014
@chrisoldwood / @chrisoldwood / [email protected]@cix.co.uk
Pending CommitsPending Commits
ArchitecturesArchitectures WorkspaceWorkspace BranchingBranching MergingMerging CommittingCommitting BuildingBuilding LabellingLabelling ArchaeologyArchaeology
ArchitecturesArchitectures
SourceSafe + Robocopy = SourceSafe + Robocopy = DVCS DVCS
NAS(VSS)
Desktop(VSS)
Laptop(VSS)
Office(VSS)
ROBOCOPYCheck-In
WorkspaceWorkspace
BranchingBranching
Integration/Development Integration/Development BranchBranch
1 2 3 4 5
Release BranchRelease Branch
3 4 5 6 7
A B
Stable
Volatile
Feature/Task/Private BranchFeature/Task/Private Branch
3 4 5 6 7
A B C
More Stable
More Volatile
ShelvingShelving
1 2 3
ShelvingShelving
1 2 4 5 6
3
No Branch (Feature No Branch (Feature Toggles)Toggles)
1a 2 1b 3 1c
Always Ready to Ship
MergingMerging
Integration PainsIntegration Pains
3 4 5 6 7
X Y Z
A B
Cherry PickingCherry Picking
3 4 5 6 7
A CB
CommittingCommitting
BuildingBuilding
Gatekeeper WorkflowsGatekeeper Workflows
3 4 5 6 7
X Y
BAlice
Bob
C
GK
Z
D
LabellingLabelling
Branching From a LabelBranching From a Label
3 4 5 6 7
A B
v1 X Y
v1.1
ArchaeologyArchaeology
LiteratureLiterature
Questions?Questions?
Blog:Blog:
http://chrisoldwood.blogspot.comhttp://chrisoldwood.blogspot.com
@chrisoldwood / @chrisoldwood / [email protected]@cix.co.uk