GIT מול SVN, מה עדיף ? יתרונות וחסרונות ? - טכנולוגיית מידע - IT - HWzone פורומים
עבור לתוכן
  • צור חשבון

GIT מול SVN, מה עדיף ? יתרונות וחסרונות ?


KoM

Recommended Posts

כרגע אנחנו משתמשים ב-SVN, העניין יציב מאד אך אנו מפחדים שבשימוש עם יותר משתמשים וענפים הוא יהיה איטי מאד. התחלנו לבדוק את האופציה למעבר ל-GIT כניהול גרסאות וקוד, יש למישהו הצעות\כיוונים בנושא ? האם המעבר כדאי בכלל ?

http://git-scm.com/

http://tortoisesvn.net/downloads.html

תודה מראש על כל מידע...

קישור לתוכן
שתף באתרים אחרים

קודם שיהיה ברור - אני מכיר את svn רק מהשם.

אצלנו עשו את המעבר מ cvs ל git לפני כשנה וחצי ועד עכשיו נראה שמרוצים.

git מאוד נפוץ בעולם ה open source, הרבה מאוד פרויקטים נשענים עליו והוא מתאים מאוד לניהול קוד עם הרבה מתכנתים כי branch ב-git הוא מאוד מאוד זול.

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

1) האם החברה מוכנה לספוג את הפגיעה הראשונית בפרודוקטיביות של המתכנתים? כי לgit יש עקומת לימוד מסויימת.

2) זמן ההקמה של המערכת. אם אתם הולכים לארח את הקוד באתרים כדוגמת github אז זמן ההקמה הוא אפסי, העלות היא מאוד זולה, ומקבלים כמה דברים נחמדים כמו ניהול הרשאות על בסיס משתמש, באג טראקר בסיסי, וויקי לכל repo וכו'. מצד שני אם אתה לא מוכנים לאחסן את הקוד בחוץ אתם צריכים להקים את המערכת לבד שזה לא ממש בעיה אבל אם אתם רוצים פיצ'רים כדוגמת ניהול הרשאות פרטני של משתמשים ל-repos, אתם צריכים למצוא פתרון כי git אינו תומך בניהול הרשאות (הפרויקט הנחמד הזה תפס את עיני בזמנו ונראה כמו אפשרות טובה).

3) אתם צריכים לבדוק שה export מsvn לgit לא הולך לאבד מידע שאולי חשוב לכם - דברים כמו זמנים של commits, הערות מפתח, שם המפתח וכו' (אני לא אומר שזה ילך לאיבוד, רק לוודא שתהליך ה export עובד כמו שצריך).

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

קישור לתוכן
שתף באתרים אחרים

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

המילה GitHub מופיעה 11 פעם והמילה GIT לבד מופיעה פעם 1

הכתבה מדברת על GitHub מול SVN ולא על שום דבר אחר

קישור לתוכן
שתף באתרים אחרים

"If you like your version control with a dose of royalty, GitHub may be for you. Created by mastermind Linus Torvalds, GitHub makes an immediate impression on new users with its welcoming, modern web-interface and step-by-step instructions"

GitHub לא הומצא ע"י לינוס, וזה לא version control אלה בסה"כ אתר "חברתי" המבוסס על Git (אשר כן הומצא ע"י לינוס לצורך מבוזר לקרנל של לינוקס) לצורך אירוח\שיתוף קוד.

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

קישור לתוכן
שתף באתרים אחרים

מה בדיוק לא VERSION CONTROL בGITHUB? זה השירות המרכזי שהוא נותן

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

קישור לתוכן
שתף באתרים אחרים

יש מספר שרותים מרכזיים שgithub מספק שרבים מהם אינם פיצ'רים של git נטו וזה לא נכון לחשוב עליה בתור פרונט לגיט (היא גם תומכת ב svn דרך אגב). חשוב היה לי לציין שהכתבה מוטעה כי ממנה עולה כאילו github ו- git היא אותה מערכת, מה שלא נכון.

קישור לתוכן
שתף באתרים אחרים

מה בדיוק לא VERSION CONTROL בGITHUB? זה השירות המרכזי שהוא נותן

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

GitHub הוא רק Code hosting ל git, אין קשר "ישיר" בין השניהם. כמו שמייק ציין יש גם את Bitbucket שתומכים ב git, ואתה תמיד יכול להריץ Repository לוקאלי.

קישור לתוכן
שתף באתרים אחרים

קודם שיהיה ברור - אני מכיר את svn רק מהשם.

אצלנו עשו את המעבר מ cvs ל git לפני כשנה וחצי ועד עכשיו נראה שמרוצים.

git מאוד נפוץ בעולם ה open source, הרבה מאוד פרויקטים נשענים עליו והוא מתאים מאוד לניהול קוד עם הרבה מתכנתים כי branch ב-git הוא מאוד מאוד זול.

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

1) האם החברה מוכנה לספוג את הפגיעה הראשונית בפרודוקטיביות של המתכנתים? כי לgit יש עקומת לימוד מסויימת.

2) זמן ההקמה של המערכת. אם אתם הולכים לארח את הקוד באתרים כדוגמת github אז זמן ההקמה הוא אפסי, העלות היא מאוד זולה, ומקבלים כמה דברים נחמדים כמו ניהול הרשאות על בסיס משתמש, באג טראקר בסיסי, וויקי לכל repo וכו'. מצד שני אם אתה לא מוכנים לאחסן את הקוד בחוץ אתם צריכים להקים את המערכת לבד שזה לא ממש בעיה אבל אם אתם רוצים פיצ'רים כדוגמת ניהול הרשאות פרטני של משתמשים ל-repos, אתם צריכים למצוא פתרון כי git אינו תומך בניהול הרשאות (הפרויקט הנחמד הזה תפס את עיני בזמנו ונראה כמו אפשרות טובה).

3) אתם צריכים לבדוק שה export מsvn לgit לא הולך לאבד מידע שאולי חשוב לכם - דברים כמו זמנים של commits, הערות מפתח, שם המפתח וכו' (אני לא אומר שזה ילך לאיבוד, רק לוודא שתהליך ה export עובד כמו שצריך).

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

תודה רבה לכולם !

2. לא הבנתי כל כך את העניין עם ניהול ההרשאות, אין נעילות קוד לפי משתמשים ?

קישור לתוכן
שתף באתרים אחרים

ברמת git אין ניהול הרשאות, ניהול קריאה\כתיבה מתבצע ע"י הרשאות מערכת הקבצים.

אז אם אתה רוצה שמפתחים של יגשו לקוד רק שלהם ולא יצליחו לגשת לקוד של backend, זה לא מגיע מהקופסא.

כדי להתחבר לgit מרחוק בד"כ משתמשים ב ssh או http, אבל בשילוב עם יוזר גנרי שיכול לכתוב\לקרוא מכל repo.

אם רוצים ניהול הרשאות פרטני יש שלוש גישות:

א) לנהל הרשאות משתמשים במערכת ההפעלה\שרת web ואז לכל משתמש לתת הרשאות קריאה\כתיבה לספריה המתאימה (סיוט ניהולי).

ב) להשתמש ביוזר גנרי ולנהל הרשאות על בסיס מפתח ssh, בדומה למה שעושים ב github או כל אתר דומה לו. דוגמא למערכות שעושות את זה - gitlab/gitosis (לצערי לא יצא לי להתקין).

ג) להשתמש בשרות כדוגמת github

קישור לתוכן
שתף באתרים אחרים

האם יש פלאגאין מומלץ ל-VS ל-GIT? הבנתי שכנראה יש תמיכה מובנית מ-VS2012 אבל אני מדבר גם על גרסאות מוקדמות יותר.

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

הבנתי ש-GIT גם עוקב אחרי מהמינות הקוד ? איך GIT מנהל מספרי גרסא ?

קישור לתוכן
שתף באתרים אחרים

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

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

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...