Подтвердить что ты не робот

Почему вы не должны фиксировать тег

Я ищу аргументы, чтобы убедить клиента, что он никогда не должен вносить изменения в тег после его создания.

Здравый смысл кажется недействительным аргументом, поэтому мне нужно что-то более существенное.

4b9b3361

Ответ 1

Теги существуют как копии исходного кода в определенный момент времени - независимо от изменений, которые вы могли бы внести в Trunk или любые папки Branch, вы всегда сможете вернуться к коду, как это было, когда тег была создана копия.

Если вы совершаете тегированные теги, они больше не представляют источник в точке, где была создана копия, поэтому их мало смысла. Ваш клиент должен быть связан с багажником или с веткими.

Ответ 2

Пользователи, которые используют проект, могут использовать определенную помеченную версию вашего кода. Они знают, что их код работает с тегом, который вы указали, и с радостью выйдет на основе этого предположения. Если вы измените тег, тогда код пользователя может сломаться. Тег буквально таков: это стабильная веха, на которой другой пользователь может рассмотреть камень.

Кроме того, если в проекте более одного разработчика, они будут работать с trunk. Когда они обновляются, они не будут получать изменения, которые были сделаны в теге, что вызовет огромную проблему слияния.

Ответ 3

Тег должен указывать на некоторую существующую ревизию во времени. Вы в основном даете этой ревизии имя, т.е. Тег. В SVN тег является только копией в каталоге/тегах, поэтому коммитинг возможен, но это просто деталь реализации. Ничто не мешает вам совершать, но это необычно, и люди, использующие тег, могут быть смущены что именно этот тег представляет... оригинальную версию при создании тега или новые изменения. В конце концов, все дело в том, чтобы сообщить о ваших намерениях.

В других системах теги просто указывают на конкретную ревизию. Вы можете создать новую ветку из помеченной ревизии, но тег остается указывать на оригинальную версию.

Ответ 4

При пометке версии, может быть трудно предсказать, если вам нужно будет вернуться к этой версии и внести изменения. Иногда вы хотите, чтобы вы создали ветку вместо тэга, но чаще всего ветвь переполнена.

Может быть, вы можете убедить своего клиента взять другой подход, совершить тэг и сделать ветку (которую многие опасаются).

Сначала создайте локальную копию тега, затем внесите необходимые изменения (локально), и зафиксируйте результат как новый тег. Если новая версия требует нескольких коммитов, вы можете присвоить новому тегу название проекта - просто, чтобы убедиться, что никто не ошибается в этом теге для готовой версии, - и когда все фиксации сделаны, переименовать новый тег до конечного имени. (Я считаю, SVN позволяет переименовывать теги, хотя я никогда не делал этого.)

Ответ 5

Старый пост, но, как и другие, возможно, он его прочитает, я добавлю два цента:

В предыдущих ответах все полагаются на здравый смысл, о котором вы говорите, клиент не отвечает. Попробуйте эту историю: "Тег похож на съемку семейной фотографии на свадьбе. Вы не вытащили бы свой постоянный маркер, чтобы добавить тетушку Лизу к картине, не так ли? Если вы хотите нарисовать, вместо этого используйте лист бумаги (= ветвь)"

В качестве побочного примечания было бы интересно узнать, почему клиент хочет передать тег. Мне гораздо легче спорить, зная, чего пытается достичь коллега, и о нуждах, стоящих за этим.

Ответ 6

Хорошо.. что, если у вас есть блестящие сотрудники, которые делают теги, которые серьезно раздуты версии кода, полные временных файлов и т.д., которые абсолютно не нужны?! Я думаю, что удаление мусора и возвращение обратно к тегу в порядке.. до тех пор, пока есть комментарий об этом (комментарий будет иметь отметки времени, и я предполагаю, что любое изменение тега также будет иметь временную метку, поэтому довольно легко найти комментарии примерно в это время). Конечно, если вы крупная компания или серьезно профессиональная, хорошо структурированная и красная лента (мы нигде не находимся рядом), то это совсем другая история.