| היסטוריית גירסאות | ||
|---|---|---|
| גירסה 1.0 | 28-1-2008 | <כרמית לוי> |
| טיוטא ראשונה | ||
מדריך לשימוש בכלי CVS לניהול פיתוחי קוד בתכנות וגרסאות קוד ותכנה.
כל הזכויות שמורות © 2007, <כרמית לוי>, הרשות ניתנת להעתיק, לשנות ולהפיץ מדריך זה תחת התנאים של רשיון ה-GFDL
Linux הוא סימן מסחרי רשום של Linus Torvalds.
הכותב אינו נושא באחריות עבור שימוש ברעיונות, דוגמאות ומידע שבמדריך. השימוש הוא באחריות הקורא בלבד. המדריך עשוי להחיל טעויות ופרטים לא נכונים, שהשימוש בהם עשוי להיות מזיק למחשבך. למרות הסבירות הנמוכה, הכותב אינו לוקח כל אחריות
הכותב מודה לאנשים הבאים על תרומתם למדריך
תגובות, תלונות, הערות והארות לכתובת: carmit3levi@gmail.com.
שלום, במסגרת פיתוח פרוייקטים לקהילה בקוד פתוח נתקלתי בצורך לשתף קוד תכנה שכתבתי בשפת תכנות כלשהי על מנת שמפתחים נוספים יוכלו באם ירצו להצטרף לפרוייקט בתיכנות ובשינוי ותחזוקת הקוד של
תכנה מסויימת או יישום שכתבתי או שאתם תכתבו בעתיד…
על מנת שהקוד יהיה שיתופי לקהילה ובר שיתוף עם מתכנתים נוספים (שאולי ירצו לשכלל אותו בעתיד)
קיים צורך להעמיד את הקוד לשימוש הרבים על אחד השרתים.
כדי שמספר מפתחים יוכלו לקבל גישה לקוד ולפתח אותו במקביל או להצטרף לפיתוח ולעקוב אחרי טעויות של
כולם אם יש וכדי שתהיה אפשרות “לחזור אחורה” בפיתוח ולתקן באגים למשל שנוצרו או התגלו
יש צורך להקנות לקוד גירסאות שונות שחלקן יציבות וחלקן גירסאות פיתוח שעלולות להכיל באגים מסויימים
ולתת הרשאות פיתוח למי שרוצה לפתח ולחזור לגירסה קודמת שתהיה מאוחסנת וקיימת במידה והפיתוח החדש
יוצר באגים או לא יוצא טוב מכל מיני סיבות טעויות אנוש וחוסר תצומת לב.
לצורך מטרת שיתוף זו נבנו כלים ספציפיים לניהול גירסאות קוד (לא משנה באיזה שפת תיכנות כרגע)
מכל הכלים אני רוצה לציין שניים בקוד פתוח
החדיש והטוב שהוא SVN שעליו ממליצים רבים נכון להיום ינואר 2008 קיצור של subversion
והענתיקה שאני אמקד את הכתיבה אליו שהוא CVS קיצור של concurrent versions system
משתמשים בו בסורספורג’ למשל בגישה דרך SSH (גישה למסוף ושורת הפקודה במחשב אחר שמכיל שרת SSH)
א. לשתף את הקוד עצמו וגם גירסאות פיתוח ניסיוניות עם הקהילה
ב. לשתף אנשים שרוצים להצטרף לפיתוח בקוד עצמו
ג. כדי לא לפתח לבד.
שלום נעים מאוד קוראים לי רפוזיטורי אני העותק המרכזי של כל קבצי הפרוייקט אני מועתק לכל מפתח שרוצה לפתח אותי במטנה.
מי שרוצה לעדכן אותי או להתעדכן שיצור איתי קשר באמצעות תכנת לקוח 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).
מידע נוסף שנוגע למדריך כמו מדריכים נוספים, מסמכי שו”ת, ספרים וקישורים.
[*] מדריכי CVS באנגלית באתר הזה : http://ximbiot.com/cvs/manual
[*] מדריכים אחרים הקשורים לאותו נושא: http://penguin.org.il/guides/cvs-server-intro
[*] האתר של דרופל http://www.drupal.org.il/guides/bguide