Как я могу изменить номер ревизии хранилища в Tortoise SVN? - PullRequest
5 голосов
/ 12 января 2009

У меня есть проект с номером ревизии 3960. Но, к сожалению, он не находится под контролем исходного кода. Теперь я хотел бы поместить его в SVN и использовать SVN Tortoise. Но когда я положу его туда, он будет иметь ревизию от 1,2,3,4 и так далее.

Есть ли способ изменить номер ревизии на 3960?

Ответы [ 3 ]

9 голосов
/ 12 января 2009

Самый безопасный способ, который я могу придумать, - создать файл дампа с соответствующим количеством пустых ревизий, чем загрузить его. Формат будет примерно таким:

SVN-fs-dump-format-version: 2

Revision-number: 0
Prop-content-length: 56
Content-length: 56

K 8
svn:date
V 27
2009-01-12T14:58:15.449041Z
PROPS-END

Revision-number: 1
Prop-content-length: 56
Content-length: 56

K 8
svn:date
V 27
2009-01-12T14:58:40.758271Z
PROPS-END

Revision-number: 2
Prop-content-length: 56
Content-length: 56

K 8
svn:date
V 27
2009-01-12T14:58:44.509698Z
PROPS-END

Вы можете опустить svn: date, и он все равно будет действительным svn-репозиторием, но запросы по {date} не будут работать (точно так же, как и в любом случае, когда даты не монотонно увеличиваются с пересмотром) , Так что, вероятно, лучше подделать череду вероятных дат.

Если вы хотите 3960 таких ревизий, вы, вероятно, захотите написать скрипт для генерации файла дампа. Я оставляю это в качестве упражнения для читателя: -)

7 голосов
/ 12 января 2009

Это возможно в теории , но не очень полезно.

Если вам нужно как-то отслеживать эту информацию, вы можете подумать о создании тега «3960», но в противном случае можно оставить нормальный процесс редактирования.

Как сказано в руководстве:

Глобальные номера редакций
В отличие от многих других систем контроля версий, номера версий Subversion применяются ко всем деревьям, а не к отдельным файлам. Каждый номер ревизии выбирает целое дерево, определенное состояние хранилища после некоторого зафиксированного изменения.
Еще один способ думать об этом заключается в том, что ревизия N представляет состояние файловой системы хранилища после N-го коммита. Когда пользователь Subversion говорит о «ревизии 5 файла foo.c», он действительно означает «foo.c в том виде, в каком он появляется в ревизии 5».

Номер редакции отличается от ** номера версии приложения "(номер версии вашего приложения): последний представлен тегом.

3 голосов
/ 12 января 2009

Во-первых, я не знаю, как это сделать. Если это было бы возможно, я думаю, что вы должны использовать svn-hookscript.

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

Для отслеживания ваших номеров сборки вы должны использовать теги.

...