Подтвердить что ты не робот

Как определить версию макета рабочей копии SVN?

Например, клиент SVN 1.5 имеет один макет для рабочих копий, а клиент SVN 1.6 имеет другой макет. Я понимаю, что макет автоматически обновляется, когда его трогает новый клиент.

Если у меня есть рабочая копия в моей системе, как я могу узнать версию используемого макета?

4b9b3361

Ответ 1

Если .svn/format существует, то прочитайте число в нем:

  • Версия 7 SVN 1.3
  • Версия 8 SVN 1.4
  • Версия 9 SVN 1.5

Если .svn/format не существует, тогда номер версии находится в первой строке в .svn/entries:

  • Версия 10 SVN 1.6
  • Версия 12 - SVN 1.7

Subversion 1.6 был первым, кто не использовал .svn/format. В версии 7 и более ранних версиях использовался XML файл .svn/entries, в более новых версиях используется менее подробный формат файла.

Начиная с Subversion 1.7 номер версии хранится в базе данных SQLite .svn/wc.db в поле "user_version". Таким образом, даже если .svn/format увеличен до версии 12, фактическая версия формата - 29, и будущие версии могут больше не обновлять .svn/format. Чтобы получить номер версии из .svn/wc.db есть два метода:

  1. если у вас есть sqlite3 на вашем пути, sqlite3.svn/wc.db "PRAGMA user_version"
  2. если у вас нет sqlite3 на вашем пути, откройте .svn/wc.db в шестнадцатеричном редакторе и прочитайте DWORD со смещением 0x3c

Все номера версий формата описаны в wc.h вместе с номерами версий соответствующих выпусков Subversion.