cvs-fast-export - מקוון בענן

זוהי הפקודה cvs-fast-export שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


cvs-fast-export - היסטוריית ייצוא מהיר ממאגר CVS או אוסף RCS.

תַקצִיר


cvs-fast-export [-h] [-C] [-F] [-a] [-w פלומה] [-g] [-l] [-v] [-q] [-V] [-T] [-p] [-P] [-i
נתונים] [-ק הרחבה] [-א מפת מחבר] [-t threads] [-R revmap] [--מנתח מחדש] [-ה מרחוק]
[-ס תחילית סטריפ]

תיאור


cvs-fast-export מנסה לקבץ את ההתחייבויות והתגיות לכל קובץ באוסף קבצי RCS או
מאגר פרויקטים של CVS לתוך ערכת שינויים לכל פרויקט עם מטא נתונים נפוצים, ב-
סגנון של Subversion ומערכות בקרת גרסאות מאוחרות יותר.

כלי זה עדיף להשתמש בשילוב עם מנתח מחדש(1). cvs רגיל-מהיר-יצוא
המרות מכילות סוגים שונים של מאובנים שהמנתח מחדש טוב לניקוי. לִרְאוֹת
ה-DVCS Migration HOWTO כדי ללמוד על שלבי בדיקת השפיות והליטוש הנדרשים
להמרה ממש איכותית, כולל הרמת התייחסות וסוגים שונים של
ניקוי חפצים.

אם ארגומנטים מסופקים, התוכנית מניחה שכולם מסתיימים בסיומת ",v" הם
אם לא מסופקים ארגומנטים, התוכנה קוראת שמות קבצים
מ-stdin, אחד לכל שורה. מדלגים על ספריות וקבצים שאינם מסתיימים ב-",v". (אבל ראה
התיאור של ה-P עבור איך לשנות התנהגות זו.)

קבצים מ-Unix CVS או CVS-NT מטופלים. אם לאוסף קבצים יש commitid
שדות, ערכות שינויים ייבנו בצורה מהימנה באמצעות אלה.

במצב ברירת המחדל, שיוצר זרם ייצוא מהיר בסגנון git לפלט סטנדרטי:

· הקידומת הניתנת באמצעות האפשרות -s או, אם האפשרות מושמטת, הנפוצה הארוכה ביותר
הקידומת של הנתיבים נמחקת מכל נתיב.

· קבצים בספריות CVS Attic ו-RCS מטופלים כאילו ה-"Attic/" או "RCS/"
חלק מהנתיב נעדר. זה בדרך כלל משחזר את ההיסטוריה של קבצים שהיו
נמחק.

· ההרשאות בכל ה-filops הקשורות לקובץ מסוים יהיו נשלטות על ידי
הרשאות על המאסטר המתאים. אם סיביות ההפעלה במאסטר פועלת,
לכל ה-filops שלו יהיו 100755 הרשאות; אחרת 100644.

· קבוצה של פעולות קבצים מתלכדת לכדי ערכת שינויים אם אחת (א) כולן חולקות
אותו commitid, או (ב) לכולם אין commitid אלא הערות שינוי זהות, מחברים,
ותאריכי שינוי בתוך החלון המוגדר על ידי פרמטר time-fuzz. בניגוד
חלק מיצואנים אחרים, לא נעשה ניסיון להפיק שינויים מתגים משותפים.

· התחייבויות מונפקות לפי סדר הזמן אלא אם ה-cvs-fast-export מזהה שהורה כלשהו
צעיר מהילד שלו (זה לא סביר אבל אפשרי במקרים של שעון חמור
לְסַלֵף). במקרה כזה תראה אזהרה על שגיאת תקן וסדר הפליטה הוא
מובטח נכון מבחינה טופולוגית, אך אחרת לא צוין (וכפוף ל
שינוי בגרסאות עתידיות של תוכנית זו).

· תגי CVS הופכים לתגיות git קלות כאשר ניתן לשייך אותן באופן חד משמעי ל-a
ערכת שינויים. אם אותו תג מצורף לקובץ deltas שנפתרים למספר רב
ערכות שינויים, זה מדווח כאילו מצורף לאחרון שבהם.

· שמו של סניף HEAD ל אב.

· שמות תגים וענפים אחרים מחוטאים כדי להיות חוקיים עבור git; הדמויות ~^\*? הם
הוסר.

· מאחר שלקבצי .cvsignore יש תחביר התואם כלפי מעלה לזה של קבצי .gitignore,
שמם שונה. על מנת לדמות את התנהגות ההתעלמות המוגדרת כברירת מחדל של CVS, אלה
ברירות המחדל מופיעות לפני כתמי בסיס .cvsignore ששמם שונה ל-.gitignore, ושורש
.gitignore המכיל את ברירות המחדל נוצר אם לא קיימים בולמים כאלה.

עיין בסעיף מאוחר יותר על מגבלות RCS/CVS למידע נוסף על מקרי קצה ו
בעיות המרה.

תוכנית זו אינה תלויה באף אחד ממטא נתונים של CVS המוחזקים מחוץ לאדם
קבצי תוכן (למשל תחת CVSROOT).

המשתנה TMPDIR מכבד ומשמש בעת יצירת ספרייה זמנית שבה
לאחסן את תוכן הקובץ במהלך העיבוד.

אפשרויות


-h
הצג סיכום שימוש.

-w פלומה
הגדר את מקדם ה-fazz חותמת הזמן לזיהוי ערכות תיקון בשניות. ברירת המחדל היא
300 שניות. אפשרות זו אינה רלוונטית עבור ערכות שינויים עם commitids.

-k
ציין הרחבת מילת מפתח RCS/CVS. אתה יכול לציין כל אחת מהרחבת מילות המפתח CVS
סוגים: "kv" (ערך מילת מפתח), "kvl" (לוקר מילת מפתח), "k" (מילת מפתח בלבד), "v"
(ערך בלבד), "o" (ללא הרחבה), או "b" (בינארי - ללא הרחבה, ללא סיום שורה
הֲמָרָה). הכללים של CVS הם: (1) אם למאסטר הוגדר -kb במילת המפתח הפנימית שלו
שדה, עשה זאת, אחרת (2) אם הוגדר סוג הרחבה בשורת הפקודה, עשה
שאם לא כן (3) אם שדה מילת המפתח הפנימי של הקובץ מוגדר, עשה זאת, אחרת
השתמש ב-kv. cvs-fast-export מתנהג מעט שונה; ברירת המחדל היא kb במקום
kkv, kvl מטופל כמו kv, ו-ko מטופל כמו kb (כלומר, אין סוף שורה
נורמליזציה מבוצעת אי פעם).

-g
צור תמונה של גרף ה-commit בשפת הסימון DOT המשמשת את graphviz
כלים, במקום יצוא מהיר.

-l
אזהרות בדרך כלל עוברות לשגיאה רגילה. אפשרות זו, שלוקחת שם קובץ, מאפשרת
תוכל להפנות אותם לקובץ> נוח עם האפשרות -p.

-a
זרוק רשימה של מזהי מחבר שנמצאו במאגר, במקום ייצוא מהיר.

-C
כפה סדר קנוני (זהה לזה של git-fast-export) בזרם הנפלט. כתמים הם
נפלטים מאוחר ככל האפשר לפני ההתחייבויות המחייבות אותם. זה מפחית
תפוקה של בערך פקטור של שניים. מאגרים שבהם סדר הזמן של commits
אינו עולה בקנה אחד עם הסדר הטופולוגי שלהם ייצור יצוא מהיר פגום
זרמים במצב -C; אלה יקרסו את היבואן של Git.

-F
לכפות סדר מהיר. כתמים נפלטים תחילה, ואז מתחייבים.

-A מפת מחבר
החל קובץ מפת מחבר על שורות הייחוס. כל שורה חייבת להיות מהצורה

ferd = Ferd J. Foonlyfoonly@foo.com> אמריקה/שיקגו

ויוחל למיפוי שם המשתמש של יוניקס פרד לזהות המשתמש בסגנון DVCS
שצוין אחרי סימן השוויון. שדה אזור הזמן (אחרי > ורווח לבן) הוא
אופציונלי ו (אם קיים) משמש להגדרת היסט אזור הזמן שיוצמד ל-
תַאֲרִיך; פורמטים מקובלים עבור שדה אזור הזמן הם כל דבר שיכול להיות ב-TZ
משתנה סביבה, כולל [+-]הממ היסט. רווח לבן סביב סימן השוויון
מופשט. שורות המתחילות ב-# או שאינן מכילות סימן שוויון הן בשקט
התעלם.

-R revmap
כתוב מפת גרסה לשם קובץ הארגומנט שצוין. כל שורה במפת הגרסה
מורכב משלושה שדות מופרדים ברווחים לבנים: שם קובץ, מספר גרסת RCS ו-
הסימן של המחוייבות שאליו הוקצה אותו צמד שם קבצים-גרסה. לא עובד
עם -g.

-v
הצג הודעות התקדמות מילוליות שמעניינות בעיקר מפתחים.

-q
רוץ בשקט, דחיק הודעות אזהרה על היעדר committids וקטין אחר
בעיות שהתוכנית יכולה בדרך כלל לפצות עליהן, אך עשויות להצביע עליהן
בעיות המרה. מיועד לשימוש עם cvsconvert, שעושה את הנכונות שלו
בודק.

-T
לכפות תאריכים דטרמיניסטיים לבדיקת רגרסיה. לכל ערכת תיקונים תהיה א
תאריך מיוחס מונוטוני המחושב מהסימן שלו בזרם הפלט - ה
ערך סימון כפול חלון זמן הביצוע כפול שתיים.

- מנתח מחדש
שלח עבור כל commit רשימה של קובץ ה-CVS: צמדי גרסה המרכיבים אותו כסגנון bzr
commit נכס בשם "cvs-revisions". מגרסה 2.12 ואילך, מנתח מחדש(1) יכול
לפרש את אלה ולהשתמש בהם כרמזים להרמת התייחסות.

-- embed-id
הוסף לכל הערת התחייבות זיהוי של התחייבויות ה-CVS שתרמו להן
זה.

-V
שלח את גרסת התוכנית וצא.

-e מרחוק
שמות סניפים מיוצאים מקבלים קידומת refs/remotes/מרחוק במקום שופטים/ראשים,
גורם לייבוא ​​להיראות כאילו מגיע מהשלט עם השם.

-s תחילית סטריפ
הסר את הקידומת הנתונה במקום הקידומת הנפוצה הארוכה ביותר

-t ספירת חוטים
הפעלת multithreaded מגדילה את טביעת הזיכרון של התוכנית באופן יחסי ל-
מספר שרשורים, אך פירוש הדבר שההמרה עשויה לפעול בפחות זמן כולל בגלל קלט/פלט
פעולה הכוללת קובץ אב אחד לא תחסום עיבוד עתיר מחשוב של
אחרים. כברירת מחדל, התוכנית מניחה באופן שמרני שהיא יכולה להשתמש בשני חוטים לכל
מעבד זמין. אתה יכול להשתמש באפשרות זו כדי להגדיר את מספר השרשורים; הערך 0
מאלץ עיבוד רציף ללא השחלה.

-p
אפשר דיווח התקדמות. זה גם משליך סטטיסטיקה (זמן חלוף וגודל של
תושב מקסימלי) עבור מספר נקודות בריצת ההמרה.

-P
בדרך כלל cvs-fast-export ידלג על כל שם קובץ המוצג כארגומנט או ב-stdin
שאינו מסתיים עם סיומת RCS/CVS ",v", וגם יתעלם מ-pathnamere
המכילה את המחרוזת CVSROOT (זה מונע מטרדים בעת ריצה מ-a
ספריית CVS ברמה העליונה). קריאה קפדנית של RCS מאפשרת למאסטרים ללא ה-,v
סיומת. אפשרות זו מגדירה מצב מופקר, ומשביתה את שני הבדיקות.

-i נתונים
הפעל מצב dump מצטבר. מתחייב רק עם תאריך אחרי זה שצוין על ידי
טיעונים נפלטים. כל שורש ענף במזבלה המצטברת מעוטר ב
קסם git-stream שכאשר יפרש בהקשר של מאגר חי, יתחבר
אותו סניף לכל ענף בעל אותו שם. התאריך צפוי להיות RFC3339
תואם (למשל yy-mm-ddThh:mm:ssZ) או זמן יוניקס שלם בשניות.

אם לא צוינו -F או -C, cvs-fast-export יבחר מצב המבוסס על
גודל מאגר - סדר קנוני עבור מאגרים קטנים, מהיר עבור גדולים. כלים כי
לצרוך זרמי git-fast-import לא צריך להיות אכפת; התנהגות זו מיועדת לאחור
תאימות.

דוגמא


קריאה טיפוסית מאוד תיראה כך:

למצוא . | cvs-fast-export >stream.fi

הפצת cvs-fast-export שלך אמורה לספק גם cvssync(1), כלי להבאת CVS
מאסטרים ממאגר מרוחק. השימוש בהם יחד ייראה בערך כך:

cvssync anonymous@cvs.savannah.gnu.org:/sources/groff groff
למצוא גרוף | cvs-fast-export >groff.fi

דיווח התקדמות יכול להרגיע אם אתה מצפה שהמרה תפעל למשך זמן מה. זה
יפעיל את אחוזי ההשלמה ככל שההמרה תתקדם ויציג תזמונים מתי
בוצע.

חבילת cvs-fast-export מכילה סקריפט עטיפה בשם cvsconvert זה שימושי עבור
הפעלת המרה ובדיקה אוטומטית של התוכן שלה מול ה-CVS המקורי.

RCS/CVS מגבלות


תרגום מאגרי RCS/CVS למודל ה-DVCS הגנרי המתבטא באמצעות זרמי ייבוא ​​הוא
לא רק קשה ומבולגן, יש מקרים מוזרים של RCS/CVS שלא יכולים להיות כהלכה
תורגם בכלל. cvs-fast-export ינסה להזהיר אותך על מקרים אלה במקום
מייצרים בשקט תרגומים שבורים או לא שלמים, אבל יש דרקונים. אנחנו ממליצים
כמה אמצעי זהירות תחת בדיקת שפיות.

CVS-NT וגרסאות של GNU CVS לאחר 1.12 (2004) הוסיפו שינוי commit-id לקובץ
מטא נתונים. חלקים ישנים יותר של היסטוריית CVS ללא אלה פגיעים לבעיות שונות
נגרמת על ידי הטיית שעון בין לקוחות; פעם זה היה נפוץ יחסית עבור מרובים
סיבות, כולל שימוש פחות נרחב בסנכרון שעון NTP. cvs-fast-export יהיה
להזהיר אותך ("מתחייב לפני תאריך זה חוסר committids") כאשר הוא רואה סעיף כזה אצלך
הִיסטוֹרִיָה. כאשר זה קורה, אזהרות אלה חלות:

· אם חותמות הזמן של התחייבויות במאגר ה-CVS לא היו יציבות מספיק כדי להשתמש בהן
הזמנה מתחייבים, שינויים עשויים להיות מדווחים בסדר שגוי.

· אם סדר חותמת הזמן של קבצים שונים חוצה את סדר הגרסה בתוך
חלון זמן התאמת התחייבויות, ייתכן שסדר ההתחייבויות שדווחו שגוי.

עוד תכונה אחת המושפעת מ-commitids היא היציבות של ערכות שינויים ישנים מתחת
השלכה מצטברת. תחת יישום של CVS הנפקת commitids, התחייבויות CVS חדשות הן
מובטח שלא ישנה את גזירת השינויים של cvs-fast-export מהיסטוריה קודמת;
לפיכך, עדכון מאגר DVCS יעד עם השלכות מצטברות מ-CVS חי
ההתקנה תעבוד. גם אם בחלקים ישנים יותר של ההיסטוריה אין קוממיטידים,
ההמרות יהיו יציבות. ערבות יציבות זו תאבד אם אתה משתמש בגרסה של
CVS שאינו מנפיק commitids.

כמו כן, שים לב שיש לנתח מחדש מאגר CVS לחלוטין אפילו עבור מצטבר
מזבלות; לפיכך, דרישות זמן העיבוד והזיכרון יעלו עם המאגר הכולל
גודל גם כאשר מרווח הדיווח המבוקש של ה-dump המצטבר קטן.

לא ניתן לתקן בעיות אלו ב-cvs-fast-export; הם טבועים ב-CVS.

CVS-FAST-Export דרישות ו מגבלות


מכיוון שהקוד מיועד להתמודדות עם מערכי נתונים גדולים, הוא עבר אופטימיזציה עבורו
מכונות 64 סיביות ולא נעשה מאמץ מיוחד לשמור על 32 סיביות נקיות. שׁוֹנִים
המונים עלולים לעלות על גדותיהם אם תנסה להשתמש בו כדי להרים מאגר גדול במכונת 32 סיביות.

ענפים המתרחשים רק בתת-קבוצה של המאסטרים המנותחים אינם נפתרים בצורה נכונה;
במקום זאת, תיווצר היסטוריה מנותקת לחלוטין המכילה את תיקוני הסניף ו
כל ההורים חוזרים לשורש.

סניפי ספקי CVS הם מקור לצרות. שילובים מוזרים מספיק של יבוא
ושינויים מקומיים יתורגמו בצורה גרועה, וייצרו תוכן שגוי במאסטר ו
במקום אחר.

חלק מיצואני CVS אחרים מנסים, או ניסו, להסיק ערכי שינויים אפילו מתגים משותפים
כאשר מטא נתונים של הערות אינם תואמים בצורה מושלמת. זה לא; המעצבים שופטים את זה
למעוד יותר מדי מקרי תיוג CVS פתולוגיים.

התוכנית אכן מנסה לעשות משהו שימושי במקרים שבהם תג מתרחש בסט של
גרסאות שאינן תואמות לאף commit של gitspace. במקרה זה סניף מתויג
המכיל רק commit אחד נוצר, מה שמבטיח שאתה יכול לבדוק קבוצה של קבצים
המכיל את תוכן ה-CVS עבור התג. השורש של הענף הוא ה-gitspace commit
היכן מתרחשת לראשונה גרסת ה-CVS האחרונה בקבוצה המתויגת; זו ההתחייבות
תג היה מצביע על חוסר השלמות שלו.

בעת הפעלת multithreaded, יש מקרה קצה שבו התנהגות התוכנית היא
לא דטרמיניסטית. אם אותו תג נראה כמו יש להקצות אותו לשניים שונים
commits של gitspace עם אותה חותמת זמן, התג שהוא באמת נוחת עליו יהיה אקראי.

cvs-fast-export נועד לבצע תרגום עם כל מבני הביניים שלו
זיכרון, במעבר אחד. זה מנוגד ל cvs2git(1), המשתמש במספר מעברים ו
יומן מבני ביניים לדיסק. הפשרות הן ש-cvs-fast-export זה הרבה
מהיר יותר מ-cvs2git, אך ייכשל עם שגיאה מחוץ לזיכרון במאגרי CVS גדולים
מספיק כדי להציף את הזיכרון הפיזי שלך. בפועל, לא סביר שתדחוף את הגבול הזה
במכונה עם 32GB של זיכרון RAM ולמעשה בטוח שלא עם 64GB. ניסיונות לעשות
המרות גדולות במרחב כתובות של 32 סיביות בלבד (4GB) אינן סבירות, מצד שני,
להסתיים טוב.

דרישות האחסון הזמני של התוכנית יכולות להיות הרבה יותר גדולות; זה חייב להיסחף פנימה
כל קובץ מאסטר שלם פעם אחת על מנת לבצע דלתא assembly ולייצר את הגרסה
תצלומים שיהפכו לתמונות. שימוש באפשרות -t מכפיל את הסכום הצפוי
של אחסון חולף הנדרש לפי מספר החוטים; השתמש בזהירות, מכיוון שקל לעשות זאת
דחף את השימוש בזיכרון כל כך גבוה עד שהחלפה תקורה גוברת על הרווחים שלא כל הזמן
חסימה ב-I/O.

במצב -C, התוכנית דורשת גם שטח דיסק זמני שווה ערך לסכום של
גדלים של כל הגרסאות בכל הקבצים. זה לא כך במצב -F.

על חומרת PC במלאי בשנת 2014, cvs-fast-export משיג מהירויות עיבוד של למעלה מ-64K
CVS מתחייב לדקה על מאגרים אמיתיים. ביצועי זמן קשורים בעיקר ל-I/O
ניתן לשפר על ידי הפעלה על SSD.

שְׁפִיוּת בודק


לאחר ההמרה, מומלץ לבצע את שלבי האימות הבאים:

1. אם הרצתם את ההמרה ישירות עם cvs-fast-export במקום באמצעות cvsconvert,
להשתמש הבדל(1) עם אפשרות -r להשוות קופה ראשית של CVS עם קופה של
מאגר שהומר. ההבדלים היחידים שאתה צריך לראות הם אלה הנובעים ממילת מפתח RCS
הרחבה, הרמת .cvsignore ואי התאמה מניפסט עקב קובץ CVS לא מעקב
מוות די נכון. אם זה לא נכון, ייתכן שמצאת באג ב
cvs-fast-export; אנא דווח על כך עם עותק של ריפו של CVS.

2. בדוק את המאגר המתורגם עם מנתח מחדש(1) מחפש (במיוחד) אחר
תגיות שגוי או הצטרפות ענפים. לעתים קרובות ניתן לתקן אותם באופן ידני עם מעט
מַאֲמָץ. הפגמים האלה כן לֹא מרמזים בהכרח על באגים ב-cvs-fast-export; הם עשויים פשוט
מצביעים על מומים שלא זוהו בעבר בהיסטוריה של CVS. עם זאת, דיווח
הם עשויים לעזור לשפר CVs-fast-export.

האמור לעיל הוא גרסה מקוצרת של חלק מ-DVCS Migration HOWTO; עיין בו לעוד.

לַחֲזוֹר ערך


0 אם כל הקבצים נמצאו והומרו בהצלחה, 1 אחרת.

ERROR הודעות


רוב ההודעות ש-cvs-fast-export פולטות הן בעצמן. הנה כמה כאלה
אינם. היכן שכתוב "בדוק ראש", הקפד לבדוק שפיות מול תיקון הראש.

לא ניתן היה להקצות תג ל-commit
תגי RCS/CVS הם לכל קובץ, לא לכל גרסה. אם המפתחים לא נזהרים בהם
שימוש בתיוג, זה יכול להיות בלתי אפשרי לשייך תג לכל אחת מערכי השינויים
ש-cvs-fast-export פותר. כשזה יקרה, cvs-fast-export יוציא את זה
אזהרה והתג ששמו יוסר.

מחויבות ילד שנפלטה לפני ההורה
משהו השתבש במהלך הקנוניזציה של הייצוא. זה כנראה נגרם על ידי CVS
מתחייבים כי חותמות הזמן נמצאות בסדר הלא נכון ליחסים בין הורה לילד. לְנַסוֹת
אפשרות -F.

השלכת ענף מת לא מתויג
ניתוח מצא סניף CVS ללא תג המורכב כולו מתיקונים מתים. אלה
לא יכול היה להיות גלוי במצב הארכיון של ה-CVS בזמן ההמרה; זה
ייתכן שהם היו גלויים כתוכן סניף בשלב מסוים ב
העבר של המאגר, אך ללא תג זיהוי מצב זה בלתי אפשרי
לְשַׁחְזֵר.

אזהרה - סניף ללא שם
סניף CVS עם גרסה חיה חסר תווית ראש. תווית עם "-UNNAMED-BRANCH"
ייווצר סיומת לשם הסניף האב.

אזהרה - לא נוצר ענף מאסטר
cvs-fast-export לא הצליח לזהות את ענף ברירת המחדל (HEAD) ולכן אין
"מאסטר" בהמרה; זה יבלבל ברצינות את git וכנראה VCSs אחרים
כאשר הם מנסים לייבא את זרם הפלט. ייתכן שתוכל לזהות ולשנות את שם א
סניף מאסטר באמצעות מנתח מחדש(1).

אזהרה - xxx חדש יותר מ-yyy
בשלב מוקדם בניתוח של קובץ מאסטר CVS, סדר המיון בזמן של הדלתות שלו אינו תואם
הסדר הטופולוגי המוגדר על ידי מספרי הגרסה. הסיבה הסבירה ביותר לכך
הוא הטיית שעון בין לקוחות בגרסאות CVS ישנות מאוד. התוכנית תנסה לעשות זאת
לתקן זאת על ידי כוונון תאריך העדכון של ההתחייבות הבלתי תקינה להיות זה
של ההורה שלו, אך ייתכן שהדבר לא ימנע שגיאות אחרות של הטיית זמן מאוחר יותר בניתוח.

tip commit ישן יותר מאשר הצטרף סניף זקוף
בעיה דומה ל"חדש מ" המדווחת בשלב מאוחר יותר, כאשר התיקים מסתעפים
נסרגים לענפי שינוי. סניף CVS אחד באוסף שעומד להיות
למיזוג לתוך ענף gitspace יש tip commit ישן יותר מה-commit המוקדם ביותר כלומר
הורה על טיפ (אחר) באוסף. הסניף האדוונטי נחתך
הנחה.

חלק מההורים מתחייבים צעירים יותר מילדים
עשוי להצביע על כך ש-cvs-fast-export צבר כמה מערכי שינויים בסדר הלא נכון;
כנראה לא מזיק, אבל בדוק את הראש.

אזהרה - נקודת סניף מאוחרת מהסניף
מאוחר בניתוח, בעת חיבור סניפים להוריהם במערך השינויים DAG,
תאריך ההתחייבות של התחייבות השורש של סניף מוקדם מתאריך ההורה
זה מתחבר אליו. יכול להיות עוד סימפטום של הטיית שעון, או עשוי להצביע על
טעות בניתוח הטופולוגי של התוכנית. בדוק התחייבויות ליד ה-join with
מנתח מחדש(1); ייתכן שיהיה צורך להורות מחדש את הסניף ביד.

יותר מדלתא אחת עם המספר XYZ
היסטוריית ה-CVS הכילה מספרי דלתא כפולים של קבצים. לא אמור לקרות, ואולי
ציין ארכיון CVS פגום אם כן; בדוק ראש.

{revision|patch} עם עומק מוזר
לעולם לא יקרה; רק מספרי סניפים אמורים להיות בעלי עומק מוזר, לא קובץ
מספרי דלתא או תיקון. עשוי להצביע על ארכיון CVS פגום; בדוק ראש.

תג משוכפל ב-CVS master, מתעלם
למאסטר CVS יש מספר מופעים של אותו תג המצביע על דלתות קבצים שונות.
כנראה שגיאת מפעיל CVS ויחסית לא מזיקה, אבל בדוק שהתגית
רפרנט בהמרה הגיוני.

שם התג או הסניף היה ריקים לאחר חיטוי
שגיאה חמורה: שם התג היה ריק לאחר שהוסרו כל התווים הבלתי חוקיים עבור git.
כנראה מצביע על קובץ RCS פגום.

מספר הגרסה ארוך מדי, הגדל את CVS_MAX_DEPTH
שגיאה קטלנית: מאגרים פנימיים קצרים מכדי לטפל בגרסה של CVS ב-repo.
הגדל את הקבוע הזה ב-cvs.h ובנה מחדש. אזהרה: זה יגדיל את השימוש בזיכרון
ולהאט מאוד את הבדיקות.

מספר הרצף של תמונת מצב גדול מדי, הרחבת serial_t
שגיאה קטלנית: מספר תצלומי הקובץ ב-Repo CVS גובר על פנימי
דֶלְפֵּק. בנה מחדש cvs-fast-export ממקור עם serial_t רחב יותר שתוקן לתוך cvs.h.
אזהרה: זה יגדיל משמעותית את גודל סט העבודה

יותר מדי סניפים, הרחבת branchcount_t
שגיאה קטלנית: מספר הסניפים שמקורם באיזשהו התחייבות בודדת חוצה את an
מונה פנימי. בנה מחדש cvs-fast-export ממקור עם branchcount_t רחב יותר
תוקן לתוך cvs.h. אזהרה: זה יגדיל משמעותית את גודל סט העבודה

שגיאה פנימית - מחזור ענפים
cvs-fast-export מצא מחזור תוך מיון טופולוגי של commits לפי קישור אב. זֶה
לא אמור לקרות, וכנראה מעיד על שגיאה פנימית חמורה: נא להגיש באג
לדווח.

שגיאה פנימית - תג אבד
מאוחר בניתוח (לאחר התלכדות ערכות שינויים) תג איבד את ההתייחסות ל-commit שלו. זֶה
לא אמור לקרות וכנראה מעיד על שגיאה פנימית: נא להגיש באג
לדווח.

דיווח באגים


דווח על באגים לאריק ס. ריימונדesr@thyrsus.com>. עמוד הפרויקט נמצא ב
http://catb.org/~esr/cvs-fast-export

השתמש ב-cvs-fast-export מקוון באמצעות שירותי onworks.net



התוכניות המקוונות האחרונות של לינוקס ו-Windows