Как управлять нумерацией ревизий в теге SVN? - PullRequest
0 голосов
/ 15 февраля 2019

Интересно, как поступить с RN (номером ревизии) в моем программном проекте.RN помещается в отдельный заголовочный файл и отображается в представлении about и выглядит примерно так: v1.23.456

Обычно я создаю тег, подобный следующему:

1.Создайте тег с помощью:

svn copy http://myrepo/trunk http://myrepo/tags/1.23.456 -m"Tagged version 1.23.456"

2.Проверьте тег и отредактируйте RN:

svn co http://myrepo/tags/1.23.456
gedit revisionNumber.h

3.Проверьте в адаптированном RN:

svn ci revisionNumber.h -m"Adadpted RN"

-> Это плохой обходной путь для редактирования тега.Но я не знаю другого способа управления РН.Итак, мой вопрос:

Как управлять нумерацией ревизий в теге SVN?

Ответы [ 2 ]

0 голосов
/ 25 августа 2019

Вы можете сделать это одним из двух способов, в зависимости от того, как вы создаете свое выпущенное программное обеспечение.

Руководство с принудительным исполнением после фиксации

  1. Фиксация revisionNumber.h перед тегом.
  2. Записать post-commit , который позволяет делать тег только в том случае, если revisionNumber.h является правильным (соответствует тегу).Вы можете реализовать это в хуке post-commit, используя svnlook cat и grep.

Недостатком этого подхода является то, что вам все равно придется обновлять номер ревизии в двух местах, но пост-commit hook, по крайней мере, гарантирует, что вы не испортите.

Build Bot

Это применимо, только если у вас есть сборочный бот или процесс сборки.

  1. Чтобы создать тег, используйте команду svn copy для папки тегов.
  2. Напишите хук после фиксации, который наблюдает за этой папкой и запускает сборку, предоставляя сборку с тегом.
  3. Сборочный бот обновляет revisionNumber.h и производит сборку.

При таком подходе revisionNumber.h никогда не обновляется в вашем хранилище, поэтому номер версии, вероятно, в большинстве случаев недействителен.Если у вас есть код, который зависит от номера редакции (т. Е. Он не только для отображения), это может быть не лучшим решением.

0 голосов
/ 15 февраля 2019

Одно из возможных решений - отредактировать версию с помощью gedit revisionNumber.h и зафиксировать это изменение в транке до того, как пометит ваш выпуск.

Используйте некоторые метки -dev или -nightly для незавершенной работы, такие как 1.23.456-dev.Удалите -dev из версии и пометьте свой релиз, когда будете готовы.

Кстати, посмотрите руководство Создание выпусков Subversion проекта Apache Subversion.Это может дать вам больше информации и даст возможность ответить на ваши другие вопросы.

...