Subversion как версия-инкрементор при каждом коммите? - PullRequest
2 голосов
/ 13 января 2009

Я бы хотел обновлять (самый высокий) номер ревизии в файле внутри хранилища Subversion после каждой фиксации.

Я подумал о ключевом слове версии svn, но разве оно не обновляется, только если конкретный файл был изменен?

т.е. У меня есть файл version.php , где у меня есть номера версий / ревизий, но только обновление anotherfile.php в моем коммите - это не изменит информацию о версии / ревизии version.php имеет.

Является ли коммит-хук моим единственным вариантом? Если да, то есть примеры?

Ответы [ 4 ]

5 голосов
/ 13 января 2009

Похоже, вы хотите, чтобы какой-то $ GlobalRev $ получил глобальный номер редакции в ваших файлах.

Подходящим инструментом, на который вы можете посмотреть, будет svnversion

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

Также см. "Где $ GlobalRev $?" на этой странице

2 голосов
/ 13 января 2009

Мы не делаем это при фиксации, мы делаем это как часть нашего процесса развертывания. Развертывание извлекает последний код (или конкретную версию) вместе с номером версии SVN, помещает версию в соответствующие места (AssemblyInfo, файл версии PHP и т. Д.), А затем развертывает ее для проверки / UAT / live / что угодно.

1 голос
/ 13 января 2009

Hook-скрипты - единственный вариант здесь. У вас есть два варианта выполнения этой задачи: либо убедитесь, что version.php обновлен в сценарии предварительной фиксации, как это предусмотрено в справочнике по подрывным операциям , либо инициируйте другую фиксацию, обновляющую файл версии в сценарии пост-фиксации. Вы не должны изменять зафиксированные файлы в хуках, как указано в руководстве.

0 голосов
/ 13 января 2009

Subversion использует систему нумерации ревизий в репозитории (см. Боковую панель «Глобальные номера ревизий» здесь ), поэтому ваш файл уже подвергается удару.

...