2009-07-15 6 views
4


Мы планируем отойти от CVS и SVN.
Все выглядит хорошо, ожидая, что наши разработчики сделают теги pre/post для каждого представления.
Итак, в CVS у нас нет проблем, поскольку TAGS интуитивно понятны и дешевы.
Однако, в SVN, тег является копией справа?
С учетом сказанного, мне интересно, есть ли у меня способ сделать до и после тега на основе изменений или чего-то, к чему у меня есть доступ до моего представления.Преобразование CVS в SVN - Как заменить функции CVS TAGS

ответ

2

Тэги - это копия, но поскольку изменения основаны на деревьях в Subversion, накладные расходы копии намного меньше, чем в CVS. Посмотрите на номер Subversion book. Как говорится в комментарии Ричарда, на этом page есть коробка, которая описывает дешевые копии. Существует также это site, в котором перечислены верхние советы Subversion для пользователей CVS.

+2

Еще лучше, установите флажок «Дешевые копии» на этой странице книги SVN: http://svnbook.red-bean.com/en/1.5/svn.branchmerge.using.html –

+0

Спасибо, Ричард, не видел, что один –

1

Я не уверен, если я понимаю вопрос правильно, но вы можете пометить конкретную ревизию в SVN:

$ svn cp -r <url>/trunk <url>/tags/my_tag

См управления chapter on svn copy в Версии с Subversion для получения дополнительной информации. Appendix B. Subversion for CVS Users также стоит прочитать.

1

Тег является виртуальной копией. Подумайте, что это немного напоминает символическую ссылку в UNIX - это очень дешевая операция.

2

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

В CVS тег является своего рода временным снимком вашей разработки; вы обычно разрабатываете в своем своей HEAD, и когда вы достигнете своего рода стабильной ситуации, которую вы хотите сохранить для последующей справки, вы просто делаете тег. Если вы проверяете версию тега из репозитория CVS, его нельзя изменить или, если можно так выразиться, его можно изменить на вашей локальной копии, но вы не можете зафиксировать изменения. В некотором роде CVS автоматически защищает свои теги от случайных изменений.

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

Надеюсь, что это поможет при обсуждении различий между SVN и CVS (и, пожалуйста, извиниться за мой английский).

+1

Спасибо Orporick. Ваш английский отлично! – un33k

Смежные вопросы