Назад | Перейти на главную страницу

Информация SVN показывает старую версию № как текущую.

У меня репо SVN. Когда я недавно зафиксировал изменение, отраженная текущая ревизия № 620:

Transmitting file data ...
Committed revision 620.

Однако, если я затем побегуsvn info Получаю следующее:

Path: .
URL: http://www.site.com.testing/repos/site.com/trunk
Repository Root: http://svn.server/repos/site.com
Repository UUID: a9c3a166-39f6-4cfb-8622-fd24eb11034b
Revision: 584
Node Kind: directory
Schedule: normal
Last Changed Author: bob
Last Changed Rev: 584
Last Changed Date: 2012-03-26 18:32:55 -0400 (Mon, 26 Mar 2012)

Итак, фиксация чего-то говорит мне, что текущее репо SVN - 620, но svn info сообщает мне, что текущая версия - 584. Также svn log показывает 584 как текущую (самую последнюю) версию.

Если я смотрю журнал SVN через TortoiseSVN в Windows, он правильно показывает ревизию 620 как текущую.

Я что-то упускаю относительно того, как svn info и svn log работай?

Subversion показывает вам, что вы проверили ревизию 584. Информация взята непосредственно из .svn/entries файл, а не с сервера.

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

  • Если вы сделаете svn info в одном из только что зафиксированных файлов вы увидите, что это версия 620.
  • Если бы вы сделали svn info http://www.site.com.testing/repos/site.com/trunk, вы увидите, что последней ревизией была ревизия 620, потому что она обращается к серверу.
  • Если бы вы сделали svn update а затем svn info, вы увидите, что ваш рабочий каталог имеет ревизию 620.

Небольшой вопрос: вы зафиксировали несколько файлов или весь рабочий каталог? Если бы вы указали в своем коммите файлы, которые были изменены, это имело бы смысл. Subversion не знала бы об обновлении .svn/entries файл в корне вашего рабочего каталога. Однако я видел это, даже когда фиксировал все изменения. Я стал делать svn up всякий раз, когда фиксирую все свои изменения.

Помните: Это не ошибка. Это особенность.

Вероятно, команда svninfo показывает вам ревизию текущего рабочего каталога, тогда как, когда вы фиксируете измененный файл или файлы, вывод этой фиксации показывает новую ревизию этих файлов. 584 будет последней измененной / обновленной версией папки.

Попробуйте запустить svn update в папке и при повторном запуске svn info. Это должно довести остальную часть папки до 620