Version Control - Patterns and Practices

Preview:

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 / gort@cix.co.ukgort@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 / gort@cix.co.ukgort@cix.co.uk

Recommended