ענפים וניתוחים

כלי השוואה ומיזוג חיצוניים

מציג הדיפים והפותר בשלושה פאנלים של Gitcito מסתדרים עם רוב הימים. בחלק מהימים לא: קובץ מחולל בן 4,000 שורות, מיזוג שבו צריך לראות ארבע עמודות בבת אחת, או פשוט הכלי שאתם משתמשים בו עשור וקוראים מהר יותר מכל כלי חדש.

הגדרות ← כללי ← כלי השוואה ומיזוג חיצוניים.

זו הרשימה של git, לא שלנו

Gitcito לא מחזיק טבלה משלו. הרשימות הנפתחות הן git difftool --tool-help ו־git mergetool --tool-help, ולכן:

  • הכלים ש־git כבר מצא במחשב שלכם מופיעים ראשונים; אלה שהוא מכיר אבל לא מוצא מופיעים אחריהם, מסומנים לא מותקן.

  • כלי מותאם אישית עובד בלי שום תמיכה נוספת. אם יש לכם

    git config --global difftool.mine.cmd 'mycompare "$LOCAL" "$REMOTE"'
    

    אז mine יופיע ברשימה הנפתחת כמו כל כלי מובנה.

  • הבחירות שלכם נכתבות אל diff.tool ו־merge.tool בתצורת ה־git הגלובלית שלכם — אותם מפתחות שהטרמינל שלכם קורא. הגדירו כאן ו־git difftool בשורת הפקודה יתנהג בדיוק אותו דבר. הגדירו שם ו־Gitcito יקלוט את זה.

git מכיר בערך שלושים כלים מהקופסה, כולל Kaleidoscope, Beyond Compare, Meld, KDiff3, P4Merge, Araxis, DiffMerge, WinMerge, FileMerge, VS Code ומשפחת vim.

היכן הפעולות מופיעות

מקום פעולה
קובץ שהשתנה במלחין הקומיטים השוואה ב־<כלי> — עץ העבודה מול האינדקס
פותר ההתנגשויות מיזוג ב־<כלי> — המיזוג התלת־כיווני המלא

שתי הרשומות מופיעות רק כשכלי באמת מוגדר; git difftool לא מוגדר היה פשוט משגה, וכפתור מת גרוע מאין כפתור.

מה קורה בזמן שהכלי פתוח

Gitcito ממתין שהוא ייסגר. זה מכוון — git mergetool מעלה את הקובץ הפתור לסטייג׳ רק אחרי שהכלי יוצא, כך שיש תוצאה אמיתית לדווח עליה — ולכן הכפתור מציג מסתובב במקום לחזור מיד.

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

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

קובץ ה־.orig

git mergetool משאיר גיבוי <file>.orig ליד הקובץ הפתור כברירת מחדל — זו ההתנהגות של git, לא של Gitcito. המתג בהגדרות כותב mergetool.keepBackup; כבו אותו וקובץ פתור לא ישאיר שום דבר מאחור.

מגבלות

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

שיפור התרגום הזה ב־GitHub