יום ראשון, דצמבר 15, 2013

איך לבצע ניגון של הרבה פאטצים ב git

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

git לא שומר שמות קבצים אלא עץ מצב לכן לא הצצלחתי לחשוב על דרך ב אוכל להזיז היסטוריה (התחלתי מ svn cp source dest בשביל שההיסטוריה תשמר בשרת).

המחשבה הראשונה היתה לעשות:
boris@pc /c (case_0x567823_devil)
$ git format-patch master
ולאחר מכן שינוי יידני של כל פאטץ יצירת ענף חדש ואז git am רק שקיבלתי שגיאות של patch does not
 apply
 שזה משהוא לא ממש הגיוני אני עובד על אותה המכונה (השגיאה יכולה לצוץ עם בעיית הרשאות למשל)

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

וזה היה הפתרון!

התהליך שעשיתי היה :
boris@pc /c/src/ (case_0x567823_devil)
$ git format-patch master

קיבלתי כמה עשרות קבצים(קובץ עבור כל commit שנעשה), שיניתי בכל אחד מהם את שם הקובץ הישן והפורק
:%s/source.cpp/dest.cpp/g  
לאחר מכן הפעלתי את קסמי ה git:
boris@pc /c/ (case_0x567823_devil_newbranch)
$ git am 0*.patch --ignore-space-change --ignore-whitespace
ובא לציון גואל

למידע נוסף
git am
git format-patch

אין תגובות:

הוסף רשומת תגובה