Нечетность Subversion - редакция svn info выше последней измененной версии в папке проекта - PullRequest
12 голосов
/ 07 декабря 2009

Что-то происходит, я не могу объяснить.

У меня есть рабочая копия моего проекта - выполнено svn обновление (которое говорит: обновлено до версии 1895), я знаю, что оно самое последнее. Когда я выполняю svn info в папке проекта, Revision - 1895, а Last Changed Rev - 1888.

Проверка журнала с использованием TortoiseSVN показывает 1888 как последнюю ревизию, без следа 1895. svn log на 1895 пусто, а svn diff между 1895 и 1888 также пусто, т.е. без различий.

Как я каким-то образом попал в какую-то мошенническую ревизию, которая на самом деле ничего не изменила? В основном это приводит к тому, что сервер сборки (кажется, что он на 1888) не синхронизирован с моей задачей MSBuild SvnVersion (думает, что ревизия - 1895).

Любые предложения приветствуются.

Редактировать: Если Revision всегда будет показывать последнюю версию для всего хранилища, это означает, что такие вещи, как задача SvnVersion MSBuild (которая использует svnversion.exe, но демонстрирует аналогичное поведение), не отображают правильное редакция, если у вас есть несколько репозиториев для нескольких проектов, вам нужно будет использовать «Last Changed Rev» для номера вашей версии.

В результате теперь выполняется моя собственная задача SvnLastChangedRev MSBuild.

1 Ответ

21 голосов
/ 07 декабря 2009

Это не проблема и не странность ... номер редакции применяется ко всему хранилищу Subversion, и, следовательно, номер редакции может быть больше из-за изменений в другом месте хранилища, чем номер последней редакции, в которой что-то изменилось в ветвь репозитория, в котором вы работаете.

Чтобы уточнить, если вы передадите trunk, приведя хранилище к ревизии 10, а затем целый ряд изменений в branches и tags приведёт хранилище к ревизии 1000, тогда 10 будет "последним" измененная ревизия "для папки trunk, но текущий номер ревизии всего хранилища будет 1000.

...