วิธีอัปเกรดระบบไฟล์การโค่นล้ม v2 เป็น v3 FSFS


9

ประการแรกฉันพยายาม reintegrate สาขาด้วย trunk (ใช้ TortoiseSVN) แต่ฉันได้รับข้อความแสดงข้อผิดพลาด "Querying merge info ต้องใช้ schema ระบบไฟล์ FSFS เวอร์ชัน 3 ระบบไฟล์ E: / MyRepository / ใช้รุ่นที่ 2 เท่านั้น"

เป็นไปไม่ได้ที่จะรวบรวมสาขาใหม่ในเวอร์ชันก่อนหน้าของการโค่นล้มหรือไม่ หรือมีวิธีอื่นในการทำเช่นนี้?

อย่างไรก็ตามฉันจะอัพเกรดระบบไฟล์จากรุ่น 2 เป็นรุ่น 3 ได้อย่างไร


คำตอบ:


6

คุณไม่ได้ระบุเวอร์ชันของการโค่นล้มที่เซิร์ฟเวอร์ของคุณกำลังทำงาน แต่ตามข้อความที่คุณระบุในคำถามอาจเป็นรุ่น 1.4.x หรือเก่ากว่า ฉันจำไม่ได้ว่ามีคำสั่งอัพเกรดให้ไว้หรือไม่สำหรับการแปลงจาก 1.4.x เป็น 1.5.x แต่วิธีไฟล์ที่แน่นอนในการรับพื้นที่เก็บข้อมูลของคุณจากรุ่น 2 เป็นเวอร์ชันคือการถ่ายโอนข้อมูลและโหลด แต่นั่นไม่สำคัญเท่าไหร่คุณจะต้องติดตั้ง 1.6.x เพื่อไปกับเวอร์ชั่นล่าสุด ดังนั้นนี่คือขั้นตอนที่คุณต้องทำ:

  • อัปเกรดเป็น Subversion 1.6.x หากยังไม่ได้ดำเนินการ
  • ดัมพ์ที่เก็บที่มีอยู่ของคุณโดยใช้ดัมพ์ svnadmin
  • สร้าง repo ใหม่เรียกว่า _new
  • โหลด repo ใหม่ของคุณด้วยการถ่ายโอนข้อมูลเก่าโดยใช้การโหลด 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

@Hubert Kario: ใช่บรรทัดคำสั่งมีตัวเลือกนั้น แต่ไคลเอนต์ GUI ไม่ได้ทำทั้งหมด และถ้าคุณสามารถทำได้บนฝั่งเซิร์ฟเวอร์นั่นจะทำให้ผู้ใช้ง่ายขึ้น แต่ฉันจะจำสวิตช์นั้นไว้ในครั้งต่อไปที่ฉันพบปัญหา ขอบคุณสำหรับทิป!
jgifford25

เมื่อสร้างที่เก็บใหม่ให้ระวังการตั้งค่าการอนุญาต ตัวอย่างเช่นหากคุณเข้าถึงที่เก็บข้อมูลผ่าน apache mod_svn apache จะทำงานภายใต้ผู้ใช้ "www", กลุ่ม "www" และคุณเข้าสู่ระบบในชื่อ "fred" คุณอาจต้องใช้สิ่งsudo chown -R fred:www myrepositoryต่อไปนี้: ตามด้วยsudo chmod g+wถึงmyrepository/db/repcache.dbและmyrepository/db/uuid
xgretsch

8

ไม่ต้องการ Dump / load สำหรับการอัพเกรดที่เก็บ Subversion ใช้คำสั่ง svnadmin อัพเกรด:

svnadmin upgrade <path-to-repos>

หมายเหตุ: การอัพเกรด svnadmin "ทำงานเฉพาะจำนวนขั้นต่ำของงานที่จำเป็นในการทำสิ่งนี้ในขณะที่ยังคงรักษาความสมบูรณ์ของพื้นที่เก็บข้อมูลในขณะที่การถ่ายโอนข้อมูลและการโหลดตามมารับประกันสถานะของพื้นที่เก็บข้อมูลที่เหมาะสมที่สุด - ดูเอกสารประกอบการอัพเกรด svnadmin


1
ในขณะที่ยังคงรักษาความสมบูรณ์ของพื้นที่เก็บข้อมูลในขณะที่การถ่ายโอนข้อมูลและการโหลดตามมารับประกันสถานะที่เก็บที่ดีที่สุดที่สุดอัพเกรด svnadmin ไม่ได้ " - ดูsvnbook.red-bean.com/en/1.7/svn.ref.svnadmin.c.upgrade.html
Jörg

1
หมายเหตุเช่นกันว่า "คุณควรสำรองที่เก็บของคุณก่อน" โดยใช้การอัปเกรด svnadmin ในขณะที่การถ่ายโอนข้อมูล / โหลดคุณมีการสำรองข้อมูลโดยปริยาย
Jörg

5

อีวานมีเคล็ดลับที่ใช้งานได้ดีฉันลองแล้วมันง่ายมาก

svnadmin upgrade <path-to-repos>

สิ่งหนึ่งที่ฉันคิดถึงในตัวอย่างของไอแวนส์ที่สามารถเป็นประโยชน์ต่อผู้อื่นคือ:

อดีต

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

อย่าชี้ svnadmin ไปที่ไดเร็กทอรี db แต่ไดเร็กทอรีที่มีไดเร็กทอรี db

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.