יום שלישי, מרץ 26, 2019

איך לבצע מיגרציה בין שרתי svn בצורה שקופה למשתמשים

התמזל מזלי ונפלה ההזדמנות בחלקי להיות חלק מתהליך המרה מעניין (מעבר בין שני ספקים שונים).

גודל קובץ הdump הדחוס היה כ 3 ג"ב (היסטוריה של מעל 5 ג"ב) כולל מידע בינארי וטקסט.
שרת svn המקור - 10.1.1.1

כמות revisions בשרת המקור בעת יצרת קובץ גיבוי 100000
שרת svn היעד  svn.myrtfm.blogspot.com
יש לייצר שמות משתמש זהים דרך ממשק הניהול בשרת החד

דרישות קדם -
  • svnsync מותקן
  • svnrdump מתוקן
  • הרשאות קריאה לשרת המקור.
  • הרשאות כתיבה לשרת המקור.
  • מקום פנוי פי 1.5 בשרת היעד מגודל קובץ ה dump (במצב פרוס) בתהליך הטעינה.


 יצרת קובץ dump:
svnrdump dump http://10.1.1.1/svn/project > project.dump

טעינת קובץ ה dump בשרת היעד:

 svnrdump load project.dump http://svn.myrtfm.blogspot.com/project


הגדרת שירות svnsync על שרת היעד:

יש למצוא את ה uuid של שרת המקור (10.1.1.1) , מתבצע ע"י הרצת svn info כלפי שרת המקור והעתקת שדה ה UUID.

יש לייצר את את השדה sync-from-uuid עם ערך ה UUID שקיבלתם בשלב הקודם (החליפו את המילה UUID במה שקיבלת בשלב הקודם):

svn propset --revprop -r0 svn:sync-from-uuid UUID \
 http://svn.myrtfm.blogspot.com/project

יש להגדיר מהrevision האחרון שנטען לשרת svn.myrtfm.blogspot.com שישמש כהתחלה לביצוע sync:


svn propset --revprop -r0 \
svn:sync-last-merged-rev 100000   \
http://10.1.1.1/svn/project http://svn.myrtfm.blogspot.com/project

למרות שאצל הספק ממליצים לבצע שינוי שמות האנשים שביצעו קומיט

2 comments:

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

      גם אצלי יש מקום חם בלב לשימוש ב git (וגם cgit אם כבר מדברים) אבל העולם לא רוקד לפי חלילי וצריך לעבוד גם עם subversion, גם עם git ואם אני כבר מודה בדברים שייתכן שהשתיקה יפה להם אז יש לי עדין git-cvs איפה שהוא אם אתה מבין מה זה אומר.

      מחק