אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » מדריכים » SVN » מדריך לעבודה עם SVN – פקודות בסיסיות

מדריך לעבודה עם SVN – פקודות בסיסיות

רן בר-זיק אוקטובר 25, 2015 7:20 am 2 תגובות

פקודות בסיסיות ב-SVN למשיכת קוד, עדכון, הכנסה וגם יצירת ענף

»מדריך לעבודה עם SVN – בסיס
»מדריך לעבודה עם SVN – קונפליקטים
כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

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

נשאלת השאלה איך אנחנו מתחילים לעבוד עם SVN ממש בפועל? במקרה של SVN אנחנו צריכים שרת מרכזי. אי אפשר לעבוד עם SVN ללא שרת (לפחות בלי ים שטיקים וטריקים). רוב העבודה עם SVN נעשית מול שרת מרכזי שמכיל את כל הגרסאות. השרת המרכזי הזה נקרא repository או בקיצור repo. התקנת השרת היא לא בסקופ של המדריך הזה. אם תעבדו מול סביבת פיתוח, מנהל הסביבה יתן לכם את הכתובת של השרת. למשל, כשעבדתי מול וורדפרס, הם סיפקו לי כתובת SVN שמולה אני צריך לעבוד. מה שתצטרכו להתקין על המחשב המקומי שלכם הוא קליינט של SVN. יש קליינט ללינוקס/מק ויש לחלונות. ההתקנה על לינוקס/מק היא קלה:

sudo apt-get install svn

אחרי זה ניתן להכנס לקונסולה ולכתוב svn –help. אם הכל תקין, תראו הסבר על SVN ומפה אפשר לעבוד על ה-SVN

הקליינט הפופולרי לחלונות נקרא SVN tortoise, ניתן להתקינו בקלות באמצעות האתר שלו. אחרי ההתקנה, אם תפתחו את ה-cmd, תוכלו לכתוב svn –help והתחיל לעבוד. יש לו גם ממשק גרפי, אבל בואו נכבד את עצמנו ונעבוד עם שורת הפקודה.

אחרי שהתקנו את הקליינט, בחלונות או בלינוקס, אפשר להתחיל:

ראשית, אנו צריכים את כתובת השרת של SVN. למשל ה-SVN של התוסף שלי בוורדפרס. יש לי גם שרת SVN לוקלי משלי: http://192.168.1.100/svn. המאגר שנעבדו מולו נקרא testrepo.

אני לוקח את המאגר שלי, וכותב בקונסולה/cmd:

svn co http://192.168.1.100/svn/testrepo/

הפקודה הזו נקראת checkout – צ'קאאוט: אני יכול לראות איך נוצרה לי תיקיה של הפרויקט. אם תעשו למשל

svn co http://plugins.svn.wordpress.org/wp-notice/trunk/

תראו שנוצרה תיקיה של הפרויקט של wp-notice. איזה כיף! אם אני אעשה שינוי בקובץ מסוים, אני יכול להקליד svn status כדי לראות איזה קבצים השתנו. אם אני רוצה לראות בדיוק את השינויים, אני צריך לכתוב svn diff ואז את שם הקובץ כדי לראות את השינויים. הנה דוגמה:

$ svn status M       index.php $ svn diff Index: index.php =================================================================== --- index.php	(revision 1) +++ index.php	(working copy) @@ -1,3 +1,6 @@  <?php   +//Printing Hello World!  print "Hello World"; + +

$ svn status
M       index.php
$ svn diff
Index: index.php
===================================================================
--- index.php	(revision 1)
+++ index.php	(working copy)
@@ -1,3 +1,6 @@
 < ?php
 
+//Printing Hello World!
 print "Hello World";
+
+

ה-diff יכול להראות קצת מוזר, אבל בגדול זה די קל - יש לנו ++ לציון תוספות ו-- לציון הורדות. כאשר ה-SVN מראה לנו את השורות הקרובות. בדוגמה שלעיל אנו רואים שהוספתי הערה של Printing Hello World ושני ירידות שורה.

אם אני מרוצה מהשינויים, אני צריך לדחוף את הפעולה ל-trunk. את זה עושים עם checkin:

svn ci

הקליינט יבקש מאיתנו לכתוב הערה, מקובל לכתוב הערה מובנת ורלוונטית (ועל כך בהמשך). אם הצ'ק אין היה מוצלח, זה מה שנראה:

$ svn ci Sending        index.php Transmitting file data . Committed revision 2.

אם יצרתי קובץ חדש שלא קיים בענף שלי, אני צריך להוסיף אותו באמצעות svn add.

אם מישהו אחר עדכן את הענף, אנחנו יכולים למשוך את העדכונים אלינו באמצעות פקודת update:

svn up

מקובל לעשות svn up לפני שאנו מבצעים checkin.

יצירת ענף אחר נעשית באמצעות svn copy

 svn copy http://localhost/svn/testrepo/trunk/  http://localhost/svn/testrepo/branches/develop/ -m'Creating Develop'

כאן אני משתמש ב-URL של המאגר שלי, כמובן שכל URL יכול להתקבל כל עוד יש לי הרשאות. למשל:

 svn copy http://plugins.svn.wordpress.org/wp-notice/trunk/  http://plugins.svn.wordpress.org/wp-notice/branches/develop/ -m'Creating Develop'

כל מה שנותר לי לעשות אחרי שאני עושה את זה, זה להכנס לתיקיה שבה עשיתי check out לפרויקט ולמשוך את השינוי באמצעות svn up. אם הכל תקין, אני אראה שיש לי גם את ה-trunk וגם את ה-develop שבשלב זה הוא העתק מושלם של ה-trunk:

.
├── branches
│   └── develop
│       └── index.php
└── trunk
    └── index.php

למדנו כאן כמה מונחים חשובים. את המונחים ענף, מיזוג והכנסת קוד אנחנו מכירים מהמאמר הקודם. עכשיו למדנו על מונחים חדשים:
repository ובקיצור repo שהוא בעצם המאגר עצמו. למאגר יש trunk שהוא הענף המרכזי וכן ענפים נוספים.
check-out – משיכת המאגר אלינו. עושים את זה באמצעות פקודת svn co. הפקודה הזו מושכת את כל המידע מה-repo אלינו.
update – עדכון המאגר או הענף הספציפי. אנו עושים את זה באמצעות פקודת svn update. הפקודה הזו מעדכנת את הקבצים הלוקליים שיש אצלנו בשינויים שנעשו במאגר המרוחק.
check in – הכנסת השינויים הלוקליים שעשינו אל ה-repo. עושים את זה באמצעות פקודה svn ci.

במאמר הבא אנו נלמד על קונפליקטים.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
מדריך ל-SVN
svn

2 תגובות

  1. אליהו הגב ספטמבר 30, 2016 בשעה 12:58 pm

    תודה על המאמר.
    יש כאן טעות דפוס קטנה:
    check-out – משיכת המאגר אלינו. עושים את זה באמצעות פקודת svn ci.
    צריך להיות svn co ולא svn ci

    • רן בר-זיק הגב אוקטובר 2, 2016 בשעה 1:59 pm

      תודה רבה! תוקן 🙂

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

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

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד