SVN - То, когда Вы отмечаете рабочую копию, является ею все еще дешевая копия?

Используя Подверсию, в моей рабочей копии я делаю незначительную модификацию (обновите номер версии). Я затем хотел бы отметить свою рабочую копию. Это отметило бы все еще быть дешевой копией с модификацией, или SVN копирует файлы? Я не хотел бы видеть, что мой репозиторий растет чрезвычайно в размере, потому что я пытаюсь сохранить изменение номера версии.

Причина, которую я спрашиваю о создании тега, который содержит модификацию вместо того, чтобы фиксировать затем отмечать, включает мой сервер сборки. Сервер сборки создает CCNetLabel, который я использую для обновления номеров версий моих проектов (AssemblyInfo.cs). Когда сборка успешна, она создает тег. Когда я использую ForceBuild, тег основан на рабочей копии, которая содержала бы измененный номер версии. Я хочу, чтобы тег содержал соответствующий номер версии.

примечание: Это спорно, если я создаю ответвление или тег, однако SVN не делает различие между двумя.

6
задан mcdon 9 March 2010 в 07:15
поделиться

3 ответа

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

Для каждого файла/каталога (или фактически поддерева) с ревизией, отличной от родительской, будут добавлены дополнительные данные. А если у вас есть локальные модификации, то будет добавлено еще больше данных.

Но это все еще разумно дешево: он не дублирует файлы, которые уже есть в репозитории.

5
ответ дан 9 December 2019 в 20:42
поделиться

Из описания Subversion

  • Ветвление и тегирование - это дешевые (с постоянным временем) операции. Нет причин для выполнения этих операций дорогие, поэтому они не такие. И ветви, и теги реализованы в терминах базовой операции "копирования". Копия занимает небольшое постоянное пространство. Любая копия является тегом; и если вы начнете коммитить копию, то это тоже будет ветка. (Это устраняет "маркировку точки ветвления" CVS, устраняя различие, которое делало теги точки ветвления необходимыми в первую очередь.)

Примечание! Я только что заметил, что Subversion был перемещен в организацию проекта Apache

5
ответ дан 9 December 2019 в 20:42
поделиться

Создание тега или ветки в Subversion очень дешево. Файлы копироваться не будут. Все, что происходит, это то, что будет создана новая ревизия, содержимое которой в основном будет содержать указатель на то, откуда был скопирован тег. Это будет одинаковый размер для тега проекта с одним маленьким файлом или для тега с миллионом больших файлов.

Когда вы говорите «пометить мою рабочую копию», вы имеете в виду «пометить мою рабочую ветвь»? Вы можете пометить только те данные, которые уже были где-то зафиксированы в репозитории, но не ваши локальные незафиксированные изменения.

1
ответ дан 9 December 2019 в 20:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: