ניהול גרסאות קוד תכנה באמצעות CVS

<כרמית לוי>

carmit3levi@gmail.com

היסטוריית גירסאות
גירסה 1.0 28-1-2008 <כרמית לוי>
טיוטא ראשונה

תקציר

מדריך לשימוש בכלי CVS לניהול פיתוחי קוד בתכנות וגרסאות קוד ותכנה.

זכויות יוצרים ורשיון

כל הזכויות שמורות © 2007, <כרמית לוי>, הרשות ניתנת להעתיק, לשנות ולהפיץ מדריך זה תחת התנאים של רשיון ה-GFDL
Linux הוא סימן מסחרי רשום של Linus Torvalds.

הסרת אחריות

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

תורמים למדריך \ תודות

הכותב מודה לאנשים הבאים על תרומתם למדריך

  • תרום מספר 1 <someone1 (at) somewhere.org>
  • תורם מספר 2 <someone2 (at) somewhere.org>

משוב

תגובות, תלונות, הערות והארות לכתובת: carmit3levi@gmail.com.

מבוא

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

תכנה מסויימת או יישום שכתבתי או שאתם תכתבו בעתיד…

על מנת שהקוד יהיה שיתופי לקהילה ובר שיתוף עם מתכנתים נוספים (שאולי ירצו לשכלל אותו בעתיד)

קיים צורך להעמיד את הקוד לשימוש הרבים על אחד השרתים.

כדי שמספר מפתחים יוכלו לקבל גישה לקוד ולפתח אותו במקביל או להצטרף לפיתוח ולעקוב אחרי טעויות של

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

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

ולתת הרשאות פיתוח למי שרוצה לפתח ולחזור לגירסה קודמת שתהיה מאוחסנת וקיימת במידה והפיתוח החדש

יוצר באגים או לא יוצא טוב מכל מיני סיבות טעויות אנוש וחוסר תצומת לב.

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

מכל הכלים אני רוצה לציין שניים בקוד פתוח

החדיש והטוב שהוא SVN שעליו ממליצים רבים נכון להיום ינואר 2008 קיצור של subversion

והענתיקה שאני אמקד את הכתיבה אליו שהוא CVS קיצור של concurrent versions system

משתמשים בו בסורספורג' למשל בגישה דרך SSH (גישה למסוף ושורת הפקודה במחשב אחר שמכיל שרת SSH)

בקיצור מטרת המנהל גירסאות היא

א. לשתף את הקוד עצמו וגם גירסאות פיתוח ניסיוניות עם הקהילה

ב. לשתף אנשים שרוצים להצטרף לפיתוח בקוד עצמו

ג. כדי לא לפתח לבד.

פרק ראשון repository

הכרות עם המושג ריפוזיטורי ואפשרויות הכלי CVS

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

מי שרוצה לעדכן אותי או להתעדכן שיצור איתי קשר באמצעות תכנת לקוח CVS. כדי להתעדכן ממני לגבי השינויים תכתבו את הפקודה update כדי לעדכן אותי בשינויים שעשיתם תכתבו את הפקודה commit ואם אתם חדשים ואין לכם שום עותק של העבודה תוכלו לקבל אחד באמצעות בקשת checkout.

מי שרוצה מצגת שינויים שנעשו בגירסאות של קובץ ספציפי שיתשתמש ב log אגב המונח המוגדר של גירסאות ספציפיות של קובץ נקרא רויזין. (revisions)

מי שרוצה מצגת שינויים בין הקבצים בעבודה הנוכחית למקוריים שישתמש ב diff

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

סטטוס status מציג מצב של כל הקבצים בריפוזיטורי.

פרק שני - מבנה הפקודה

מבנה הפקודה:

cvs [ אפשרויות ] cvs_command [ אפשרויות פקודה ] [ command_args ]

פרק שלישי - דוגמאות למבנה הפקודה

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

cvs -d :pserver:faun.example.org:/usr/local/cvsroot checkout someproj 

את כל השורה אחרי המאפיין של מיקום ספריית הריפוזיטורי שרוצים אפשר להכניס למשתנה מערכת CVSROOT בצורה זו:

CVSROOT=:pserver:bach@faun.example.org:2401/usr/local/cvsroot

ואז כשקוראים לפקודה checkout בכלי CVS הפקודה תיראה יותר קצר וברור בצורה זו:

cvs checkout someproj

בדוגמאות הנ”ל הדוגמא הייתה לריפוזיטורי שאינו יושב במחשב מקומי והוא נמצא באיזה שהוא סוג של שרת מרוחק שאז המבנה של המיקום שלו הוא כזה:

[:method :][[user ][:password ]@]hostname [:[port ]]/path/to/repository

על מנת לגשת אליו בשרת מרוחק (pserver) עם שם משתמש וסיסמא.

דוגמאות ל “method” שאליו מתחברים בשרת המרוחק שהם pserver gserver kserver fork לא חייבים לזכור רק לדעת שזה קיים:

cvs -d :pserver:bach:p4ss30rd@faun.example.org:/usr/local/cvsroot login  
cvs -d :gserver:faun.example.org:/usr/local/cvsroot checkout foo
cvs -d :kserver:faun.example.org:/usr/local/cvsroot checkout foo
cvs -d :fork:/usr/local/cvsroot checkout foo

פרק רביעי - דוגמא ממשית לשימוש בפקודה

הנה דוגמא ממשית לשימוש בפקודה דרך שורת הפקודה בלי קיצורי דרך בהמחשה של הורדת דרופל חמש

cvs -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal checkout  -r DRUPAL-5 drupal

אם למשל CVSROOT=:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal

אז ניתן לכתוב את הפקודה גם כך:

cvs checkout -r DRUPAL-5 drupal

בעיות

חלק זה יכיל בעיות ושאלות נפוצות שקשורות לנושא המדריך. הוא ערוך בפורמט של שו”ת (FAQ).

  • שאלה מספר 1
    • תשובה מספר 1
  • שאלה מספר 2
    • תשובה מספר 2

מידע נוסף

מידע נוסף שנוגע למדריך כמו מדריכים נוספים, מסמכי שו”ת, ספרים וקישורים.

[*] מדריכי CVS באנגלית באתר הזה : http://ximbiot.com/cvs/manual

[*] מדריכים אחרים הקשורים לאותו נושא: http://penguin.org.il/guides/cvs-server-intro

[*] האתר של דרופל http://www.drupal.org.il/guides/bguide

מדריכים/ניהול_גרסאות_קוד_תכנה_באמצעות_cvs.txt · שונה לאחרונה ב: 2008/06/19 18:34 (עריכה חיצונית)
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0