Можно ли ограничить ветвление и теги в CVS на сервере?
Вопрос
Нам нужно преобразовать производственные CVS, отвечающие на SVN. Мы используем CVS2SVN для необработанного процесса преобразования, а также для некоторых других инструментов.
Поскольку это репозиторий в реальном времени, время простоя в точке переключения хранилища довольно важно. Наши тестовые прогоны базового преобразования CVS2SVN занимают около 5 дней, что слишком длинное.
Я ищу несколько альтернативных подходов для того, чтобы сделать процесс несколько постепенным. Один из подходов требует, чтобы помещение и разветвление были ограничены в репозитории CVS.
Можно ли ограничить помечение и разветвление, но разрешить нормальные коммиты в репозитории CVS?
Решение
Таким образом, выясняется, что это возможно с помощью сценария предварительного обмена Taginfo, как подробно описано в разделе администратора руководства здесь.
Файл Тагинфо
То, что loginfo делает для сообщений журнала, Taginfo делает для тегов. Левая сторона Тагинфо - это обычные выражения, как обычно, а правая сторона - это программы. Каждая программа автоматически передается аргументы, когда тег CVS вызывается, в этом порядке:
arg 1: tag name
arg 2: operation ("add" => tag, "mov" => tag -F, "del" => tag -d)
arg 3: repository
arg 4, 5, etc: file revision [file revision ...]
Если программа возвращает ненулевые, тег прерывается.