Cara memutakhirkan sistem file subversi v2 ke v3 FSFS

9

Pertama, saya mencoba untuk mengintegrasikan kembali cabang dengan trunk (menggunakan TortoiseSVN) tetapi saya mendapatkan pesan kesalahan "Meminta info penggabungan membutuhkan versi 3 dari skema sistem file FSFS; filesystem E: / MyRepository / hanya menggunakan versi 2".

Apakah benar-benar tidak mungkin untuk mengintegrasikan kembali cabang di versi subversi sebelumnya? Atau adakah cara lain untuk melakukan ini?

Lagi pula, bagaimana saya bisa memutakhirkan sistem file dari versi 2 ke versi 3?

cbp
sumber

Jawaban:

6

Anda tidak menentukan versi Subversion yang dijalankan server Anda. Tetapi berdasarkan pesan yang Anda berikan dalam pertanyaan, itu mungkin versi 1.4.x atau lebih lama. Saya tidak ingat apakah ada perintah pemutakhiran yang disediakan atau tidak untuk konversi dari 1.4.x ke 1.5.x, tetapi cara yang pasti untuk mendapatkan repositori Anda dari versi 2 ke versi adalah dengan dump dan memuat. Tapi itu tidak masalah, Anda tetap ingin menginstal 1.6.x untuk mendapatkan yang terbaru. Jadi, inilah langkah-langkah yang perlu Anda lakukan:

  • Tingkatkan ke Subversion 1.6.x jika belum
  • Dump repositori Anda yang ada menggunakan svnadmin dump
  • Buat repo baru, sebut saja _new
  • Muat repo baru Anda dengan dump yang lama menggunakan svnadmin load
  • Salin file uuid dari repositori lama ke repositori baru
  • ganti nama repositori lama menjadi _old
  • ganti nama repositori baru menjadi

Lihat juga FAQ Subversion http://subversion.apache.org/faq.html#dumpload untuk contoh nyata.

Itu seharusnya membuat Anda diurus dan file uuid akan membuat klien Anda tidak panik. Lakukan pembaruan svn untuk memastikan.

jgifford25
sumber
2
dari svnadmin help loadpesan: --force-uuid : set repos UUID to that found in stream, if any. Singkatnya: tidak perlu bermain dengan file
Hubert Kario
@ Hubert Kario: Ya, baris perintah memiliki opsi itu. Tetapi tidak semua klien GUI melakukannya. Dan, jika Anda bisa melakukannya di sisi server, itu hanya memudahkan pengguna. Tetapi saya akan mengingat hal itu saat lain kali saya mengalami masalah itu. Terima kasih atas tipnya!
jgifford25
Saat membuat repositori baru Anda, berhati-hatilah dalam mengatur izin. Misalnya, jika Anda mengakses repositori melalui apache mod_svn, apache berjalan di bawah pengguna "www", grup "www" dan Anda masuk sebagai "fred", Anda mungkin memerlukan sesuatu seperti: sudo chown -R fred:www myrepositorydiikuti oleh sudo chmod g+wke myrepository/db/repcache.dbdanmyrepository/db/uuid
xgretsch
8

Dump / load tidak diperlukan untuk meningkatkan repositori Subversion. Gunakan perintah upgrade svnadmin:

svnadmin upgrade <path-to-repos>

CATATAN: peningkatan svnadmin "hanya melakukan jumlah minimum pekerjaan yang diperlukan untuk menyelesaikan ini sambil tetap menjaga integritas repositori. Sementara dump dan muatan berikutnya menjamin keadaan repositori yang paling optimal, peningkatan svnadmin tidak." - Lihat juga dokumentasi peningkatan svnadmin

Ivan Zhakov
sumber
1
CATATAN, bagaimanapun, bahwa ini "hanya melakukan jumlah minimum pekerjaan yang diperlukan untuk mencapai ini sambil tetap menjaga integritas repositori. Sementara dump dan muatan berikutnya menjamin keadaan repositori yang paling optimal, peningkatan svnadmin tidak." - lihat juga svnbook.red-bean.com/en/1.7/svn.ref.svnadmin.c.upgrade.html
Jörg
1
CATATAN, juga, bahwa "Anda harus selalu mencadangkan repositori Anda sebelum" menggunakan peningkatan svnadmin, sedangkan dengan dump / load Anda semacam memiliki cadangan Anda secara implisit.
Jorg
5

Ivan punya tip bagus yang berfungsi, saya mencobanya dan sangat sederhana.

svnadmin upgrade <path-to-repos>

Satu hal yang saya lewatkan dalam contoh Ivans yang dapat bermanfaat bagi orang lain adalah:

Ex.

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

Jangan arahkan svnadmin pada direktori db, tetapi direktori yang mengandung direktori db.

Per G
sumber