Моите колеги и аз водим спор относно стойността и използването на етикети в системите за освобождаване/SCM. Очакваме общността на StackOverflow да сподели своите мисли, за да ни помогне да разрешим проблема.
Едната страна твърди, че етикетите са ценно допълнение към управлението на версиите. Пример за тяхното използване: ние правим издание на Maven, което прави нов етикет (наречете го 1.0), който е моментна снимка на код, използван за това издание. Този етикет трябва да бъде клон САМО ЗА ЧЕТЕНЕ. Когато трябва да се поправи грешка, можем да направим копие на етикета в нов клон (наречете го 1.1). Корекциите на грешки отиват там. Тези корекции могат да бъдат обединени обратно в Trunk, така че основният клон за разработка да получи корекциите на грешки. Накрая се пуска 1.1 и автоматично се създава етикет 1.1. Този цикъл продължава. Основното предимство тук на етикета е, че ако някога трябва да преиздадете версия 1.0 по някаква причина, можете просто да пуснете маркера 1.0 с увереността, че той никога не е бил променян от никого. Освен това казването „Издаване на етикет 1.0“ е по-чисто от казването „Издаване ревизия 1 на клон 1.0, което е оригиналното 1.0 без корекциите“.
Другата страна твърди, че етикетите не предоставят никаква ценна полза, особено в система като Subversion с глобални ревизии, които действат като етикет в CVS. Плюс това, Subversion дава предупреждение само когато се ангажира с етикет; всъщност не го спира. Техният метод се развива в Trunk и след пускането ще направите разклонение, наречено 1.0. Бихте продължили корекциите на грешки в Trunk и ако трябваше да пуснете отново тези корекции на грешки в производствената среда, бихте ги обединили в 1.0 Branch и пуснете отново 1.0. В даден момент, може би след големи поправки или функции в Trunk, ще пуснете и направите Branch 1.1. Цикълът продължава. Ако някога ви се наложи да пуснете оригиналната версия 1.0, ще трябва да проверите версия 1 на Branch 1.0.
Очевидно и двата метода работят. Бих искал да чуя мнението на общността кой метод е предпочитан и защо.
Редактиране: Малко се притеснявам, че "най-добрият" начин зависи от основната SCM система. Или се спрете на Subversion за отговори, или ако е възможно, дръжте го SCM агностик.