Як оновити v2 до v3 FSFS підривної файлової системи


9

По-перше, я намагаюся реінтегрувати гілку з магістраллю (використовуючи TortoiseSVN), але я отримую повідомлення про помилку "Для запиту інформації про об'єднання потрібна версія 3 файлової системи FSFS; файлова система E: / MyRepository / використовує лише версію 2".

Невже не вдалося реінтегрувати гілки в більш ранніх версіях підривної роботи? Або є інший спосіб зробити це?

Як би я не міг оновити файлову систему з версії 2 до версії 3?


Відповіді:


6

Ви не вказали версію Subversion, яку працює ваш сервер. Але виходячи з повідомлення, яке ви надали у запитанні, це, мабуть, версія 1.4.x або старіша. Я не пам’ятаю, чи була надана команда оновлення чи ні для конвертації від 1.4.x до 1.5.x, але вірний спосіб передачі вашого сховища від версії 2 до версії - це скидання та завантаження. Але це не має великого значення, ви все одно хочете встановити 1.6.x, щоб отримати останню версію. Отже, ось кроки, які вам потрібно зробити:

  • Оновіть до Subversion 1.6.x, якщо цього ще не зробили
  • Вивантажте наявне сховище, використовуючи дамп svnadmin
  • Створіть нове репо, назвіть його _новим
  • Завантажте своє нове репо на дамп старого, використовуючи завантаження svnadmin
  • Скопіюйте файл uuid зі старого сховища до нового сховища
  • перейменуйте старе сховище у _old
  • перейменувати нове сховище у

Дивіться також поширені запитання щодо підриву http://subversion.apache.org/faq.html#dumpload для конкретного прикладу.

Це повинно вас потурбувати, і файл uuid не дозволить вашим клієнтам вигадати. Зробіть оновлення svn, щоб бути впевненим.


2
з svnadmin help loadповідомлення: --force-uuid : set repos UUID to that found in stream, if any. Якщо коротко: не потрібно грати з файлами
Хуберт Каріо

@Hubert Kario: Так, командний рядок має такий варіант. Але це не всі клієнти GUI. І якщо ви можете це зробити на стороні сервера, це просто полегшує користувачам. Але я пам’ятаю про цей перемикач наступного разу, коли я зіткнуся з цією проблемою. Дякую за пораду!
jgifford25

Створюючи нове сховище, будьте уважні щодо налаштування дозволів. Наприклад, якщо ви звертаєтеся до сховища з допомогою Apache mod_svn, Apache працює під користувачем «WWW», група «WWW» , і ви увійшли в системі як «Фред», вам, ймовірно , потрібно що - щось на кшталт: sudo chown -R fred:www myrepositoryсупроводжуване sudo chmod g+wдо myrepository/db/repcache.dbіmyrepository/db/uuid
xgretsch

8

Дамп / завантаження не потрібно для оновлення сховищ Subversion. Використовуйте команду оновлення svnadmin:

svnadmin upgrade <path-to-repos>

ПРИМІТКА: оновлення svnadmin "виконує лише мінімальний обсяг роботи, необхідний для цього, зберігаючи цілісність сховища. Хоча дамп і подальше завантаження гарантують найбільш оптимізований стан сховища, оновлення svnadmin не робить". - див. також документацію щодо оновлення svnadmin


1
Зверніть увагу, що це "виконує лише мінімальний обсяг роботи, необхідний для цього, зберігаючи цілісність сховища. Хоча дамп і подальше завантаження гарантують найбільш оптимізований стан сховища, оновлення svnadmin не робить". - див. також svnbook.red-bean.com/en/1.7/svn.ref.svnadmin.c.upgrade.html
Jörg

1
Зверніть увагу, що "ви завжди повинні створювати резервну копію вашого сховища до", використовуючи оновлення svnadmin, тоді як з дамп / завантаженням ви маєте резервну копію неявно.
Йорг

5

Іван має гарну пораду, яка працює, я спробував це, і це дуже просто.

svnadmin upgrade <path-to-repos>

Одне, що я пропустив у прикладі Іванса, який може бути корисним для інших, це:

Вих.

<path-to-repos> = C:\repos\theRepo
(ie. NOT C:\repos\theRepo\db)

Не вказуйте svnadmin на каталог db, а на каталог, що містить каталог db.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.