622:
131:. Often main developer work takes place in the trunk and stable versions are branched, and occasional bug-fixes are merged from branches to the trunk. When development of future versions is done in non-trunk branches, it is usually done for projects that do not change often, or where a change is expected to take a long time to develop until it will be ready for incorporating in the trunk.
107:. The trunk is also sometimes loosely referred to as HEAD, but properly head refers not to a branch, but to the most recent commit on a given branch, and both the trunk and each named branch has its own head. The trunk is usually meant to be the base of a project on which development progresses. If developers are working exclusively on the trunk, it always contains the latest
111:
version of the project, but therefore may also be the most unstable version. Another approach is to split a branch off the trunk, implement changes in that branch and merge the changes back into the trunk when the branch has proven to be stable and working. Depending on development mode and
222:
community, the notion of release is typically metaphorical, since anyone can usually check out any desired version, whether it be in the development branch or not. Often, the version that will eventually become the next
278:
branch "shadows" changes made in the upstream branch, to make it easier to maintain small changes (cvc is an open-source package building system incorporating a revision-control system for packages produced by
175:
personnel. Further, multiple releases on different operating system platforms may have to be maintained. Branches allow contributors to isolate changes without destabilizing the codebase, for example,
153:
changes back onto the parent branch. Often the changes are merged back to the trunk, even if this is not the parent branch. A branch not intended to be merged (e.g. because it has been
452:
171:
Branches allow for parts of software to be developed in parallel. Large projects require many roles to be filled, including developers, build managers, and
716:
518:
426:
49:). Each object can thereafter be modified separately and in parallel so that the objects become different. In this context the objects are called
749:
255:
231:
development branch. However, there is often more than one subsequent version of the software under development at a given time.
116:
policy the trunk may contain the most stable or the least stable or something-in-between version. Other terms for trunk include
1046:
852:
586:
511:
17:
954:
917:
755:
697:
504:
477:
38:
1053:
1039:
374:
157:
under an incompatible license by a third party, or it attempts to serve a different purpose) is usually called a
320:
785:
553:
1020:
328:
297:
1005:
808:
792:
159:
643:
621:
567:
172:
238:. Some revision control systems have specific jargon for the main development branch. For example, in
239:
180:
128:
1075:
976:
191:
146:
140:
113:
1010:
561:
397:
80:, especially if the branches are maintained by different organizations or individuals), or the
701:
691:
926:
779:
331:
and branches; in these systems, fetching a copy of a repository is equivalent to branching.
578:
211:
8:
911:
891:
730:
687:
301:
184:
453:"GitHub to replace master with main starting in October: What developers need to do now"
993:
709:
187:
536:
Years, where available, indicate the date of first stable release. Systems with names
859:
831:
661:
370:
362:
Software
Configuration Management Patterns: Effective Teamwork, Practical Integration
219:
176:
773:
215:
108:
396:
Appleton, Brad; Berczuk, Stephen; Cabrera, Ralph; Orenstein, Robert (1998-02-08).
1000:
527:
95:
are branches that have a parent; a branch without a parent is referred to as the
34:
988:
743:
366:
46:
1069:
737:
723:
300:, the entire repository, with branches, may be copied and worked on further.
1025:
981:
767:
496:
340:
127:
though in some cases these are used with similar but distinct senses – see
933:
678:
154:
42:
879:
838:
313:
398:"Streamed Lines: Branching Patterns for Parallel Software Development"
971:
885:
824:
305:
1015:
872:
761:
592:
41:, is the duplication of an object under version control (such as a
360:
53:. The users of the version control system can branch any branch.
395:
251:
247:
845:
649:
324:
280:
267:
655:
605:
598:
540:
are no longer maintained or have planned end-of-life dates.
865:
402:
309:
243:
210:of a piece of software is a version that is under
145:Branching generally implies the ability to later
68:. The originating branch is sometimes called the
1067:
358:
286:
478:"Why GitHub renamed its master branch to main"
27:Duplication of an object under version control
512:
526:
166:
261:
519:
505:
129:version control § Common terminology
964:
359:Berczuk, Steve; Appleton, Brad (2003).
327:, there is no distinction made between
14:
1068:
475:
450:
424:
500:
234:Often, the development branch is the
197:
321:distributed revision control systems
291:
246:uses "master" by default, although
24:
242:, it is called the "MAIN" branch.
214:, and has not yet been officially
25:
1087:
431:Branch-Per-Feature Source Control
39:software configuration management
620:
256:after the murder of George Floyd
194:(resynchronized) after testing.
476:Heinze, Carolyn (2020-11-24).
469:
444:
418:
389:
352:
13:
1:
425:Bailey, Derick (2009-07-15).
346:
190:. These changes may be later
298:distributed revision control
287:Distributed revision control
7:
451:Wallen, Jack (2020-09-22).
334:
56:Branches are also known as
10:
1092:
235:
138:
134:
1034:
947:
901:
816:
807:
671:
636:
629:
618:
577:
552:
545:
534:
167:Motivations for branching
528:Version control software
262:Shadow or magic branches
141:Merge (revision control)
87:
756:Software Change Manager
18:Branching (software)
316:calls it "branch".
254:switched to "main"
227:version is called
204:development branch
198:Development branch
1063:
1062:
989:Delta compression
943:
942:
803:
802:
793:Visual SourceSafe
646:(1986, 1990 in C)
616:
615:
312:call it "clone";
292:Repository clones
173:quality assurance
16:(Redirected from
1083:
920:(via Git) (2014)
914:(via Git) (2013)
817:Free/open-source
814:
813:
637:Free/open-source
634:
633:
624:
554:Free/open-source
550:
549:
521:
514:
507:
498:
497:
492:
491:
489:
488:
473:
467:
466:
464:
463:
448:
442:
441:
439:
438:
422:
416:
415:
413:
412:
406:
393:
387:
386:
384:
383:
356:
208:development tree
21:
1091:
1090:
1086:
1085:
1084:
1082:
1081:
1080:
1076:Version control
1066:
1065:
1064:
1059:
1030:
1001:File comparison
939:
897:
799:
667:
656:QVCS Enterprise
625:
612:
573:
541:
530:
525:
495:
486:
484:
474:
470:
461:
459:
449:
445:
436:
434:
423:
419:
410:
408:
400:
394:
390:
381:
379:
377:
357:
353:
349:
337:
294:
289:
264:
200:
169:
143:
137:
90:
74:upstream branch
35:version control
28:
23:
22:
15:
12:
11:
5:
1089:
1079:
1078:
1061:
1060:
1058:
1057:
1050:
1043:
1035:
1032:
1031:
1029:
1028:
1023:
1018:
1013:
1008:
1003:
998:
997:
996:
986:
985:
984:
974:
969:
968:
967:
957:
951:
949:
945:
944:
941:
940:
938:
937:
931:
923:
922:
921:
915:
905:
903:
899:
898:
896:
895:
889:
883:
877:
869:
863:
857:
849:
843:
835:
829:
820:
818:
811:
805:
804:
801:
800:
798:
797:
789:
783:
777:
771:
765:
759:
753:
747:
744:Perforce Helix
741:
735:
727:
721:
713:
707:
706:
705:
695:
682:
675:
673:
669:
668:
666:
665:
659:
653:
647:
640:
638:
631:
627:
626:
619:
617:
614:
613:
611:
610:
602:
596:
590:
583:
581:
575:
574:
572:
571:
565:
558:
556:
547:
543:
542:
535:
532:
531:
524:
523:
516:
509:
501:
494:
493:
468:
443:
417:
388:
375:
367:Addison-Wesley
350:
348:
345:
344:
343:
336:
333:
293:
290:
288:
285:
263:
260:
199:
196:
179:for bugs, new
168:
165:
139:Main article:
136:
133:
93:Child branches
89:
86:
82:backing stream
47:directory tree
26:
9:
6:
4:
3:
2:
1088:
1077:
1074:
1073:
1071:
1056:
1055:
1051:
1049:
1048:
1044:
1042:
1041:
1037:
1036:
1033:
1027:
1024:
1022:
1019:
1017:
1014:
1012:
1009:
1007:
1004:
1002:
999:
995:
992:
991:
990:
987:
983:
980:
979:
978:
975:
973:
970:
966:
963:
962:
961:
958:
956:
953:
952:
950:
946:
935:
932:
929:
928:
924:
919:
916:
913:
910:
909:
908:Azure DevOps
907:
906:
904:
900:
893:
890:
887:
884:
881:
878:
875:
874:
870:
867:
864:
861:
858:
855:
854:
850:
847:
844:
841:
840:
836:
833:
830:
827:
826:
822:
821:
819:
815:
812:
810:
806:
795:
794:
790:
787:
784:
781:
778:
775:
772:
769:
766:
763:
760:
757:
754:
751:
748:
745:
742:
739:
736:
733:
732:
728:
725:
724:Dimensions CM
722:
719:
718:
714:
711:
708:
703:
699:
696:
693:
689:
686:
685:
684:Azure DevOps
683:
680:
677:
676:
674:
670:
663:
660:
657:
654:
651:
648:
645:
642:
641:
639:
635:
632:
630:Client–server
628:
623:
608:
607:
603:
600:
597:
594:
591:
588:
587:The Librarian
585:
584:
582:
580:
576:
569:
566:
563:
560:
559:
557:
555:
551:
548:
544:
539:
533:
529:
522:
517:
515:
510:
508:
503:
502:
499:
483:
482:TheServerSide
479:
472:
458:
454:
447:
433:. Los techies
432:
428:
427:"Part 1: Why"
421:
404:
399:
392:
378:
372:
368:
364:
363:
355:
351:
342:
339:
338:
332:
330:
326:
322:
317:
315:
311:
307:
303:
299:
284:
282:
277:
273:
269:
259:
257:
253:
249:
245:
241:
237:
232:
230:
226:
221:
217:
213:
209:
205:
195:
193:
189:
186:
182:
178:
174:
164:
162:
161:
156:
152:
148:
142:
132:
130:
126:
122:
119:
115:
110:
106:
105:
100:
99:
94:
85:
83:
79:
75:
71:
70:parent branch
67:
63:
59:
54:
52:
48:
44:
40:
36:
32:
19:
1052:
1045:
1038:
959:
925:
871:
851:
837:
823:
791:
780:Team Concert
768:Surround SCM
729:
715:
604:
537:
485:. Retrieved
481:
471:
460:. Retrieved
457:TechRepublic
456:
446:
435:. Retrieved
430:
420:
409:. Retrieved
391:
380:. Retrieved
376:0-20174117-2
361:
354:
341:Revision tag
329:repositories
318:
295:
275:
271:
265:
233:
228:
224:
207:
203:
201:
170:
158:
150:
144:
124:
120:
117:
109:cutting-edge
103:
102:
97:
96:
92:
91:
81:
77:
73:
69:
65:
61:
57:
55:
50:
30:
29:
994:Interleaved
934:Plastic SCM
902:Proprietary
809:Distributed
679:AccuRev SCM
672:Proprietary
579:Proprietary
220:open source
212:development
188:integration
76:(or simply
43:source code
1047:Comparison
1021:Repository
880:GNU Bazaar
839:Code Co-op
662:Subversion
546:Local only
538:in italics
487:2022-04-24
462:2022-04-24
437:2009-08-12
411:2009-08-12
407:. Hillside
382:2007-05-24
347:References
323:, such as
155:relicensed
45:file or a
972:Changeset
886:Mercurial
825:BitKeeper
738:Integrity
710:ClearCase
308:(hg) and
306:Mercurial
218:. In the
151:integrate
121:mainline,
118:baseline,
66:codelines
31:Branching
1070:Category
1040:Category
1016:Monorepo
955:Baseline
948:Concepts
927:TeamWare
918:Services
892:Monotone
873:GNU arch
762:StarTeam
752:(1980s?)
704:) (2014)
698:Services
694:) (2005)
593:Panvalet
335:See also
319:In some
302:Monotone
216:released
185:versions
181:features
104:mainline
78:upstream
51:branches
774:Synergy
758:(1970s)
726:(1980s)
595:(1970s)
304:(mtn),
135:Merging
125:master,
101:or the
62:streams
977:Commit
960:Branch
936:(2006)
930:(1992)
912:Server
894:(2003)
888:(2005)
882:(2005)
876:(2001)
868:(2005)
862:(2007)
860:Fossil
856:(2002)
848:(2002)
842:(1997)
834:(2017)
832:Breezy
828:(2000)
796:(1994)
788:(2003)
782:(2008)
776:(1990)
770:(2002)
764:(1995)
746:(1995)
740:(2001)
734:(1984)
720:(1994)
712:(1992)
688:Server
681:(2002)
664:(2000)
658:(1998)
652:(1998)
609:(1991)
601:(1985)
589:(1969)
570:(1973)
564:(1982)
373:
314:Bazaar
272:shadow
252:GitLab
248:GitHub
192:merged
183:, and
114:commit
72:, the
1011:Merge
982:Gated
965:Trunk
846:Darcs
786:Vault
700:(via
690:(via
650:CVSNT
325:Darcs
281:rPath
276:magic
268:CVSNT
236:trunk
225:major
177:fixes
147:merge
98:trunk
88:Trunk
58:trees
33:, in
1054:List
1006:Fork
853:DCVS
750:SCLM
731:DSEE
717:CMVC
702:TFVC
692:TFVC
606:QVCS
599:PVCS
568:SCCS
371:ISBN
270:, a
250:and
160:fork
123:and
37:and
1026:Tag
866:Git
644:CVS
562:RCS
403:PDF
310:git
296:In
283:.)
274:or
266:In
258:.
244:Git
240:CVS
229:the
206:or
149:or
64:or
1072::
480:.
455:.
429:.
369:.
365:.
202:A
163:.
84:.
60:,
520:e
513:t
506:v
490:.
465:.
440:.
414:.
405:)
401:(
385:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.