Mercurial > public > dvcs_intro_brownbag
comparison slides.html @ 16:048e5aea6d36 tip
Updates for June 2012 presentation.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Mon, 25 Jun 2012 19:51:34 -0500 |
parents | 3547bba86af2 |
children |
comparison
equal
deleted
inserted
replaced
15:70e53cce4ad0 | 16:048e5aea6d36 |
---|---|
72 <aside class="source"> | 72 <aside class="source"> |
73 Source: <a href="slides.rst">slides.rst</a> | 73 Source: <a href="slides.rst">slides.rst</a> |
74 </aside> | 74 </aside> |
75 | 75 |
76 <aside class="page_number"> | 76 <aside class="page_number"> |
77 1/33 | 77 1/37 |
78 </aside> | 78 </aside> |
79 </footer> | 79 </footer> |
80 </div> | 80 </div> |
81 </div> | 81 </div> |
82 | 82 |
83 <!-- slide source: slides.rst --> | 83 <!-- slide source: slides.rst --> |
84 <div class="slide-wrapper"> | 84 <div class="slide-wrapper"> |
85 <div class="slide"> | 85 <div class="slide"> |
86 <div class="inner"> | 86 <div class="inner"> |
87 | 87 |
88 <header><h1>(Subliminal Message)</h1></header> | 88 <header><h1>Agenda</h1></header> |
89 | 89 |
90 | 90 |
91 <section><img alt="images/stop.jpg" src="images/stop.jpg" /></section> | 91 <section><ul class="simple"> |
92 | 92 <li>Brief history of version control tools</li> |
93 </div> | 93 <li>Features of distributed version control</li> |
94 <div class="presenter_notes"> | 94 <li>Brief introduction to Mercurial</li> |
95 <header><h1>Presenter Notes</h1></header> | 95 </ul></section> |
96 <section> | 96 |
97 | 97 </div> |
98 </section> | 98 <div class="presenter_notes"> |
99 </div> | 99 <header><h1>Presenter Notes</h1></header> |
100 <footer> | 100 <section> |
101 | 101 |
102 <aside class="source"> | 102 </section> |
103 Source: <a href="slides.rst">slides.rst</a> | 103 </div> |
104 </aside> | 104 <footer> |
105 | 105 |
106 <aside class="page_number"> | 106 <aside class="source"> |
107 2/33 | 107 Source: <a href="slides.rst">slides.rst</a> |
108 </aside> | |
109 | |
110 <aside class="page_number"> | |
111 2/37 | |
108 </aside> | 112 </aside> |
109 </footer> | 113 </footer> |
110 </div> | 114 </div> |
111 </div> | 115 </div> |
112 | 116 |
141 <aside class="source"> | 145 <aside class="source"> |
142 Source: <a href="slides.rst">slides.rst</a> | 146 Source: <a href="slides.rst">slides.rst</a> |
143 </aside> | 147 </aside> |
144 | 148 |
145 <aside class="page_number"> | 149 <aside class="page_number"> |
146 3/33 | 150 3/37 |
151 </aside> | |
152 </footer> | |
153 </div> | |
154 </div> | |
155 | |
156 <!-- slide source: slides.rst --> | |
157 <div class="slide-wrapper"> | |
158 <div class="slide"> | |
159 <div class="inner"> | |
160 | |
161 <header><h1>Disclaimers</h1></header> | |
162 | |
163 | |
164 <section><ul class="simple"> | |
165 <li>This is not a sales pitch</li> | |
166 <li>I actually <span class="strike">like</span> respect Subversion<ul> | |
167 <li>I'm the "Subversion guy" on my team</li> | |
168 <li>I developed SVN training and have given it ~9-10 times</li> | |
169 <li><a class="reference external" href="http://subversion.tigris.org/issues/show_bug.cgi?id=3919">http://subversion.tigris.org/issues/show_bug.cgi?id=3919</a></li> | |
170 </ul> | |
171 </li> | |
172 <li>I am not an expert<ul> | |
173 <li>I'm probably making this look too easy</li> | |
174 </ul> | |
175 </li> | |
176 </ul></section> | |
177 | |
178 </div> | |
179 <div class="presenter_notes"> | |
180 <header><h1>Presenter Notes</h1></header> | |
181 <section> | |
182 | |
183 </section> | |
184 </div> | |
185 <footer> | |
186 | |
187 <aside class="source"> | |
188 Source: <a href="slides.rst">slides.rst</a> | |
189 </aside> | |
190 | |
191 <aside class="page_number"> | |
192 4/37 | |
193 </aside> | |
194 </footer> | |
195 </div> | |
196 </div> | |
197 | |
198 <!-- slide source: slides.rst --> | |
199 <div class="slide-wrapper"> | |
200 <div class="slide"> | |
201 <div class="inner"> | |
202 | |
203 <header><h1>Why learn about DVCS?</h1></header> | |
204 | |
205 | |
206 <section><ul class="simple"> | |
207 <li>DVCS have exploded in the open source world<ul> | |
208 <li>Interestingly, Subversion is growing in corporate environments</li> | |
209 </ul> | |
210 </li> | |
211 <li>Frustration with current tools</li> | |
212 <li>Interesting to see how the tools have evolved<ul> | |
213 <li>As a software practitioner, you should know what your options are</li> | |
214 </ul> | |
215 </li> | |
216 </ul></section> | |
217 | |
218 </div> | |
219 <div class="presenter_notes"> | |
220 <header><h1>Presenter Notes</h1></header> | |
221 <section> | |
222 | |
223 </section> | |
224 </div> | |
225 <footer> | |
226 | |
227 <aside class="source"> | |
228 Source: <a href="slides.rst">slides.rst</a> | |
229 </aside> | |
230 | |
231 <aside class="page_number"> | |
232 5/37 | |
147 </aside> | 233 </aside> |
148 </footer> | 234 </footer> |
149 </div> | 235 </div> |
150 </div> | 236 </div> |
151 | 237 |
180 <aside class="source"> | 266 <aside class="source"> |
181 Source: <a href="slides.rst">slides.rst</a> | 267 Source: <a href="slides.rst">slides.rst</a> |
182 </aside> | 268 </aside> |
183 | 269 |
184 <aside class="page_number"> | 270 <aside class="page_number"> |
185 4/33 | 271 6/37 |
186 </aside> | 272 </aside> |
187 </footer> | 273 </footer> |
188 </div> | 274 </div> |
189 </div> | 275 </div> |
190 | 276 |
222 <aside class="source"> | 308 <aside class="source"> |
223 Source: <a href="slides.rst">slides.rst</a> | 309 Source: <a href="slides.rst">slides.rst</a> |
224 </aside> | 310 </aside> |
225 | 311 |
226 <aside class="page_number"> | 312 <aside class="page_number"> |
227 5/33 | 313 7/37 |
228 </aside> | 314 </aside> |
229 </footer> | 315 </footer> |
230 </div> | 316 </div> |
231 </div> | 317 </div> |
232 | 318 |
267 <aside class="source"> | 353 <aside class="source"> |
268 Source: <a href="slides.rst">slides.rst</a> | 354 Source: <a href="slides.rst">slides.rst</a> |
269 </aside> | 355 </aside> |
270 | 356 |
271 <aside class="page_number"> | 357 <aside class="page_number"> |
272 6/33 | 358 8/37 |
273 </aside> | 359 </aside> |
274 </footer> | 360 </footer> |
275 </div> | 361 </div> |
276 </div> | 362 </div> |
277 | 363 |
297 <aside class="source"> | 383 <aside class="source"> |
298 Source: <a href="slides.rst">slides.rst</a> | 384 Source: <a href="slides.rst">slides.rst</a> |
299 </aside> | 385 </aside> |
300 | 386 |
301 <aside class="page_number"> | 387 <aside class="page_number"> |
302 7/33 | 388 9/37 |
303 </aside> | 389 </aside> |
304 </footer> | 390 </footer> |
305 </div> | 391 </div> |
306 </div> | 392 </div> |
307 | 393 |
329 <aside class="source"> | 415 <aside class="source"> |
330 Source: <a href="slides.rst">slides.rst</a> | 416 Source: <a href="slides.rst">slides.rst</a> |
331 </aside> | 417 </aside> |
332 | 418 |
333 <aside class="page_number"> | 419 <aside class="page_number"> |
334 8/33 | 420 10/37 |
335 </aside> | 421 </aside> |
336 </footer> | 422 </footer> |
337 </div> | 423 </div> |
338 </div> | 424 </div> |
339 | 425 |
369 <aside class="source"> | 455 <aside class="source"> |
370 Source: <a href="slides.rst">slides.rst</a> | 456 Source: <a href="slides.rst">slides.rst</a> |
371 </aside> | 457 </aside> |
372 | 458 |
373 <aside class="page_number"> | 459 <aside class="page_number"> |
374 9/33 | 460 11/37 |
375 </aside> | 461 </aside> |
376 </footer> | 462 </footer> |
377 </div> | 463 </div> |
378 </div> | 464 </div> |
379 | 465 |
411 <aside class="source"> | 497 <aside class="source"> |
412 Source: <a href="slides.rst">slides.rst</a> | 498 Source: <a href="slides.rst">slides.rst</a> |
413 </aside> | 499 </aside> |
414 | 500 |
415 <aside class="page_number"> | 501 <aside class="page_number"> |
416 10/33 | 502 12/37 |
417 </aside> | 503 </aside> |
418 </footer> | 504 </footer> |
419 </div> | 505 </div> |
420 </div> | 506 </div> |
421 | 507 |
453 <aside class="source"> | 539 <aside class="source"> |
454 Source: <a href="slides.rst">slides.rst</a> | 540 Source: <a href="slides.rst">slides.rst</a> |
455 </aside> | 541 </aside> |
456 | 542 |
457 <aside class="page_number"> | 543 <aside class="page_number"> |
458 11/33 | 544 13/37 |
459 </aside> | 545 </aside> |
460 </footer> | 546 </footer> |
461 </div> | 547 </div> |
462 </div> | 548 </div> |
463 | 549 |
475 <li>Switching between branches will blow your mind</li> | 561 <li>Switching between branches will blow your mind</li> |
476 </ul> | 562 </ul> |
477 </li> | 563 </li> |
478 <li>Initial pull down of an entire repository <em>might</em> be slower than a CVCS<ul> | 564 <li>Initial pull down of an entire repository <em>might</em> be slower than a CVCS<ul> |
479 <li>Then again, you might be surprised</li> | 565 <li>Then again, you might be surprised</li> |
480 <li>Mercurial, for example, stores an entire repository in less space than | 566 <li>Mercurial, for example, stores an <em>entire</em> repository in less space than |
481 a SVN working copy in many cases</li> | 567 a SVN working copy in many cases</li> |
482 </ul> | 568 </ul> |
483 </li> | 569 </li> |
484 </ul></section> | 570 </ul></section> |
485 | 571 |
495 <aside class="source"> | 581 <aside class="source"> |
496 Source: <a href="slides.rst">slides.rst</a> | 582 Source: <a href="slides.rst">slides.rst</a> |
497 </aside> | 583 </aside> |
498 | 584 |
499 <aside class="page_number"> | 585 <aside class="page_number"> |
500 12/33 | 586 14/37 |
501 </aside> | 587 </aside> |
502 </footer> | 588 </footer> |
503 </div> | 589 </div> |
504 </div> | 590 </div> |
505 | 591 |
532 <aside class="source"> | 618 <aside class="source"> |
533 Source: <a href="slides.rst">slides.rst</a> | 619 Source: <a href="slides.rst">slides.rst</a> |
534 </aside> | 620 </aside> |
535 | 621 |
536 <aside class="page_number"> | 622 <aside class="page_number"> |
537 13/33 | 623 15/37 |
538 </aside> | 624 </aside> |
539 </footer> | 625 </footer> |
540 </div> | 626 </div> |
541 </div> | 627 </div> |
542 | 628 |
551 <section><ul class="simple"> | 637 <section><ul class="simple"> |
552 <li>Imagine a team split between Cedar Rapids & Richardson...</li> | 638 <li>Imagine a team split between Cedar Rapids & Richardson...</li> |
553 <li>With a CVCS, you have to pick where to put the server</li> | 639 <li>With a CVCS, you have to pick where to put the server</li> |
554 <li>The remote location is stuck with network latency & associated problems</li> | 640 <li>The remote location is stuck with network latency & associated problems</li> |
555 <li>With a DVCS, each site can have a central repository<ul> | 641 <li>With a DVCS, each site can have a central repository<ul> |
556 <li>The two central repos can be synched when convenient or even scripted</li> | 642 <li>The two central repos can be synch'ed when convenient or even scripted</li> |
557 </ul> | 643 </ul> |
558 </li> | 644 </li> |
559 </ul> | 645 </ul> |
560 <img alt="images/split_geography.png" src="images/split_geography.png" /></section> | 646 <img alt="images/split_geography.png" src="images/split_geography.png" /></section> |
561 | 647 |
571 <aside class="source"> | 657 <aside class="source"> |
572 Source: <a href="slides.rst">slides.rst</a> | 658 Source: <a href="slides.rst">slides.rst</a> |
573 </aside> | 659 </aside> |
574 | 660 |
575 <aside class="page_number"> | 661 <aside class="page_number"> |
576 14/33 | 662 16/37 |
577 </aside> | 663 </aside> |
578 </footer> | 664 </footer> |
579 </div> | 665 </div> |
580 </div> | 666 </div> |
581 | 667 |
611 <aside class="source"> | 697 <aside class="source"> |
612 Source: <a href="slides.rst">slides.rst</a> | 698 Source: <a href="slides.rst">slides.rst</a> |
613 </aside> | 699 </aside> |
614 | 700 |
615 <aside class="page_number"> | 701 <aside class="page_number"> |
616 15/33 | 702 17/37 |
617 </aside> | 703 </aside> |
618 </footer> | 704 </footer> |
619 </div> | 705 </div> |
620 </div> | 706 </div> |
621 | 707 |
646 <aside class="source"> | 732 <aside class="source"> |
647 Source: <a href="slides.rst">slides.rst</a> | 733 Source: <a href="slides.rst">slides.rst</a> |
648 </aside> | 734 </aside> |
649 | 735 |
650 <aside class="page_number"> | 736 <aside class="page_number"> |
651 16/33 | 737 18/37 |
652 </aside> | 738 </aside> |
653 </footer> | 739 </footer> |
654 </div> | 740 </div> |
655 </div> | 741 </div> |
656 | 742 |
664 | 750 |
665 <section><ul class="simple"> | 751 <section><ul class="simple"> |
666 <li>Subversion has a bad reputation for merging<ul> | 752 <li>Subversion has a bad reputation for merging<ul> |
667 <li>Some of this is not warranted...<ul> | 753 <li>Some of this is not warranted...<ul> |
668 <li>Merge tracking was added in SVN v1.5</li> | 754 <li>Merge tracking was added in SVN v1.5</li> |
755 <li>Steadily improved in v1.6 - v1.7</li> | |
669 </ul> | 756 </ul> |
670 </li> | 757 </li> |
671 <li>SVN does not handle file renames and tree conflicts very well</li> | 758 <li>SVN does not handle file renames and tree conflicts very well</li> |
672 <li>A lot of teams simply avoid merging out of fear</li> | 759 <li>A lot of teams simply avoid merging out of fear or superstition</li> |
673 </ul> | 760 </ul> |
674 </li> | 761 </li> |
675 </ul></section> | 762 </ul></section> |
676 | 763 |
677 </div> | 764 </div> |
678 <div class="presenter_notes"> | 765 <div class="presenter_notes"> |
679 <header><h1>Presenter Notes</h1></header> | 766 <header><h1>Presenter Notes</h1></header> |
680 <section> | 767 <section> |
681 | 768 |
682 </section> | 769 </section> |
683 </div> | 770 </div> |
684 <footer> | 771 <footer> |
685 | 772 |
686 <aside class="source"> | 773 <aside class="source"> |
687 Source: <a href="slides.rst">slides.rst</a> | 774 Source: <a href="slides.rst">slides.rst</a> |
688 </aside> | 775 </aside> |
689 | 776 |
690 <aside class="page_number"> | 777 <aside class="page_number"> |
691 17/33 | 778 19/37 |
692 </aside> | 779 </aside> |
693 </footer> | 780 </footer> |
694 </div> | 781 </div> |
695 </div> | 782 </div> |
696 | 783 |
706 <li>Why is merging better in a DVCS?<ul> | 793 <li>Why is merging better in a DVCS?<ul> |
707 <li>Merging simply has to work correctly and be easy in a DVCS<ul> | 794 <li>Merging simply has to work correctly and be easy in a DVCS<ul> |
708 <li>More attention was paid to this aspect by DVCS's</li> | 795 <li>More attention was paid to this aspect by DVCS's</li> |
709 </ul> | 796 </ul> |
710 </li> | 797 </li> |
711 <li>DVCS's use directed acyclic graphs internally to represent change sets<ul> | 798 <li>DVCS's use <strong>directed acyclic graphs</strong> internally to represent change sets<ul> |
712 <li>More information is available to make merge decisions</li> | 799 <li>More information is available to make merge decisions</li> |
713 <li>Easier to find common ancestors of code</li> | 800 <li>Easier to find common ancestors of code</li> |
714 </ul> | 801 </ul> |
715 </li> | 802 </li> |
716 <li>Developer changes and merge changes are separate<ul> | 803 <li>Developer changes and merge changes are separate<ul> |
733 <aside class="source"> | 820 <aside class="source"> |
734 Source: <a href="slides.rst">slides.rst</a> | 821 Source: <a href="slides.rst">slides.rst</a> |
735 </aside> | 822 </aside> |
736 | 823 |
737 <aside class="page_number"> | 824 <aside class="page_number"> |
738 18/33 | 825 20/37 |
739 </aside> | 826 </aside> |
740 </footer> | 827 </footer> |
741 </div> | 828 </div> |
742 </div> | 829 </div> |
743 | 830 |
750 | 837 |
751 | 838 |
752 <section><ul class="simple"> | 839 <section><ul class="simple"> |
753 <li>With a CVCS:<ul> | 840 <li>With a CVCS:<ul> |
754 <li>You make changes in your working copy</li> | 841 <li>You make changes in your working copy</li> |
755 <li>Before you can commit, you often must peform an update<ul> | 842 <li>Before you can commit, you often must perform an update<ul> |
756 <li>This may trigger a merge</li> | 843 <li>This may trigger a merge</li> |
757 <li>Your changes are now mixed up with your friendly coworkers' changes</li> | 844 <li>Your changes are now mixed up with your friendly coworkers' changes</li> |
758 <li>Sometimes this can be a problem...</li> | 845 <li>Sometimes this can be a problem...</li> |
759 </ul> | 846 </ul> |
760 </li> | 847 </li> |
783 <aside class="source"> | 870 <aside class="source"> |
784 Source: <a href="slides.rst">slides.rst</a> | 871 Source: <a href="slides.rst">slides.rst</a> |
785 </aside> | 872 </aside> |
786 | 873 |
787 <aside class="page_number"> | 874 <aside class="page_number"> |
788 19/33 | 875 21/37 |
789 </aside> | 876 </aside> |
790 </footer> | 877 </footer> |
791 </div> | 878 </div> |
792 </div> | 879 </div> |
793 | 880 |
804 <li>Practically no support for locks<ul> | 891 <li>Practically no support for locks<ul> |
805 <li>This makes working with binary files difficult in a team environment</li> | 892 <li>This makes working with binary files difficult in a team environment</li> |
806 </ul> | 893 </ul> |
807 </li> | 894 </li> |
808 <li>Huge repositories are not practical</li> | 895 <li>Huge repositories are not practical</li> |
809 <li>Hetrogenous repositories are not practical<ul> | 896 <li>Heterogeneous repositories are not practical<ul> |
810 <li>Not a good idea to mix, say, software, systems, and firmware in the same repo</li> | 897 <li>Not a good idea to mix, say, software, systems, and firmware in the same repo</li> |
811 <li>Not a good idea to mix multiple products in the same repo</li> | 898 <li>Not a good idea to mix multiple products in the same repo</li> |
812 <li>Arguably, this applies to a CVCS as well</li> | 899 <li><em>Arguably, this applies to a CVCS as well</em></li> |
813 </ul> | 900 </ul> |
814 </li> | 901 </li> |
815 <li>No support for path-based access control<ul> | 902 <li>No support for path-based access control<ul> |
816 <li>With current tools, you either can access the full repo, or nothing</li> | 903 <li>With current tools, you either can access the full repo, or nothing</li> |
817 </ul> | 904 </ul> |
830 <aside class="source"> | 917 <aside class="source"> |
831 Source: <a href="slides.rst">slides.rst</a> | 918 Source: <a href="slides.rst">slides.rst</a> |
832 </aside> | 919 </aside> |
833 | 920 |
834 <aside class="page_number"> | 921 <aside class="page_number"> |
835 20/33 | 922 22/37 |
836 </aside> | 923 </aside> |
837 </footer> | 924 </footer> |
838 </div> | 925 </div> |
839 </div> | 926 </div> |
840 | 927 |
867 <aside class="source"> | 954 <aside class="source"> |
868 Source: <a href="slides.rst">slides.rst</a> | 955 Source: <a href="slides.rst">slides.rst</a> |
869 </aside> | 956 </aside> |
870 | 957 |
871 <aside class="page_number"> | 958 <aside class="page_number"> |
872 21/33 | 959 23/37 |
873 </aside> | 960 </aside> |
874 </footer> | 961 </footer> |
875 </div> | 962 </div> |
876 </div> | 963 </div> |
877 | 964 |
891 <li>Extensible with official and 3rd party extensions</li> | 978 <li>Extensible with official and 3rd party extensions</li> |
892 <li>TortoiseHg is a popular GUI for Windows</li> | 979 <li>TortoiseHg is a popular GUI for Windows</li> |
893 <li>Reputation for being fast & easy to get started with</li> | 980 <li>Reputation for being fast & easy to get started with</li> |
894 <li>Can be served via Apache Web server</li> | 981 <li>Can be served via Apache Web server</li> |
895 <li>Repository hooks</li> | 982 <li>Repository hooks</li> |
896 <li>Integrates with Trac</li> | 983 <li>Integrates with the Trac issue tracker</li> |
897 <li>Can import history from other tools, including Subversion</li> | 984 <li>Can import history from other tools, including Subversion</li> |
898 </ul></section> | 985 </ul></section> |
899 | 986 |
900 </div> | 987 </div> |
901 <div class="presenter_notes"> | 988 <div class="presenter_notes"> |
909 <aside class="source"> | 996 <aside class="source"> |
910 Source: <a href="slides.rst">slides.rst</a> | 997 Source: <a href="slides.rst">slides.rst</a> |
911 </aside> | 998 </aside> |
912 | 999 |
913 <aside class="page_number"> | 1000 <aside class="page_number"> |
914 22/33 | 1001 24/37 |
915 </aside> | 1002 </aside> |
916 </footer> | 1003 </footer> |
917 </div> | 1004 </div> |
918 </div> | 1005 </div> |
919 | 1006 |
960 <aside class="source"> | 1047 <aside class="source"> |
961 Source: <a href="slides.rst">slides.rst</a> | 1048 Source: <a href="slides.rst">slides.rst</a> |
962 </aside> | 1049 </aside> |
963 | 1050 |
964 <aside class="page_number"> | 1051 <aside class="page_number"> |
965 23/33 | 1052 25/37 |
966 </aside> | 1053 </aside> |
967 </footer> | 1054 </footer> |
968 </div> | 1055 </div> |
969 </div> | 1056 </div> |
970 | 1057 |
997 <aside class="source"> | 1084 <aside class="source"> |
998 Source: <a href="slides.rst">slides.rst</a> | 1085 Source: <a href="slides.rst">slides.rst</a> |
999 </aside> | 1086 </aside> |
1000 | 1087 |
1001 <aside class="page_number"> | 1088 <aside class="page_number"> |
1002 24/33 | 1089 26/37 |
1003 </aside> | 1090 </aside> |
1004 </footer> | 1091 </footer> |
1005 </div> | 1092 </div> |
1006 </div> | 1093 </div> |
1007 | 1094 |
1042 <aside class="source"> | 1129 <aside class="source"> |
1043 Source: <a href="slides.rst">slides.rst</a> | 1130 Source: <a href="slides.rst">slides.rst</a> |
1044 </aside> | 1131 </aside> |
1045 | 1132 |
1046 <aside class="page_number"> | 1133 <aside class="page_number"> |
1047 25/33 | 1134 27/37 |
1048 </aside> | 1135 </aside> |
1049 </footer> | 1136 </footer> |
1050 </div> | 1137 </div> |
1051 </div> | 1138 </div> |
1052 | 1139 |
1086 <aside class="source"> | 1173 <aside class="source"> |
1087 Source: <a href="slides.rst">slides.rst</a> | 1174 Source: <a href="slides.rst">slides.rst</a> |
1088 </aside> | 1175 </aside> |
1089 | 1176 |
1090 <aside class="page_number"> | 1177 <aside class="page_number"> |
1091 26/33 | 1178 28/37 |
1179 </aside> | |
1180 </footer> | |
1181 </div> | |
1182 </div> | |
1183 | |
1184 <!-- slide source: slides.rst --> | |
1185 <div class="slide-wrapper"> | |
1186 <div class="slide"> | |
1187 <div class="inner"> | |
1188 | |
1189 <header><h1>A note on branching...</h1></header> | |
1190 | |
1191 | |
1192 <section><ul class="simple"> | |
1193 <li>Branching happens <em>all the time</em> when multiple developers are involved</li> | |
1194 <li>It is so natural you may not notice it at first</li> | |
1195 <li>Branching often has two meanings:<ul> | |
1196 <li>The "normal" day-to-day branching when developers combine changes</li> | |
1197 <li>The conceptual branching that occurs when:<ul> | |
1198 <li>You need a feature branch</li> | |
1199 <li>You need a release branch</li> | |
1200 <li>You need an experimental branch</li> | |
1201 <li>etc.</li> | |
1202 </ul> | |
1203 </li> | |
1204 </ul> | |
1205 </li> | |
1206 </ul></section> | |
1207 | |
1208 </div> | |
1209 <div class="presenter_notes"> | |
1210 <header><h1>Presenter Notes</h1></header> | |
1211 <section> | |
1212 | |
1213 </section> | |
1214 </div> | |
1215 <footer> | |
1216 | |
1217 <aside class="source"> | |
1218 Source: <a href="slides.rst">slides.rst</a> | |
1219 </aside> | |
1220 | |
1221 <aside class="page_number"> | |
1222 29/37 | |
1223 </aside> | |
1224 </footer> | |
1225 </div> | |
1226 </div> | |
1227 | |
1228 <!-- slide source: slides.rst --> | |
1229 <div class="slide-wrapper"> | |
1230 <div class="slide"> | |
1231 <div class="inner"> | |
1232 | |
1233 <header><h1>Ways to Branch in Hg</h1></header> | |
1234 | |
1235 | |
1236 <section><ul class="simple"> | |
1237 <li>Just make another clone of the repository!<ul> | |
1238 <li>Slowest, safest, easiest to understand</li> | |
1239 <li>Hard links are used (where available) to minimize disk space</li> | |
1240 </ul> | |
1241 </li> | |
1242 <li>Bookmarks<ul> | |
1243 <li>Lightweight tags can be applied to changesets</li> | |
1244 <li>Similar to how Git does branches</li> | |
1245 <li>Bookmarks can be deleted; they are not permanent</li> | |
1246 </ul> | |
1247 </li> | |
1248 <li>Named branches<ul> | |
1249 <li>Actually recording the branch name in the changeset</li> | |
1250 </ul> | |
1251 </li> | |
1252 <li>Anonymous branches<ul> | |
1253 <li>Update to any old changeset, make changes, commit</li> | |
1254 <li>"Good" for emergency fixes, bad for remembering what you did</li> | |
1255 </ul> | |
1256 </li> | |
1257 </ul></section> | |
1258 | |
1259 </div> | |
1260 <div class="presenter_notes"> | |
1261 <header><h1>Presenter Notes</h1></header> | |
1262 <section> | |
1263 | |
1264 </section> | |
1265 </div> | |
1266 <footer> | |
1267 | |
1268 <aside class="source"> | |
1269 Source: <a href="slides.rst">slides.rst</a> | |
1270 </aside> | |
1271 | |
1272 <aside class="page_number"> | |
1273 30/37 | |
1092 </aside> | 1274 </aside> |
1093 </footer> | 1275 </footer> |
1094 </div> | 1276 </div> |
1095 </div> | 1277 </div> |
1096 | 1278 |
1116 <aside class="source"> | 1298 <aside class="source"> |
1117 Source: <a href="slides.rst">slides.rst</a> | 1299 Source: <a href="slides.rst">slides.rst</a> |
1118 </aside> | 1300 </aside> |
1119 | 1301 |
1120 <aside class="page_number"> | 1302 <aside class="page_number"> |
1121 27/33 | 1303 31/37 |
1122 </aside> | 1304 </aside> |
1123 </footer> | 1305 </footer> |
1124 </div> | 1306 </div> |
1125 </div> | 1307 </div> |
1126 | 1308 |
1146 <aside class="source"> | 1328 <aside class="source"> |
1147 Source: <a href="slides.rst">slides.rst</a> | 1329 Source: <a href="slides.rst">slides.rst</a> |
1148 </aside> | 1330 </aside> |
1149 | 1331 |
1150 <aside class="page_number"> | 1332 <aside class="page_number"> |
1151 28/33 | 1333 32/37 |
1152 </aside> | 1334 </aside> |
1153 </footer> | 1335 </footer> |
1154 </div> | 1336 </div> |
1155 </div> | 1337 </div> |
1156 | 1338 |
1183 <aside class="source"> | 1365 <aside class="source"> |
1184 Source: <a href="slides.rst">slides.rst</a> | 1366 Source: <a href="slides.rst">slides.rst</a> |
1185 </aside> | 1367 </aside> |
1186 | 1368 |
1187 <aside class="page_number"> | 1369 <aside class="page_number"> |
1188 29/33 | 1370 33/37 |
1189 </aside> | 1371 </aside> |
1190 </footer> | 1372 </footer> |
1191 </div> | 1373 </div> |
1192 </div> | 1374 </div> |
1193 | 1375 |
1220 <aside class="source"> | 1402 <aside class="source"> |
1221 Source: <a href="slides.rst">slides.rst</a> | 1403 Source: <a href="slides.rst">slides.rst</a> |
1222 </aside> | 1404 </aside> |
1223 | 1405 |
1224 <aside class="page_number"> | 1406 <aside class="page_number"> |
1225 30/33 | 1407 34/37 |
1226 </aside> | 1408 </aside> |
1227 </footer> | 1409 </footer> |
1228 </div> | 1410 </div> |
1229 </div> | 1411 </div> |
1230 | 1412 |
1263 <aside class="source"> | 1445 <aside class="source"> |
1264 Source: <a href="slides.rst">slides.rst</a> | 1446 Source: <a href="slides.rst">slides.rst</a> |
1265 </aside> | 1447 </aside> |
1266 | 1448 |
1267 <aside class="page_number"> | 1449 <aside class="page_number"> |
1268 31/33 | 1450 35/37 |
1269 </aside> | 1451 </aside> |
1270 </footer> | 1452 </footer> |
1271 </div> | 1453 </div> |
1272 </div> | 1454 </div> |
1273 | 1455 |
1303 <aside class="source"> | 1485 <aside class="source"> |
1304 Source: <a href="slides.rst">slides.rst</a> | 1486 Source: <a href="slides.rst">slides.rst</a> |
1305 </aside> | 1487 </aside> |
1306 | 1488 |
1307 <aside class="page_number"> | 1489 <aside class="page_number"> |
1308 32/33 | 1490 36/37 |
1309 </aside> | 1491 </aside> |
1310 </footer> | 1492 </footer> |
1311 </div> | 1493 </div> |
1312 </div> | 1494 </div> |
1313 | 1495 |
1331 <aside class="source"> | 1513 <aside class="source"> |
1332 Source: <a href="slides.rst">slides.rst</a> | 1514 Source: <a href="slides.rst">slides.rst</a> |
1333 </aside> | 1515 </aside> |
1334 | 1516 |
1335 <aside class="page_number"> | 1517 <aside class="page_number"> |
1336 33/33 | 1518 37/37 |
1337 </aside> | 1519 </aside> |
1338 </footer> | 1520 </footer> |
1339 </div> | 1521 </div> |
1340 </div> | 1522 </div> |
1341 | 1523 |
1352 <td><a href="#slide1">1</a></td> | 1534 <td><a href="#slide1">1</a></td> |
1353 </tr> | 1535 </tr> |
1354 | 1536 |
1355 | 1537 |
1356 <tr id="toc-row-2"> | 1538 <tr id="toc-row-2"> |
1357 <th><a href="#slide2">(Subliminal Message)</a></th> | 1539 <th><a href="#slide2">Agenda</a></th> |
1358 <td><a href="#slide2">2</a></td> | 1540 <td><a href="#slide2">2</a></td> |
1359 </tr> | 1541 </tr> |
1360 | 1542 |
1361 | 1543 |
1362 <tr id="toc-row-3"> | 1544 <tr id="toc-row-3"> |
1364 <td><a href="#slide3">3</a></td> | 1546 <td><a href="#slide3">3</a></td> |
1365 </tr> | 1547 </tr> |
1366 | 1548 |
1367 | 1549 |
1368 <tr id="toc-row-4"> | 1550 <tr id="toc-row-4"> |
1369 <th><a href="#slide4">Brief History of Version Control Tools</a></th> | 1551 <th><a href="#slide4">Disclaimers</a></th> |
1370 <td><a href="#slide4">4</a></td> | 1552 <td><a href="#slide4">4</a></td> |
1371 </tr> | 1553 </tr> |
1372 | 1554 |
1373 | 1555 |
1374 <tr id="toc-row-5"> | 1556 <tr id="toc-row-5"> |
1375 <th><a href="#slide5">Brief History of Version Control Tools</a></th> | 1557 <th><a href="#slide5">Why learn about DVCS?</a></th> |
1376 <td><a href="#slide5">5</a></td> | 1558 <td><a href="#slide5">5</a></td> |
1377 </tr> | 1559 </tr> |
1378 | 1560 |
1379 | 1561 |
1380 <tr id="toc-row-6"> | 1562 <tr id="toc-row-6"> |
1382 <td><a href="#slide6">6</a></td> | 1564 <td><a href="#slide6">6</a></td> |
1383 </tr> | 1565 </tr> |
1384 | 1566 |
1385 | 1567 |
1386 <tr id="toc-row-7"> | 1568 <tr id="toc-row-7"> |
1387 <th><a href="#slide7">What is a CVCS Again?</a></th> | 1569 <th><a href="#slide7">Brief History of Version Control Tools</a></th> |
1388 <td><a href="#slide7">7</a></td> | 1570 <td><a href="#slide7">7</a></td> |
1389 </tr> | 1571 </tr> |
1390 | 1572 |
1391 | 1573 |
1392 <tr id="toc-row-8"> | 1574 <tr id="toc-row-8"> |
1393 <th><a href="#slide8">So what's a DVCS look like?</a></th> | 1575 <th><a href="#slide8">Brief History of Version Control Tools</a></th> |
1394 <td><a href="#slide8">8</a></td> | 1576 <td><a href="#slide8">8</a></td> |
1395 </tr> | 1577 </tr> |
1396 | 1578 |
1397 | 1579 |
1398 <tr id="toc-row-9"> | 1580 <tr id="toc-row-9"> |
1399 <th><a href="#slide9">What does a DVCS buy you?</a></th> | 1581 <th><a href="#slide9">What is a CVCS Again?</a></th> |
1400 <td><a href="#slide9">9</a></td> | 1582 <td><a href="#slide9">9</a></td> |
1401 </tr> | 1583 </tr> |
1402 | 1584 |
1403 | 1585 |
1404 <tr id="toc-row-10"> | 1586 <tr id="toc-row-10"> |
1405 <th><a href="#slide10">Private Workspaces</a></th> | 1587 <th><a href="#slide10">So what's a DVCS look like?</a></th> |
1406 <td><a href="#slide10">10</a></td> | 1588 <td><a href="#slide10">10</a></td> |
1407 </tr> | 1589 </tr> |
1408 | 1590 |
1409 | 1591 |
1410 <tr id="toc-row-11"> | 1592 <tr id="toc-row-11"> |
1411 <th><a href="#slide11">Offline Mode</a></th> | 1593 <th><a href="#slide11">What does a DVCS buy you?</a></th> |
1412 <td><a href="#slide11">11</a></td> | 1594 <td><a href="#slide11">11</a></td> |
1413 </tr> | 1595 </tr> |
1414 | 1596 |
1415 | 1597 |
1416 <tr id="toc-row-12"> | 1598 <tr id="toc-row-12"> |
1417 <th><a href="#slide12">Speed</a></th> | 1599 <th><a href="#slide12">Private Workspaces</a></th> |
1418 <td><a href="#slide12">12</a></td> | 1600 <td><a href="#slide12">12</a></td> |
1419 </tr> | 1601 </tr> |
1420 | 1602 |
1421 | 1603 |
1422 <tr id="toc-row-13"> | 1604 <tr id="toc-row-13"> |
1423 <th><a href="#slide13">Scalability</a></th> | 1605 <th><a href="#slide13">Offline Mode</a></th> |
1424 <td><a href="#slide13">13</a></td> | 1606 <td><a href="#slide13">13</a></td> |
1425 </tr> | 1607 </tr> |
1426 | 1608 |
1427 | 1609 |
1428 <tr id="toc-row-14"> | 1610 <tr id="toc-row-14"> |
1429 <th><a href="#slide14">Split Geography</a></th> | 1611 <th><a href="#slide14">Speed</a></th> |
1430 <td><a href="#slide14">14</a></td> | 1612 <td><a href="#slide14">14</a></td> |
1431 </tr> | 1613 </tr> |
1432 | 1614 |
1433 | 1615 |
1434 <tr id="toc-row-15"> | 1616 <tr id="toc-row-15"> |
1435 <th><a href="#slide15">Flexible Workflows</a></th> | 1617 <th><a href="#slide15">Scalability</a></th> |
1436 <td><a href="#slide15">15</a></td> | 1618 <td><a href="#slide15">15</a></td> |
1437 </tr> | 1619 </tr> |
1438 | 1620 |
1439 | 1621 |
1440 <tr id="toc-row-16"> | 1622 <tr id="toc-row-16"> |
1441 <th><a href="#slide16">Distributed Backups</a></th> | 1623 <th><a href="#slide16">Split Geography</a></th> |
1442 <td><a href="#slide16">16</a></td> | 1624 <td><a href="#slide16">16</a></td> |
1443 </tr> | 1625 </tr> |
1444 | 1626 |
1445 | 1627 |
1446 <tr id="toc-row-17"> | 1628 <tr id="toc-row-17"> |
1447 <th><a href="#slide17">Easier Merging</a></th> | 1629 <th><a href="#slide17">Flexible Workflows</a></th> |
1448 <td><a href="#slide17">17</a></td> | 1630 <td><a href="#slide17">17</a></td> |
1449 </tr> | 1631 </tr> |
1450 | 1632 |
1451 | 1633 |
1452 <tr id="toc-row-18"> | 1634 <tr id="toc-row-18"> |
1453 <th><a href="#slide18">Easier Merging (cont.)</a></th> | 1635 <th><a href="#slide18">Distributed Backups</a></th> |
1454 <td><a href="#slide18">18</a></td> | 1636 <td><a href="#slide18">18</a></td> |
1455 </tr> | 1637 </tr> |
1456 | 1638 |
1457 | 1639 |
1458 <tr id="toc-row-19"> | 1640 <tr id="toc-row-19"> |
1459 <th><a href="#slide19">Commit Before Merge</a></th> | 1641 <th><a href="#slide19">Easier Merging</a></th> |
1460 <td><a href="#slide19">19</a></td> | 1642 <td><a href="#slide19">19</a></td> |
1461 </tr> | 1643 </tr> |
1462 | 1644 |
1463 | 1645 |
1464 <tr id="toc-row-20"> | 1646 <tr id="toc-row-20"> |
1465 <th><a href="#slide20">Okay, what's the catch?</a></th> | 1647 <th><a href="#slide20">Easier Merging (cont.)</a></th> |
1466 <td><a href="#slide20">20</a></td> | 1648 <td><a href="#slide20">20</a></td> |
1467 </tr> | 1649 </tr> |
1468 | 1650 |
1469 | 1651 |
1470 <tr id="toc-row-21"> | 1652 <tr id="toc-row-21"> |
1471 <th><a href="#slide21">Introduction to Mercurial</a></th> | 1653 <th><a href="#slide21">Commit Before Merge</a></th> |
1472 <td><a href="#slide21">21</a></td> | 1654 <td><a href="#slide21">21</a></td> |
1473 </tr> | 1655 </tr> |
1474 | 1656 |
1475 | 1657 |
1476 <tr id="toc-row-22"> | 1658 <tr id="toc-row-22"> |
1477 <th><a href="#slide22">Mercurial Overview</a></th> | 1659 <th><a href="#slide22">Okay, what's the catch?</a></th> |
1478 <td><a href="#slide22">22</a></td> | 1660 <td><a href="#slide22">22</a></td> |
1479 </tr> | 1661 </tr> |
1480 | 1662 |
1481 | 1663 |
1482 <tr id="toc-row-23"> | 1664 <tr id="toc-row-23"> |
1483 <th><a href="#slide23">Repositories & Working Directories</a></th> | 1665 <th><a href="#slide23">Introduction to Mercurial</a></th> |
1484 <td><a href="#slide23">23</a></td> | 1666 <td><a href="#slide23">23</a></td> |
1485 </tr> | 1667 </tr> |
1486 | 1668 |
1487 | 1669 |
1488 <tr id="toc-row-24"> | 1670 <tr id="toc-row-24"> |
1489 <th><a href="#slide24">What's in a Repository?</a></th> | 1671 <th><a href="#slide24">Mercurial Overview</a></th> |
1490 <td><a href="#slide24">24</a></td> | 1672 <td><a href="#slide24">24</a></td> |
1491 </tr> | 1673 </tr> |
1492 | 1674 |
1493 | 1675 |
1494 <tr id="toc-row-25"> | 1676 <tr id="toc-row-25"> |
1495 <th><a href="#slide25">What's a Changeset?</a></th> | 1677 <th><a href="#slide25">Repositories & Working Directories</a></th> |
1496 <td><a href="#slide25">25</a></td> | 1678 <td><a href="#slide25">25</a></td> |
1497 </tr> | 1679 </tr> |
1498 | 1680 |
1499 | 1681 |
1500 <tr id="toc-row-26"> | 1682 <tr id="toc-row-26"> |
1501 <th><a href="#slide26">Branches & Tags</a></th> | 1683 <th><a href="#slide26">What's in a Repository?</a></th> |
1502 <td><a href="#slide26">26</a></td> | 1684 <td><a href="#slide26">26</a></td> |
1503 </tr> | 1685 </tr> |
1504 | 1686 |
1505 | 1687 |
1506 <tr id="toc-row-27"> | 1688 <tr id="toc-row-27"> |
1507 <th><a href="#slide27">Example Workflow</a></th> | 1689 <th><a href="#slide27">What's a Changeset?</a></th> |
1508 <td><a href="#slide27">27</a></td> | 1690 <td><a href="#slide27">27</a></td> |
1509 </tr> | 1691 </tr> |
1510 | 1692 |
1511 | 1693 |
1512 <tr id="toc-row-28"> | 1694 <tr id="toc-row-28"> |
1513 <th><a href="#slide28">Example Workflow (cont.)</a></th> | 1695 <th><a href="#slide28">Branches & Tags</a></th> |
1514 <td><a href="#slide28">28</a></td> | 1696 <td><a href="#slide28">28</a></td> |
1515 </tr> | 1697 </tr> |
1516 | 1698 |
1517 | 1699 |
1518 <tr id="toc-row-29"> | 1700 <tr id="toc-row-29"> |
1519 <th><a href="#slide29">Example Workflow (cont.)</a></th> | 1701 <th><a href="#slide29">A note on branching...</a></th> |
1520 <td><a href="#slide29">29</a></td> | 1702 <td><a href="#slide29">29</a></td> |
1521 </tr> | 1703 </tr> |
1522 | 1704 |
1523 | 1705 |
1524 <tr id="toc-row-30"> | 1706 <tr id="toc-row-30"> |
1525 <th><a href="#slide30">SVN Commands for Review</a></th> | 1707 <th><a href="#slide30">Ways to Branch in Hg</a></th> |
1526 <td><a href="#slide30">30</a></td> | 1708 <td><a href="#slide30">30</a></td> |
1527 </tr> | 1709 </tr> |
1528 | 1710 |
1529 | 1711 |
1530 <tr id="toc-row-31"> | 1712 <tr id="toc-row-31"> |
1531 <th><a href="#slide31">Basic Mercurial Commands</a></th> | 1713 <th><a href="#slide31">Example Workflow</a></th> |
1532 <td><a href="#slide31">31</a></td> | 1714 <td><a href="#slide31">31</a></td> |
1533 </tr> | 1715 </tr> |
1534 | 1716 |
1535 | 1717 |
1536 <tr id="toc-row-32"> | 1718 <tr id="toc-row-32"> |
1537 <th><a href="#slide32">References</a></th> | 1719 <th><a href="#slide32">Example Workflow (cont.)</a></th> |
1538 <td><a href="#slide32">32</a></td> | 1720 <td><a href="#slide32">32</a></td> |
1539 </tr> | 1721 </tr> |
1540 | 1722 |
1541 | 1723 |
1542 <tr id="toc-row-33"> | 1724 <tr id="toc-row-33"> |
1543 <th><a href="#slide33">Questions?</a></th> | 1725 <th><a href="#slide33">Example Workflow (cont.)</a></th> |
1544 <td><a href="#slide33">33</a></td> | 1726 <td><a href="#slide33">33</a></td> |
1727 </tr> | |
1728 | |
1729 | |
1730 <tr id="toc-row-34"> | |
1731 <th><a href="#slide34">SVN Commands for Review</a></th> | |
1732 <td><a href="#slide34">34</a></td> | |
1733 </tr> | |
1734 | |
1735 | |
1736 <tr id="toc-row-35"> | |
1737 <th><a href="#slide35">Basic Mercurial Commands</a></th> | |
1738 <td><a href="#slide35">35</a></td> | |
1739 </tr> | |
1740 | |
1741 | |
1742 <tr id="toc-row-36"> | |
1743 <th><a href="#slide36">References</a></th> | |
1744 <td><a href="#slide36">36</a></td> | |
1745 </tr> | |
1746 | |
1747 | |
1748 <tr id="toc-row-37"> | |
1749 <th><a href="#slide37">Questions?</a></th> | |
1750 <td><a href="#slide37">37</a></td> | |
1545 </tr> | 1751 </tr> |
1546 | 1752 |
1547 | 1753 |
1548 </table> | 1754 </table> |
1549 </div> | 1755 </div> |