-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
executable file
·127 lines (125 loc) · 5.67 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<title>Using version control branching to create a useful workflow</title>
<meta content='Using version control branching to create a useful workflow' name='description'>
<meta content='Megan Bowra-Dean <[email protected]>' name='author'>
<meta content='yes' name='apple-mobile-web-app-capable'>
<meta content='black-translucent' name='apple-mobile-web-app-status-bar-style'>
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' name='viewport'>
<link href='css/reveal.min.css' rel='stylesheet'>
<link href='css/theme/sky.css' id='theme' rel='stylesheet'>
<!-- For syntax highlighting -->
<link href='lib/css/zenburn.css' rel='stylesheet'>
<!-- If the query includes 'print-pdf', use the PDF print sheet -->
<script>
document.write( '<link rel="stylesheet" href="css/print/' + ( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) + '.css" type="text/css" media="print">' );
</script>
<!--[if lt IE 9]>
<script src='lib/js/html5shiv.js'></script>
<![endif]-->
</head>
<body>
<div class='reveal'>
<!-- Any section element inside of this container is displayed as a slide -->
<div class='slides'>
<section>
<h1>Branches</h1>
<h3>Using branches in Git to improve workflow</h3>
<p>
<small>
<a href='http://megan.geek.nz'>Megan Bowra-Dean</a>
/
<a href='http://twitter.com/megahbite'>@megahbite</a>
<br>
Software Developer at
<a href='http://www.rabid.co.nz'>Rabid Tech</a>
</small>
</p>
</section>
<section>
<h2>Git vs Other DVCS</h2>
<p>
Why do we use Git over Mercurial or Bazzar?
</p>
</section>
<section>
<h2>Git is not user friendly</h2>
<p>Even by command line tool standards Git fails at consistency</p>
<pre>git branch -D <branch_name>
git remote remove <remote_name>
</pre>
</section>
<section>
<h2>However Git is really awesome and fast for branching code</h2>
<p>
This is probably Git's main advantage over other DVCSs but it is underutilised.
Using Git's powerful and fast branching capabilities we can create robust workflows
</p>
</section>
<section>
<h2>What does a robust branch based workflow look like?</h2>
</section>
<section>
<p>
The seminal work on this is probably Vincent Driessen's "A successful Git branching model"
<a href='http://nvie.com/posts/a-successful-git-branching-model/'>http://nvie.com/posts/a-successful-git-branching-model/</a>
</p>
</section>
<section id='workflow-diagram'>
<img src='img/gitworkflow.png'>
</section>
<section>
<h2>Over engineered?</h2>
<p>
This workflow is suitable for large open source projects with many contributors but is probably too complex for a small agile company like Rabid.
</p>
</section>
<section>
<h2>How we've adapted this workflow for the project NZ Navigator</h2>
</section>
<section>
<ul>
<li>Kept the core master and develop branches on Bitbucket</li>
<li class='fragment'>Create hotfix branches as they're needed.</li>
<li class='fragment'>Removed the release branches</li>
<li class='fragment'>Feature branches are kept in local repositories only</li>
</ul>
<a href='#/workflow-diagram'>Diagram</a>
</section>
<section>
<p>
Streamlining the workflow allows us to keep rapid agile development while maintaining structure and accountability.
</p>
</section>
<section>
<h2>THE END</h2>
</section>
</div>
</div>
<script src='lib/js/head.min.js'></script>
<script src='js/reveal.min.js'></script>
<script>
// Full list of configuration options available here:
// https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: true,
theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/fade/none
// Optional libraries used to extend on reveal.js
dependencies: [
{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
{ src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
// { src: 'plugin/search/search.js', async: true, condition: function() { return !!document.body.classList; } }
// { src: 'plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } }
]
});
</script>
</body>
</html>