menciptakan repositori svn


8

setelah kesalahan server utama, repositori svn dihancurkan dan versi kerja saya yang terbaru,

apa cara membuat ulang repositori svn dari versi kerja saya?

setelah menginstal svn di server baru dan mencoba copy pekerjaan saya

 svn switch NEW_SVN_PATH .

saya mendapatkan kesalahan

 Repository UUID '1c604742-6b16-462b-86e4-cc8bce959242' doesn't match expected UUID '6df69aeb-a72c-450d-8102-24036a3855f7'

Jawaban:


2

Setelah menginisialisasi repsitor svn baru

  1. pada klien melakukan ekspor svn dari direktori kerja saat ini ke lokasi yang berbeda
  2. dari lokasi yang diekspor lakukan impor svn ke url svn yang baru
  3. sekarang lakukan pemindahan svn ke repositori baru yang dibuat.

sementara ini mungkin bekerja, saya pikir alih-alih pindah, checkout baru mungkin bagus


2

Harus berurusan dengan ini. Saya menggunakan subversi yang dihosting, dan melakukan dump lalu mengimpor. Proses impor mereka tidak mentransfer UUID dari repo lama ke yang baru jadi saya mendapat kesalahan yang sama dengan OP. Semua jawaban di situs Stack Exchange hanya memberi tahu Anda cara menghadapinya dengan menggunakan "svnadmin setuuid", tetapi itu bukan pilihan bagi saya karena saya menggunakan layanan yang dihosting (dan karena itu svnadmin tidak akan memiliki akses ke repositori ). Saya bisa saja memasukkan tiket tetapi tidak ingin berurusan dengan penantian, jadi inilah cara saya memperbaikinya, dengan secara manual memperbarui UUID salinan pekerjaan saya :

Peringatan: hanya coba ini jika Anda yakin copy pekerjaan dan repositori yang Anda tunjuk kembali benar-benar sinkron. Tidak yakin apa yang akan terjadi jika tidak.

Proses ini pada dasarnya adalah untuk mengganti UUID lama dengan UUID baru di file bernama "entri" di folder svn tersembunyi (folder bernama .svn atau _svn) dari copy pekerjaan Anda. Setelah selesai, Anda dapat menggunakan "relokasi" TortoiseSVN untuk mengarahkan direktori kerja ke URL repositori baru.

  1. Di jendela konsol, cd ke root folder kerja Anda.
  2. Jalankan perintah untuk menghapus atribut "baca-saja" secara rekursif dari file "entri": attrib -R entries /S
  3. Gunakan fungsi "ganti dalam file" editor teks untuk mengganti UUID lama dengan UUID baru. Saya menggunakan Visual Studio dengan pengaturan berikut: Lihat: PATH_TO_WORKING_FOLDER_ROOT / Sertakan sub-folder: dicentang / Lihat jenis file ini: entri
  4. Batalkan langkah # 2: attrib +R entries /S
  5. "Pindahkan" copy pekerjaan ke URL baru. Saya menggunakan TortoiseSVN: klik kanan folder yang berfungsi, TortoiseSVN-> Relokasi.

Semua langkah 5 yang dilakukan adalah mengganti URL di file "entri" yang saya pikir, jadi Anda mungkin dapat melakukannya secara manual jika Anda mau. Juga dimungkinkan dengan alat baris perintah "svn", tetapi tidak tahu perintah dari atas kepala saya.


Ini intens. Apakah itu benar-benar perlu? Saya hanya mencoba mencari tahu karena penyedia saya rupanya memindahkan repo kami dan saya mendapatkan kesalahan yang sama.
Hingga

0

Anda dapat mengatur UUID pada repositori kosong. Kemudian impor file yang Anda miliki. Anda akan kehilangan riwayat Anda (tidak disimpan dalam copy pekerjaan). Tetapi, dengan mengatur UUID agar sesuai dengan repositori lama Anda, Anda menghindari pesan kesalahan pada sakelar svn.

$ svnlook uuid /var/svn/repos
cf1b8d31-acb6-02dc-bc7c-16e92ce6dbec
$ svnadmin setuuid /var/svn/repos   # generate a new UUID
$ svnlook uuid /var/svn/repos
4c2c49fe-acc1-23dc-acbc-2b28ff0c9e6c
$ svnadmin setuuid /var/svn/repos 1c604742-6b16-462b-86e4-cc8bce959242  # restore the old UUID
$ svnlook uuid /var/svn/repos 1c604742-6b16-462b-86e4-cc8bce959242

svnadmin versi server saya tidak memiliki setuuid subcommand, kira itu salah satu perintah yang lebih baru. kemudian saya menemukan file db / uuid di repositori, tetapi setelah memodifikasi nomor di dalamnya, svn masih mengeluh bahwa itu bukan repositori yang sama
Pavel K.

0

Saya memiliki masalah yang sama tetapi karena kami menggunakan opsi yang dihosting, saya juga tidak svnadminbisa.

Ini adalah eksternal yang saya gunakan di proyek lain, dan saya melakukan ini untuk memperbaikinya:

  1. Cadangkan semua perubahan lokal saya.
  2. rm -rf direktori (eksternal dicek ke dalam)
  3. hapus svn:external(dan lakukan itu)
  4. svn up
  5. tambahkan svn:externallagi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.