Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Бұтақтау, нұсқаны басқару және бағдарламалық қамтамасыз ету конфигурациясын басқаруда нұсқаулы объектінің (мысалы, бастапқы код файлы немесе каталог ағашы) көшірмесін жасау болып табылады. Әрбір объекті кейіннен жеке және параллель түрде өзгертілуі мүмкін, осылайша объектілер өзгеше болады. Осы контексте объектілер бұтақтар деп аталады. Нұсқаны басқару жүйесінің қолданушылары кез келген бұтақты бұтақтай алады. Бұтақтар ағаштар, ағындар немесе код жолдары деп те аталады. Тұпкі бұтақ кейде бас бұтақ, жоғары ағымдық бұтақ (немесе жай ғана жоғары ағымдық, әсіресе егер бұтақтарды әртүрлі ұйымдар немесе жеке тұлғалар қолдаса) немесе бастапқы ағын деп аталады.
Branching, in version control and software configuration management, is the duplication of an object under version control (such as a source code file or a directory tree). Each object can thereafter be modified separately and in parallel so that the objects become different. In this context the objects are called branches. The users of the version control system can branch any branch. Branches are also known as trees, streams or codelines. The originating branch is sometimes called the parent branch, the upstream branch (or simply upstream, especially if the branches are maintained by different organizations or individuals), or the backing stream.
Көшегі
Балалық тармақтар – ата-анасы бар тармақтар; ата-анасы жоқ тармақ түпнұсқа немесе негізгі желі деп аталады. Түпнұсқа кейде HEAD деп те аталады, бірақ дұрысы бойынша HEAD тармаққа емес, берілген тармақтағы соңғы коммитқа қатысты, ал түпнұсқаның да, әрбір аталатын тармақтың да өз HEAD-і болады. Түпнұсқа әдетте жобаның даму негізі болып табылады. Егер әзірлеушілер тек түпнұсқада жұмыс істесе, онда ол жобаның ең соңғы нұсқасын қамтиды, бірақ соның салдарынан ең тұрақсыз нұсқа болуы мүмкін. Тағы бір тәсіл – түпнұсқадан тармақ бөліп, сол тармақта өзгерістерді жүзеге асыру және тармақ тұрақты әрі жұмыс істейтіні дәлелденгеннен кейін өзгерістерді түпнұсқаға қайта біріктіру. Даму режиміне және коммит саясатына байланысты түпнұсқада ең тұрақты, ең тұрақсыз немесе олардың арасындағы нұсқа болуы мүмкін. Түпнұсқаны «басты желі», «негізгі желі» және «мастер» терминдерімен де белгілейді, бірақ кейбір жағдайларда олар ұқсас, бірақ әртүрлі мағыналарда қолданылады. Көбінесе негізгі әзірлеу жұмысы түпнұсқада жүргізіледі, ал тұрақты нұсқалар тармақталса, кез келген қателерді түзетулер тармақтардан түпнұсқаға біріктіріледі. Егер болашақ нұсқаларды дамыту түпнұсқа емес тармақтарда жүргізілсе, әдетте бұл жиі өзгермейтін жобалар үшін немесе өзгерістерді түпнұсқаға енгізуге дайын болғанға дейін дамытуға көп уақыт кетеді деп күтілетін жағдайларда жасалады.
Child branches are branches that have a parent; a branch without a parent is referred to as the trunk or the mainline. 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 cutting edge 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 commit policy the trunk may contain the most stable or the least stable or something in between version. Other terms for trunk include baseline, mainline, and master, though in some cases these are used with similar but distinct senses – see 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.
Бірігу
Бранчтау көбінесе өзгерістерді кейіннен бастапқы тармаққа біріктіру немесе интеграциялау мүмкіндігін білдіреді. Көбінесе өзгерістер түпкі тармаққа қосылады, тіпті ол бастапқы тармақ болмаса да. Біріктірілуі жоспарланбаған бранч (мысалы, үшінші тараптың үйлеспейтін лицензиясы бойынша қайта лицензияланғандықтан немесе басқа мақсатта қолданылуы үшін жасалғандықтан) әдетте форк деп аталады.
Branching generally implies the ability to later merge or integrate 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 relicensed under an incompatible license by a third party, or it attempts to serve a different purpose) is usually called a fork.
Филиалдарды құруға ынталандыру
Тармақтар бағдарламалық жасақтаманың бөліктерін параллельді түрде әзірлеуге мүмкіндік береді. Ірі жобалар көптеген мамандықтарды талап етеді, оның ішінде бағдарламашылар, құрастыру менеджерлері және сапаны бақылау қызметкерлері. Сонымен қатар, әртүрлі операциялық жүйелердегі әр түрлі нұсқаларды қолдау қажет болуы мүмкін. Тармақтар код базасын тұрақсыздандырмай, өзгерістерді оқшаулауға мүмкіндік береді, мысалы, қателерді жою, жаңа мүмкіндіктерді қосу және нұсқаларды біріктіру. Бұл өзгерістер кейіннен сынақтан өткен соң біріктірілуі (жайындырылуы) мүмкін.
Branches allow for parts of software to be developed in parallel. Large projects require many roles to be filled, including developers, build managers, and quality assurance 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, fixes for bugs, new features, and versions integration. These changes may be later merged (resynchronized) after testing.
Даму саласы
Бағдарламалық жасақтаманың даму тармағы немесе даму ағашы – әзірлену үстіндегі, әлі ресми түрде жарияланбаған нұсқа. Ашық кодты қоғамдастықта "жариялау" түсінігі көбінесе метафоралық болып келеді, себебі кез келген адам қалаған нұсқаны, ол даму тармағында болсын, болмасын, алуға мүмкіндік алады. Көбінесе, болашақта келесі басты нұсқаға айналатын нұсқа даму тармағы деп аталады. Дегенмен, бір уақытта бағдарламалық жасақтаманың бірнеше келесі нұсқасы әзірленуі мүмкін. Көбінесе даму тармағы – негізгі тармақ болып табылады. Кейбір нұсқаларды басқару жүйелерінде негізгі даму тармағы үшін арнайы терминология бар. Мысалы, CVS жүйесінде ол "MAIN" тармағы деп аталады. Git жүйесі әдепкі бойынша "master" қолданады, бірақ GitHub және GitLab Джордж Флойдтың қазасынан кейін "main" тармағына көшті.
A development branch or development tree of a piece of software is a version that is under development, and has not yet been officially released. In the open source 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 major version is called the development branch. However, there is often more than one subsequent version of the software under development at a given time. Often, the development branch is the trunk. Some revision control systems have specific jargon for the main development branch. For example, in CVS, it is called the "MAIN" branch. Git uses "master" by default, although GitHub and GitLab switched to "main" after the murder of George Floyd.
Көлеңкелі немесе сиқырлы бұтақтар
CVSNT жүйесінде көлеңкелі немесе сиқырлы тармақ жоғары ағыстағы тармақта жасалған өзгерістерді "көлеңкелейді", бұл шағын өзгерістерді оңай басқаруға мүмкіндік береді (cvc – rPath компаниясы жасаған пакеттерге арналған нұсқаларды басқару жүйесін қамтитын ашық кодты пакет құру жүйесі).
In CVSNT, a shadow or magic 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 rPath.)
Қоймалардың клондары
Бөлінген нұсқаларды басқару жүйелерінде репозиторийдің толық көшірмесі, тармақтармен бірге, алынып, одан әрі жұмыс істеуге болады. Монотон (mtn), Меркуриал (hg) және git оны "көшірме" (clone) деп атайды; Bazaar оны "тармақ" (branch) деп атайды. Darcs сияқты кейбір бөлінген нұсқаларды басқару жүйелерінде репозиторийлер мен тармақтар арасында ешқандай айырмашылық жоқ; осы жүйелерде репозиторийдің көшірмесін алу тармақ құрумен бірдей.
In distributed revision control, the entire repository, with branches, may be copied and worked on further. Monotone (mtn), Mercurial (hg) and git call it "clone"; Bazaar calls it "branch". In some distributed revision control systems, such as Darcs, there is no distinction made between repositories and branches; in these systems, fetching a copy of a repository is equivalent to branching.