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

StackOverflow https://stackoverflow.com/questions/2395689

  •  25-09-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

Из описания Subversion

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

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

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

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

Не совсем отсутствует по почте, но стоит упомянуть, что кто-то посещает, что ответ, указав, вы можете только «вы можете только течить данные, которые уже были совершены в репозиторий ...», преданную работу, не совсем точны (по крайней мере, не сейчас).

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

Что касается дешевизны, да, он все еще должен быть дешевым, так как Subversion будет венять для вас, а затем накладывает вашу рабочую копию изменений в REPO, сохраняя как можно больше места

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top