Amazon Best VPN GoSearch

ไอคอน Fav ของ OnWorks

cvs-fast-export - ออนไลน์ใน Cloud

เรียกใช้ cvs-fast-export ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง cvs-fast-export ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


cvs-fast-export - ประวัติการส่งออกอย่างรวดเร็วจากที่เก็บ CVS หรือคอลเล็กชัน RCS

เรื่องย่อ


cvs-เร็ว-ส่งออก [-h] [-C] [-F] [-a] [-ว ฝอย] [-g] [-l] [-v] [-q] [-V] [-T] [-p] [-P] [-i
ข้อมูล] [-เค การขยายตัว] [-NS แผนผังผู้เขียน] [-t เธรด] [-R แผนที่การปรับปรุง] [--reposurgeon] [-อี รีโมท]
[-NS สตริปพรีฟิกซ์]

DESCRIPTION


cvs-fast-export พยายามจัดกลุ่มคอมมิตต่อไฟล์และแท็กในชุดไฟล์ RCS หรือ
ที่เก็บโปรเจ็กต์ CVS ในชุดการเปลี่ยนแปลงต่อโปรเจ็กต์จะคอมมิตด้วยข้อมูลเมตาทั่วไปใน
รูปแบบของ Subversion และระบบควบคุมเวอร์ชันที่ใหม่กว่า

เครื่องมือนี้ใช้ร่วมกับ .ได้ดีที่สุด ศัลยแพทย์(1). CVs-fast-export ธรรมดา
การแปลงประกอบด้วยฟอสซิลหลายประเภทที่ reposurgeon นั้นดีสำหรับการทำความสะอาด ดู
DVCS Migration HOWTO เพื่อเรียนรู้เกี่ยวกับขั้นตอนการตรวจสุขภาพและขัดเกลาที่จำเป็น
สำหรับการแปลงคุณภาพสูงจริงๆ รวมถึงการยกข้อมูลอ้างอิงและประเภทต่าง ๆ ของ
การล้างสิ่งประดิษฐ์

หากมีการระบุอาร์กิวเมนต์ โปรแกรมจะถือว่าทั้งหมดลงท้ายด้วยนามสกุล ",v" are
ไฟล์หลักและอ่านข้อมูลเหล่านั้น หากไม่มีอาร์กิวเมนต์ โปรแกรมจะอ่านชื่อไฟล์
จาก stdin หนึ่งรายการต่อบรรทัด ไดเร็กทอรีและไฟล์ที่ลงท้ายด้วย ",v" จะถูกข้ามไป (แต่เห็น
คำอธิบายของ -P สำหรับวิธีเปลี่ยนพฤติกรรมนี้)

ไฟล์จาก Unix CVS หรือ CVS-NT ได้รับการจัดการ หากคอลเล็กชันของไฟล์มีคอมมิต
ฟิลด์ ชุดการเปลี่ยนแปลงจะถูกสร้างขึ้นอย่างน่าเชื่อถือโดยใช้สิ่งเหล่านั้น

ในโหมดดีฟอลต์ ซึ่งสร้างสตรีมเอ็กซ์พอร์ตแบบเร็วแบบ git ไปยังเอาต์พุตมาตรฐาน:

· คำนำหน้าที่กำหนดโดยใช้ตัวเลือก -s หรือหากละเว้นตัวเลือก ให้ใช้คำทั่วไปที่ยาวที่สุด
คำนำหน้าของเส้นทางจะถูกละทิ้งจากแต่ละเส้นทาง

· ไฟล์ในไดเร็กทอรี CVS Attic และ RCS จะถือว่า "Attic/" หรือ "RCS/"
ส่วนหนึ่งของเส้นทางที่ขาดหายไป ซึ่งมักจะกู้คืนประวัติของไฟล์ที่
ที่ถูกลบ

· สิทธิ์ในไฟล์ทั้งหมดที่เกี่ยวข้องกับไฟล์ใดไฟล์หนึ่งจะถูกควบคุมโดย
การอนุญาตบนต้นแบบที่เกี่ยวข้อง หากบิตปฏิบัติการบนต้นแบบเปิดอยู่
fileops ทั้งหมดจะมีสิทธิ์ 100755; มิฉะนั้น 100644

· ชุดของการดำเนินการไฟล์จะถูกรวมเป็นชุดการเปลี่ยนแปลงหาก (a) พวกเขาทั้งหมดแชร์
คอมมิททิดเดียวกัน หรือ (ข) ทั้งหมดไม่มีคอมมิททิดแต่ความคิดเห็นเกี่ยวกับการเปลี่ยนแปลง ผู้เขียน
และวันที่แก้ไขภายในหน้าต่างที่กำหนดโดยพารามิเตอร์ time-fuzz ไม่เหมือน
ผู้ส่งออกรายอื่น ไม่มีการพยายามรับชุดการเปลี่ยนแปลงจากแท็กที่ใช้ร่วมกัน

· ภาระผูกพันจะออกตามลำดับเวลาเว้นแต่ cvs-fast-export ตรวจพบว่าผู้ปกครองบางคน
อายุน้อยกว่าเด็ก (ไม่น่าจะเป็นไปได้ แต่เป็นไปได้ในกรณีที่นาฬิการุนแรง
ลาด). ในกรณีนั้นคุณจะเห็นคำเตือนเกี่ยวกับข้อผิดพลาดมาตรฐานและลำดับการปล่อยคือ
รับประกันความถูกต้องทางทอพอโลยี แต่ไม่ได้ระบุไว้เป็นอย่างอื่น (และอยู่ภายใต้
การเปลี่ยนแปลงในเวอร์ชันอนาคตของโปรแกรมนี้)

· แท็ก CVS จะกลายเป็นแท็ก git ที่มีน้ำหนักเบาเมื่อสามารถเชื่อมโยงกับa .ได้อย่างชัดเจน
ชุดการเปลี่ยนแปลง หากแท็กเดียวกันแนบกับเดลต้าไฟล์ที่แก้ไขเป็นทวีคูณ
ชุดการเปลี่ยนแปลงจะถูกรายงานราวกับว่าแนบมากับชุดการเปลี่ยนแปลงสุดท้าย

· สาขา HEAD เปลี่ยนชื่อเป็น เจ้านาย.

· แท็กและชื่อสาขาอื่น ๆ ได้รับการฆ่าเชื้อเพื่อให้ถูกกฎหมายสำหรับ git ตัวละคร ~^\*? เป็น
ลบออก

· เนื่องจากไฟล์ .cvsignore มีไวยากรณ์ที่เข้ากันได้กับไฟล์ .gitignore
พวกเขากำลังเปลี่ยนชื่อ เพื่อจำลองพฤติกรรมการละเว้นเริ่มต้นของ CVS เหล่านั้น
ค่าดีฟอลต์จะถูกเติมไว้ข้างหน้า root .cvsignore blobs ที่เปลี่ยนชื่อเป็น .gitignore และ root
.gitignore ที่มีค่าเริ่มต้นจะถูกสร้างขึ้นหากไม่มี blobs ดังกล่าว

ดูส่วนเพิ่มเติมเกี่ยวกับข้อจำกัด RCS/CVS สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเคสขอบและ
ปัญหาการแปลง

โปรแกรมนี้ไม่ขึ้นอยู่กับข้อมูลเมตาของ CVS ที่เก็บไว้ภายนอกตัวบุคคล
ไฟล์เนื้อหา (เช่นภายใต้ CVSROOT)

ตัวแปร TMPDIR ได้รับเกียรติและใช้เมื่อสร้างไดเร็กทอรีชั่วคราวซึ่ง to
เก็บเนื้อหาไฟล์ระหว่างการประมวลผล

OPTIONS


-h
แสดงสรุปการใช้งาน

-w ฝอย
ตั้งค่าปัจจัย fuzz ของการประทับเวลาเพื่อระบุชุดโปรแกรมแก้ไขในหน่วยวินาที ค่าเริ่มต้นคือ
300 วินาที ตัวเลือกนี้ไม่เกี่ยวข้องกับเซ็ตการแก้ไขที่มีคอมมิต

-k
ระบุการขยายคีย์เวิร์ด RCS/CVS คุณสามารถระบุการขยายคีย์เวิร์ด CVS ใดๆ ได้
ประเภท: "kv" (คีย์เวิร์ด-ค่า), "kvl" (คีย์เวิร์ด-value-locker), "k" (คีย์เวิร์ดเท่านั้น), "v"
(ค่าเท่านั้น), "o" (ไม่มีการขยาย) หรือ "b" (ไบนารี - ไม่มีการขยาย, ไม่มีการลงท้ายบรรทัด
แปลง) กฎของ CVS คือ: (1) ถ้าต้นแบบมี -kb ตั้งไว้ในคีย์เวิร์ดภายใน
ฟิลด์ ให้ทำอย่างนั้น มิฉะนั้น (2) หากตั้งค่าประเภทการขยายบนบรรทัดคำสั่ง ให้ทำ
มิฉะนั้น (3) ถ้าฟิลด์คีย์เวิร์ดภายในของไฟล์ถูกตั้งค่าไว้ ให้ทำอย่างนั้น มิฉะนั้น
ใช้เควี cvs-fast-export ทำงานแตกต่างกันเล็กน้อย ค่าเริ่มต้นคือ kb แทนที่จะเป็น
kkv, kvl ได้รับการปฏิบัติเหมือน kv และ ko ได้รับการปฏิบัติเหมือน kb (นั่นคือ ไม่มีจุดสิ้นสุดของบรรทัด
การทำให้เป็นปกติ)

-g
สร้างรูปภาพของกราฟการคอมมิตในภาษามาร์กอัป DOT ที่ใช้โดย graphviz
เครื่องมือมากกว่าการส่งออกอย่างรวดเร็ว

-l
คำเตือนมักจะไปที่ข้อผิดพลาดมาตรฐาน ตัวเลือกนี้ซึ่งใช้ชื่อไฟล์ช่วยให้
คุณเปลี่ยนเส้นทางไปยังไฟล์> สะดวกด้วยตัวเลือก -p

-a
ดัมพ์รายการ ID ผู้เขียนที่พบในที่เก็บ แทนที่จะส่งออกอย่างรวดเร็ว

-C
บังคับลำดับตามรูปแบบบัญญัติ (เหมือนกับ git-fast-export) ในสตรีมที่ปล่อยออกมา Blobs คือ
ปล่อยออกมาให้ช้าที่สุดก่อนการคอมมิตที่ต้องการ มันลดลง
ปริมาณงานประมาณสองปัจจัย คลังเก็บซึ่งลำดับเวลาของการคอมมิต
ไม่สอดคล้องกับลำดับทอพอโลยีจะทำให้เกิดการส่งออกที่รวดเร็วผิดปกติ
สตรีมในโหมด -C; สิ่งเหล่านี้จะทำให้ผู้นำเข้าของ Git ขัดข้อง

-F
บังคับสั่งด่วน. Blobs จะถูกปล่อยออกมาก่อนแล้วจึงทำการคอมมิต

-A แผนผังผู้เขียน
ใช้ไฟล์แผนผังผู้เขียนกับบรรทัดการระบุแหล่งที่มา แต่ละบรรทัดจะต้องอยู่ในรูปแบบ

ferd = Ferd J. Foonly[ป้องกันอีเมล]> อเมริกา/ชิคาโก

และจะถูกนำไปใช้กับการแมปชื่อผู้ใช้ Unix อุดมสมบูรณ์ สู่เอกลักษณ์ผู้ใช้สไตล์ DVCS
ระบุหลังเครื่องหมายเท่ากับ ฟิลด์เขตเวลา (หลัง > และช่องว่าง) is
ไม่จำเป็น และ (ถ้ามี) ใช้เพื่อตั้งค่าออฟเซ็ตเขตเวลาที่จะแนบกับ
วันที่; รูปแบบที่ยอมรับได้สำหรับเขตเวลาคือสิ่งที่สามารถอยู่ในTZ
ตัวแปรสภาพแวดล้อม รวมถึงออฟเซ็ต [+-]hhmm ช่องว่างรอบเครื่องหมายเท่ากับ
ถูกปล้น เส้นที่ขึ้นต้นด้วย # หรือไม่มีเครื่องหมายเท่ากับจะเงียบ
ละเว้น

-R แผนที่การปรับปรุง
เขียนแผนผังการแก้ไขไปยังชื่อไฟล์อาร์กิวเมนต์ที่ระบุ แผนที่แก้ไขแต่ละบรรทัด
ประกอบด้วยช่องที่คั่นด้วยช่องว่างสามช่อง ได้แก่ ชื่อไฟล์ หมายเลขรุ่น RCS และ
เครื่องหมายของการคอมมิตซึ่งกำหนดคู่การแก้ไขชื่อไฟล์นั้นไว้ ใช้งานไม่ได้
ด้วย -g

-v
แสดงข้อความความคืบหน้าโดยละเอียดซึ่งนักพัฒนาส่วนใหญ่สนใจ

-q
เรียกใช้อย่างเงียบ ๆ ระงับข้อความเตือนเกี่ยวกับการไม่มีคอมมิทธิดและผู้เยาว์อื่น ๆ
ปัญหาที่โปรแกรมมักจะชดเชยได้ แต่อาจบ่งชี้ว่า
ปัญหาการแปลง หมายถึงใช้กับ cvsconvert ซึ่งทำถูกต้องเอง
การตรวจสอบ

-T
บังคับวันที่กำหนดสำหรับการทดสอบการถดถอย แต่ละแพตช์เซ็ตจะมี a
วันที่ระบุแหล่งที่มาที่เพิ่มขึ้นแบบโมโนโทนิกคำนวณจากเครื่องหมายในสตรีมเอาต์พุต - the
ทำเครื่องหมายมูลค่าคูณหน้าต่างเวลาคอมมิตคูณสอง

--ศัลยแพทย์ตกแต่ง
ปล่อยสำหรับแต่ละคอมมิตรายการของไฟล์ CVS:revision คู่ที่เขียนเป็น bzr-style
คอมมิตคุณสมบัติชื่อ "cvs-revisions" ตั้งแต่เวอร์ชัน 2.12 เป็นต้นไป ศัลยแพทย์(1) สามารถ
ตีความสิ่งเหล่านี้และใช้เป็นคำแนะนำในการยกข้อมูลอ้างอิง

--embed-รหัส
ผนวกกับการระบุความคิดเห็นของคอมมิตแต่ละรายการของคอมมิต CVS ที่ส่งผลต่อ
มัน

-V
ปล่อยเวอร์ชันของโปรแกรมและออก

-e รีโมท
ชื่อสาขาที่ส่งออกจะถูกนำหน้าด้วย refs/remotes/รีโมท แทนกรรมการ/หัวหน้า
ทำให้การนำเข้าดูเหมือนมาจากรีโมตที่มีชื่อ

-s สตริปพรีฟิกซ์
ตัดคำนำหน้าที่กำหนดแทนคำนำหน้าทั่วไปที่ยาวที่สุด

-t จำนวนเธรด
การรันแบบมัลติเธรดจะเพิ่มขนาดหน่วยความจำของโปรแกรมตามสัดส่วนของ
จำนวนเธรด แต่หมายถึงการแปลงอาจทำงานในเวลารวมน้อยลงเนื่องจาก I/O
การดำเนินการที่เกี่ยวข้องกับไฟล์หลักหนึ่งไฟล์จะไม่บล็อกการประมวลผลที่เน้นการประมวลผลของ
คนอื่น. โดยค่าเริ่มต้น โปรแกรมจะถือว่าสามารถใช้สองเธรดต่อ
โปรเซสเซอร์ที่มีจำหน่าย คุณสามารถใช้ตัวเลือกนี้เพื่อกำหนดจำนวนเธรด ค่า 0
บังคับการประมวลผลแบบต่อเนื่องโดยไม่มีการทำเกลียว

-p
เปิดใช้งานการรายงานความคืบหน้า นอกจากนี้ยังทิ้งสถิติ (เวลาที่ผ่านไปและขนาดของ
ชุดถิ่นที่อยู่สูงสุด) สำหรับหลายจุดในการรันการแปลง

-P
โดยปกติ cvs-fast-export จะข้ามชื่อไฟล์ใด ๆ ที่แสดงเป็นอาร์กิวเมนต์หรือใน stdin
ที่ไม่ได้ลงท้ายด้วยส่วนขยาย RCS/CVS ",v" และจะละเว้น pathnamre . ด้วย
มีสตริง CVSROOT (เพื่อหลีกเลี่ยงความรำคาญเมื่อเรียกใช้จากหรือสูงกว่า a
ไดเร็กทอรี CVS ระดับบนสุด) การอ่าน RCS อย่างเข้มงวดช่วยให้ผู้เชี่ยวชาญไม่มี ,v
ส่วนขยาย. ตัวเลือกนี้ตั้งค่าโหมดสำส่อน โดยปิดใช้งานการตรวจสอบทั้งสอง

-i ข้อมูล
เปิดใช้งานโหมด incremental-dump กระทำด้วยวันที่หลังจากนั้นที่ระบุโดย .เท่านั้น
อาร์กิวเมนต์จะถูกปล่อยออกมา รากแต่ละกิ่งในการถ่ายโอนข้อมูลส่วนเพิ่มจะถูกตกแต่งด้วย
git-stream magic ซึ่งเมื่อตีความในบริบทของที่เก็บสดจะเชื่อมต่อ
สาขานั้นไปยังสาขาที่มีชื่อเดียวกัน วันที่คาดว่าจะเป็น RFC3339
สอดคล้อง (เช่น yy-mm-ddThh:mm:ssZ) หรือเวลา Unix ที่เป็นจำนวนเต็มในหน่วยวินาที

หากไม่ได้ระบุ -F หรือ -C cvs-fast-export จะเลือกโหมดตาม
ขนาดพื้นที่เก็บข้อมูล - ลำดับตามรูปแบบบัญญัติสำหรับที่เก็บขนาดเล็ก เร็วสำหรับพื้นที่เก็บข้อมูลขนาดใหญ่ เครื่องมือที่
กินกระแส git-fast-import ไม่ควรสนใจ พฤติกรรมนี้มีไว้สำหรับถอยหลัง
ความเข้ากันได้

ตัวอย่าง


การเรียกโดยทั่วไปจะมีลักษณะดังนี้:

หา . | cvs-fast-export >stream.fi

การกระจาย cvs-fast-export ของคุณควรจัดหาด้วย ซีวีซิงค์(1) เครื่องมือในการดึง CVS
ต้นแบบจากที่เก็บระยะไกล การใช้ร่วมกันจะมีลักษณะดังนี้:

ซีวีซิงค์ [ป้องกันอีเมล]:/sources/กร๊อฟกร๊อฟ
หา groff | cvs-fast-export >groff.fi

การรายงานความคืบหน้าสามารถสร้างความมั่นใจได้หากคุณคาดว่า Conversion จะทำงานเป็นระยะเวลาหนึ่ง มัน
จะทำให้เปอร์เซ็นต์ความสมบูรณ์ของการเคลื่อนไหวเป็นการดำเนินการแปลงและแสดงเวลาเมื่อ
เสร็จแล้ว

ชุด cvs-fast-export มีสคริปต์ตัวตัดชื่อ cvsแปลง ที่เป็นประโยชน์สำหรับ
เรียกใช้การแปลงและตรวจสอบเนื้อหาโดยอัตโนมัติเทียบกับต้นฉบับ CVS

RCS/ซีวีเอส ข้อ จำกัด


การแปลที่เก็บ RCS/CVS เป็นโมเดล DVCS ทั่วไปที่แสดงโดยสตรีมอิมพอร์ต is
ไม่ใช่แค่ยากและเลอะเทอะเท่านั้น แต่ยังมีกรณี RCS/CVS แปลกๆ ที่ไม่สามารถทำได้อย่างถูกต้อง
แปลได้เลย cvs-fast-export จะพยายามเตือนคุณเกี่ยวกับกรณีเหล่านี้มากกว่า
การแปลที่หักหรือไม่สมบูรณ์อย่างเงียบๆ แต่มีมังกรอยู่ เราแนะนำ
ข้อควรระวังบางประการภายใต้การตรวจสุขภาพ

CVS-NT และเวอร์ชันของ GNU CVS หลัง 1.12 (2004) เพิ่มชุดการแก้ไข commit-id ให้กับ file
ข้อมูลเมตา ส่วนที่เก่ากว่าของประวัติ CVS ที่ไม่มีสิ่งเหล่านี้มีความเสี่ยงต่อปัญหาต่างๆ
เกิดจากนาฬิกาเอียงระหว่างลูกค้า นี้เคยเป็นเรื่องธรรมดาสำหรับ multiple
เหตุผล รวมถึงการใช้การซิงโครไนซ์นาฬิกา NTP อย่างแพร่หลายน้อยลง cvs-fast-export will
เตือนคุณ ("กระทำก่อนวันที่นี้ไม่มีคอมมิต") เมื่อเห็นส่วนดังกล่าวใน .ของคุณ
ประวัติศาสตร์. เมื่อเป็นเช่นนั้น คำเตือนเหล่านี้จะมีผลบังคับใช้:

· หากการประทับเวลาของคอมมิตในที่เก็บ CVS ไม่เสถียรพอที่จะใช้สำหรับ
การสั่งซื้อกระทำ การเปลี่ยนแปลงอาจถูกรายงานในลำดับที่ไม่ถูกต้อง

· หากลำดับการประทับเวลาของไฟล์ต่าง ๆ ข้ามลำดับการแก้ไขภายใน
กรอบเวลาการคอมมิตที่ตรงกัน ลำดับการคอมมิตที่รายงานอาจไม่ถูกต้อง

อีกหนึ่งคุณสมบัติที่ได้รับผลกระทบจากคอมมิตคือความเสถียรของชุดการเปลี่ยนแปลงเก่าภายใต้
การทุ่มตลาดที่เพิ่มขึ้น ภายใต้การนำ CVS ไปใช้งาน การออกคอมมิต CVS ใหม่จะเป็น
รับประกันว่าจะไม่เปลี่ยนที่มาของเซ็ตการแก้ไขของ cvs-fast-export จากประวัติก่อนหน้า
ดังนั้น การอัพเดตที่เก็บ DVCS เป้าหมายด้วยการดัมพ์ที่เพิ่มขึ้นจาก CVS . แบบสด
การติดตั้งจะทำงาน แม้ว่าส่วนเก่าของประวัติศาสตร์จะไม่มีคอมมิต
การแปลงจะมีเสถียรภาพ การรับประกันความเสถียรนี้จะหายไปหากคุณใช้เวอร์ชันของ
CVS ที่ไม่ออกคอมมิต

โปรดทราบด้วยว่าที่เก็บ CVS จะต้องได้รับการวิเคราะห์ใหม่ทั้งหมด แม้จะเป็นส่วนที่เพิ่มขึ้น
ทิ้ง; ดังนั้นเวลาประมวลผลและความต้องการหน่วยความจำจะเพิ่มขึ้นตามพื้นที่เก็บข้อมูลทั้งหมด
ขนาดแม้ว่าช่วงการรายงานที่ร้องขอของการถ่ายโอนข้อมูลส่วนเพิ่มจะมีขนาดเล็ก

ปัญหาเหล่านี้ไม่สามารถแก้ไขได้ใน cvs-fast-export สิ่งเหล่านี้มีอยู่ใน CVS

CVS-FAST-ส่งออก สิ่งที่ต้องมี AND ข้อ จำกัด


เนื่องจากโค้ดได้รับการออกแบบมาเพื่อจัดการกับชุดข้อมูลขนาดใหญ่ จึงได้รับการปรับให้เหมาะสมสำหรับ
เครื่อง 64 บิตและไม่ได้พยายามเป็นพิเศษเพื่อให้ 32 บิตสะอาด หลากหลาย
ตัวนับอาจล้นหากคุณลองใช้เพื่อยกที่เก็บขนาดใหญ่บนเครื่อง 32 บิต

สาขาที่เกิดขึ้นในส่วนย่อยของต้นแบบที่วิเคราะห์ไม่ได้รับการแก้ไขอย่างถูกต้อง
แทน ประวัติที่ไม่ปะติดปะต่อทั้งหมดจะถูกสร้างขึ้นซึ่งมีการแก้ไขสาขาและ
ผู้ปกครองทุกคนกลับไปที่ราก

สาขาผู้จำหน่าย CVS เป็นแหล่งของปัญหา การผสมผสานที่แปลกพอสมควรของการนำเข้า
และการดัดแปลงในพื้นที่จะแปลได้ไม่ดี ทำให้เกิดเนื้อหาที่ไม่ถูกต้องในต้นแบบและ
ที่อื่น ๆ

ผู้ส่งออก CVS รายอื่น ๆ พยายามหรือพยายามอนุมานชุดการเปลี่ยนแปลงจากแท็กที่ใช้ร่วมกัน
เมื่อข้อมูลเมตาของความคิดเห็นไม่ตรงกันอย่างสมบูรณ์ อันนี้ไม่ได้; นักออกแบบตัดสินว่า
เพื่อข้ามกรณีการติดแท็ก CVS ทางพยาธิวิทยามากเกินไป

โปรแกรมพยายามทำสิ่งที่มีประโยชน์ในกรณีที่แท็กเกิดขึ้นในชุดของ
การแก้ไขที่ไม่สอดคล้องกับคอมมิต gitspace ใด ๆ ในกรณีนี้เป็นสาขาที่แท็ก
มีการสร้างคอมมิตเพียงอันเดียว รับรองว่าคุณสามารถตรวจสอบชุดของไฟล์ได้
มีเนื้อหา CVS สำหรับแท็ก รูทของแบรนช์เล็ตคือคอมมิต gitspace
โดยที่การแก้ไข CVS ล่าสุดในชุดที่แท็กเกิดขึ้นก่อน นี่คือความมุ่งมั่นที่
แท็กจะชี้ไปที่ความไม่สมบูรณ์ของมันถูกละเลย

เมื่อรัน multithreaded มีกรณี edge ที่พฤติกรรมของโปรแกรมคือ
ไม่กำหนด หากแท็กเดียวกันดูเหมือนว่าควรกำหนดให้กับสองที่แตกต่างกัน
gitspace คอมมิตด้วยการประทับเวลาเดียวกันซึ่งแท็กจริง ๆ แล้วจะถูกสุ่ม

cvs-fast-export ออกแบบมาเพื่อทำการแปลด้วยโครงสร้างระดับกลางทั้งหมดใน
หน่วยความจำในการผ่านครั้งเดียว สิ่งนี้ตรงกันข้ามกับ cvs2git(1) ซึ่งใช้หลายรอบและ
โครงสร้างระดับกลางของวารสารไปยังดิสก์ ข้อเสียคือ cvs-fast-export มีมาก
เร็วกว่า cvs2git แต่จะล้มเหลวโดยมีข้อผิดพลาดหน่วยความจำไม่เพียงพอบนที่เก็บ CVS ขนาดใหญ่
มากพอที่จะล้นหน่วยความจำกายภาพของคุณ ในทางปฏิบัติ คุณไม่น่าจะก้าวข้ามขีดจำกัดนี้ไปได้
บนเครื่องที่มี RAM 32GB และแน่นอนว่าไม่ใช่ 64GB พยายามทำ
การแปลงขนาดใหญ่ในพื้นที่ที่อยู่แบบ 32 บิต (4GB) นั้นไม่น่าจะเป็นไปได้
จบลงด้วยดี

ข้อกำหนดในการจัดเก็บข้อมูลชั่วคราวของโปรแกรมอาจมีขนาดใหญ่กว่าเล็กน้อย มันต้องซึมซับ
แต่ละไฟล์หลักทั้งหมดหนึ่งครั้งเพื่อประกอบเดลต้าและสร้างเวอร์ชัน
สแนปชอตที่จะกลายเป็นสแนปชอต การใช้ตัวเลือก -t จะคูณจำนวนที่คาดหวัง
ของการจัดเก็บชั่วคราวตามจำนวนเธรด ใช้อย่างระมัดระวังเพราะง่ายต่อการ
ผลักดันการใช้หน่วยความจำให้สูงมากจนโอเวอร์เฮดโอเวอร์เฮดได้กำไรจากการไม่ต่อเนื่อง
การปิดกั้น I/O

ในโหมด -C โปรแกรมยังต้องการพื้นที่ดิสก์ชั่วคราวที่เทียบเท่ากับผลรวมของ
ขนาดของการแก้ไขทั้งหมดในไฟล์ทั้งหมด สิ่งนี้ไม่เป็นเช่นนั้นในโหมด -F

สำหรับฮาร์ดแวร์พีซีในสต็อกในปี 2014 การส่งออก cvs-fast-export มีความเร็วในการประมวลผลสูงถึง 64K
CVS คอมมิตต่อนาทีบนที่เก็บจริง ประสิทธิภาพของเวลาเป็นหลักที่ผูกไว้กับ I/O และ
สามารถปรับปรุงได้โดยใช้ SSD

ซานิตี้ การตรวจสอบ


หลังจากแปลงแล้ว ควรทำตามขั้นตอนการตรวจสอบต่อไปนี้:

1. หากคุณทำการแปลงโดยตรงด้วย cvs-fast-export แทนที่จะใช้ cvsconvert
ใช้ diff(1) ด้วยตัวเลือก -r เพื่อเปรียบเทียบการเช็คเอาต์ CVS head กับการชำระเงินของ
แปลงที่เก็บ ความแตกต่างเพียงอย่างเดียวที่คุณควรเห็นคือความแตกต่างที่เกิดจากคีย์เวิร์ด RCS
การขยาย, .cvsignore ยก, และรายการไม่ตรงกันเนื่องจาก CVS ไม่ติดตามไฟล์
เสียชีวิตได้ค่อนข้างถูกต้อง หากไม่เป็นความจริง คุณอาจพบจุดบกพร่องใน
cvs-fast-export; โปรดรายงานพร้อมสำเนา repo CVS

2. ตรวจสอบที่เก็บที่แปลด้วย ศัลยแพทย์(1) มองหา (โดยเฉพาะ) สำหรับ
แท็กผิดตำแหน่งหรือการรวมสาขา บ่อยครั้งสิ่งเหล่านี้สามารถซ่อมแซมได้ด้วยมือเพียงเล็กน้อย
ความพยายาม. ข้อบกพร่องเหล่านี้ทำ ไม่ จำเป็นต้องบ่งบอกถึงข้อบกพร่องใน cvs-fast-export พวกเขาอาจจะ
บ่งชี้ความผิดปกติที่ตรวจไม่พบก่อนหน้านี้ในประวัติ CVS อย่างไรก็ตาม รายงาน
อาจช่วยปรับปรุง cvs-fast-export

ข้างต้นเป็นเวอร์ชันย่อของส่วนหนึ่งของ DVCS Migration HOWTO; เรียกดูเพิ่มเติม

กลับ มูลค่า


0 หากพบไฟล์ทั้งหมดและแปลงสำเร็จ มิฉะนั้น 1 รายการ

ข้อผิดพลาด ข้อความ


ข้อความส่วนใหญ่ที่ส่งออก cvs-fast-export มีความชัดเจนในตัวเอง นี่คือบางส่วนที่
ไม่ได้ ตรงที่เขียนว่า "เช็คหัว" ให้ตรวจสุขภาพจิตกับการแก้ไขหัว

ไม่สามารถกำหนดแท็กให้กับคอมมิตได้
แท็ก RCS/CVS เป็นแท็กต่อไฟล์ ไม่ใช่สำหรับการแก้ไข หากนักพัฒนาไม่ระมัดระวังใน
การใช้การแท็ก ทำให้ไม่สามารถเชื่อมโยงแท็กกับชุดการเปลี่ยนแปลงใดๆ ได้
cvs-fast-export นั้นแก้ไขได้ เมื่อสิ่งนี้เกิดขึ้น cvs-fast-export จะออกสิ่งนี้
คำเตือนและแท็กชื่อจะถูกยกเลิก

เด็กกระทำความผิดก่อนผู้ปกครอง
เกิดข้อผิดพลาดในการส่งออก canonicalization อาจเกิดจาก CVS
กระทำการประทับเวลาในลำดับที่ไม่ถูกต้องสำหรับความสัมพันธ์ระหว่างพ่อแม่และลูก ลอง
ตัวเลือก -F

ทิ้งกิ่งที่ไม่ได้แท็กที่ตายแล้ว
การวิเคราะห์พบสาขา CVS ที่ไม่มีแท็กซึ่งประกอบด้วยการแก้ไขที่ตายแล้วทั้งหมด เหล่านี้
ไม่สามารถมองเห็นได้ในสถานะการเก็บถาวรของ CVS ณ เวลาแปลง มันคือ
เป็นไปได้ว่าพวกเขาอาจถูกมองเห็นเป็นเนื้อหาสาขาในบางจุดใน
อดีตของที่เก็บ แต่ไม่มีแท็กระบุสถานะที่เป็นไปไม่ได้
บูรณะ.

คำเตือน - สาขาที่ไม่มีชื่อ
สาขา CVS ที่มีการแก้ไขแบบสดไม่มีป้ายกำกับหลัก ป้ายชื่อ "-UNNAMED-BRANCH"
ต่อท้ายชื่อของสาขาหลักจะถูกสร้างขึ้น

คำเตือน - ไม่มีการสร้างสาขาหลัก
cvs-fast-export ไม่สามารถระบุสาขาเริ่มต้น (HEAD) ดังนั้นจึงไม่มี
"อาจารย์" ในการแปลง; สิ่งนี้จะสร้างความสับสนให้กับ git และ VCSes อื่น ๆ อย่างจริงจัง
เมื่อพวกเขาพยายามนำเข้ากระแสข้อมูลขาออก คุณอาจสามารถระบุและเปลี่ยนชื่อ a
สาขาหลักโดยใช้ ศัลยแพทย์(1)

คำเตือน - xxx ใหม่กว่า yyy
ในช่วงต้นของการวิเคราะห์ไฟล์ต้นแบบ CVS ลำดับการจัดเรียงเวลาของเดลตาไม่ตรงกัน
ลำดับทอพอโลยีที่กำหนดโดยหมายเลขการแก้ไข สาเหตุที่เป็นไปได้มากที่สุดของสิ่งนี้
คือนาฬิกาเอียงระหว่างไคลเอ็นต์ในเวอร์ชัน CVS ที่เก่ามาก โปรแกรมจะพยายาม
แก้ไขโดยแก้ไขวันที่แก้ไขคำสั่งที่ไม่อยู่ในลำดับให้เป็นไปตามนั้น
ของพาเรนต์ แต่สิ่งนี้อาจไม่สามารถป้องกันข้อผิดพลาดด้านเวลาอื่น ๆ ในภายหลังในการวิเคราะห์

ทิปคอมมิชชันที่เก่ากว่าการเข้าร่วมสาขาที่กำหนด
ปัญหาที่คล้ายคลึงกันกับ "ใหม่กว่า" ที่ถูกรายงานในระยะต่อมา เมื่อไฟล์สาขา
กำลังถูกถักเป็นกิ่งก้านชุดการเปลี่ยนแปลง สาขา CVS หนึ่งสาขาในคอลเล็กชันกำลังจะเป็น
รวมเข้ากับสาขา gitspace มีการส่งคำแนะนำที่เก่ากว่าการคอมมิตแรกสุดที่เป็น
aa parent ในเคล็ดลับ (อื่น ๆ ) ในคอลเล็กชัน กิ่งก้านแห่งการผจญภัยถูกตัดขาด
ปิด

ผู้ปกครองบางคนกระทำการที่อายุน้อยกว่าเด็ก
อาจบ่งชี้ว่า cvs-fast-export รวมชุดการเปลี่ยนแปลงบางอย่างในลำดับที่ไม่ถูกต้อง
อาจไม่เป็นอันตราย แต่ตรวจสอบหัว.

คำเตือน - จุดสาขาช้ากว่าสาขา
ในช่วงท้ายของการวิเคราะห์ เมื่อเชื่อมต่อสาขากับผู้ปกครองในชุดการแก้ไข DAG
วันที่คอมมิตของรูทคอมมิชชันของสาขาจะเร็วกว่าวันที่ของพาเรนต์
มันเชื่อมต่อกับ อาจเป็นอาการนาฬิกาเอียงหรืออาจชี้ไปที่
ข้อผิดพลาดในการวิเคราะห์โทโพโลยีของโปรแกรม ตรวจสอบการกระทำใกล้เข้าร่วมกับ
ศัลยแพทย์(1); สาขาอาจต้องได้รับการฝึกฝนใหม่ด้วยมือ

เดลต้ามากกว่าหนึ่งที่มีหมายเลขXYZ
ประวัติ CVS มีหมายเลขเดลต้าของไฟล์ที่ซ้ำกัน ไม่ควรเกิดขึ้นและอาจ
บ่งชี้ถึงไฟล์เก็บถาวร CVS ที่เสียหาย หากมี ตรวจสอบหัว

{revision|patch} ที่มีความลึกคี่
ไม่ควรเกิดขึ้น เฉพาะหมายเลขสาขาเท่านั้นที่ควรมีความลึกคี่ ไม่ใช่ file
หมายเลขเดลต้าหรือแพตช์ อาจบ่งบอกถึงไฟล์เก็บถาวร CVS ที่เสียหาย ตรวจสอบหัว

แท็กที่ซ้ำกันในต้นแบบ CVS โดยไม่สนใจ
CVS ต้นแบบมีหลายอินสแตนซ์ของแท็กเดียวกันที่ชี้ไปที่เดลตาไฟล์ที่ต่างกัน
อาจเป็นข้อผิดพลาดโอเปอเรเตอร์ CVS และค่อนข้างไม่เป็นอันตราย แต่ตรวจสอบว่าแท็กของ
การอ้างอิงในการแปลงทำให้รู้สึก

แท็กหรือชื่อสาขาว่างเปล่าหลังจากการฆ่าเชื้อ
ข้อผิดพลาดร้ายแรง: ชื่อแท็กว่างเปล่าหลังจากลบอักขระทั้งหมดที่ผิดกฎหมายสำหรับ git ออก
อาจบ่งชี้ว่าไฟล์ RCS เสียหาย

หมายเลขการแก้ไขยาวเกินไป เพิ่ม CVS_MAX_DEPTH
ข้อผิดพลาดร้ายแรง: บัฟเฟอร์ภายในสั้นเกินไปที่จะจัดการกับการแก้ไข CVS ใน repo
เพิ่มค่าคงที่นี้ใน cvs.h และสร้างใหม่ คำเตือน: สิ่งนี้จะเพิ่มการใช้หน่วยความจำ
และชะลอการทดสอบอย่างมาก

หมายเลขลำดับสแนปชอตมากเกินไป โปรดขยาย serial_t
ข้อผิดพลาดร้ายแรง: จำนวนสแน็ปช็อตของไฟล์ใน repo CVS เกิน internal
เคาน์เตอร์. สร้าง cvs-fast-export ใหม่จากแหล่งที่มาด้วย serial_t ที่กว้างขึ้นใน cvs.h
คำเตือน: สิ่งนี้จะเพิ่มขนาดชุดทำงานอย่างมาก

สาขามากเกินไป ขยายสาขาcount_t
ข้อผิดพลาดร้ายแรง: จำนวนสาขาที่สืบเชื้อสายมาจากการคอมมิตเดียวที่เกินและ
เคาน์เตอร์ภายใน สร้าง cvs-fast-export ใหม่จากแหล่งที่มาด้วย branchcount_t . ที่กว้างขึ้น
แก้ไขเป็น cvs.h คำเตือน: สิ่งนี้จะเพิ่มขนาดชุดทำงานอย่างมาก

ข้อผิดพลาดภายใน - วงจรสาขา
cvs-fast-export พบวัฏจักรในขณะที่การเรียงลำดับทอพอโลยีกระทำโดยลิงค์พาเรนต์ นี้
ไม่ควรเกิดขึ้นและอาจบ่งบอกถึงข้อผิดพลาดภายในที่ร้ายแรง: โปรดแจ้งข้อผิดพลาด
แจ้ง

ข้อผิดพลาดภายใน - แท็กหาย
การวิเคราะห์ล่าช้า (หลังจากการรวมเซ็ตการแก้ไข) แท็กสูญเสียการอ้างอิงการคอมมิต นี้
ไม่ควรเกิดขึ้นและอาจบ่งบอกถึงข้อผิดพลาดภายใน: โปรดแจ้งข้อผิดพลาด
แจ้ง

รายงาน ข้อบกพร่อง


รายงานจุดบกพร่องไปยัง Eric S. Raymond[ป้องกันอีเมล]>. หน้าโครงการอยู่ที่
http://catb.org/~esr/cvs-fast-export

ใช้ cvs-fast-export ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

คำสั่ง Linux

Ad




×
โฆษณา
❤️ช้อป จอง หรือซื้อที่นี่โดยไม่เสียค่าใช้จ่าย ช่วยให้บริการต่างๆ ฟรี