סנכרון והרבה מאגרים

מאגרים

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

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

המקטעים

מאגר יכול להופיע ביותר ממקטע אחד. בכוונה: כל מקטע הוא תשובה שלמה לשאלה שלו, לא פרוסה מרשימה אחת.

מקטע מה יש בו
מאגרים פתוחים כל לשונית בסביבת העבודה הפעילה עכשיו
מועדפים מאגרים עם כוכב, בכל סביבות העבודה
אחרונים כל מה שפתחתם, החדש ביותר קודם. בלי תקרה, בניגוד לרשימת 8 הפריטים במשגר
אחד לכל סביבת עבודה שמורה הלשוניות של אותה סביבה, כדי לקפוץ אליה בלי לעבור אליה קודם
כל המאגרים כל מאגר שהרישום מכיר, פתוח או לא

הסרגל מעל הרשימה הוא רצועה אחת: כיווץ הכל והרחבת הכל, אחר כך שדה חיפוש שלוקח את שאר הרוחב, אחר כך מתג סיכום ה-WIP.

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

כשהתיבה ריקה, כל מקטע מוצג גם כשאין בו כלום: "מועדפים 0" אומר לכם שהמקטע קיים וריק, וזה שווה לדעת. זה רעש רק כשאתם כבר מחפשים.

צבעי מקטע

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

כדי לשנות אחת, השתמשו ב-⋮ שעל הכותרת: שינוי צבע… פותח את אותו בורר צבע של לשוניות קבוצה ותיקיות, עשר דוגמיות קבועות ועוד ערך hex חופשי. איפוס צבע מופיע אחרי שדרסתם מקטע, ומחזיר אותו לברירת המחדל שהוקצתה לו.

שלושה דברים שכדאי לדעת:

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

עם יותר מעשרה מקטעים הלוח חוזר על עצמו, כך ששתי כותרות יכולות לחלוק גוון.

מה הופך מאגר למוכר

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

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

תיקיות סריקה מוגדרות בהגדרות:

  • עומק הוא כמה רמות תיקייה הסריקה יורדת מתחת לשורש (ברירת מחדל 3, תקרה 10).
  • הסריקה נעצרת במאגר. checkout ארוז או תת-מודול בתוך מאגר לא ממופתח כשורה משלו.
  • היא לעולם לא נכנסת לתיקיות שמתחילות בנקודה, ומדלגת על node_modules ועל תיקיות תלויות דומות.
  • היא קוראת רק שמות תיקיות: מציאת תיקיית .git היא מה שהופך משהו למאגר כאן. שם, בעלים וענף מגיעים מקבצים בתוך .git (HEAD, התצורה), אף פעם לא בהרצת git.

שורות

השורות מסודרות בעמודות: כוכב, שם (מכבד כינוי אם שיניתם אותו), בעלים (מכתובת ה-origin), שבב ענף, סיכום WIP ופעולות. העמודות משותפות לכל הדף, לא ממומדות לפי מקטע, כך ששם במקטע האחרון מתיישר מתחת לשם בראשון והרשימה נקראת כטבלה, לא כערימה.

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

פעולה מה היא עושה
כוכב / הסרת כוכב מוסיף את המאגר למועדפים או מוציא אותו משם
Locate… מצביע מחדש על תיקייה שהועברה או ששמה שונה. הכינוי, הקישור לפרופיל והכוכב נשארים. אם ליעד כבר היו הגדרות משלו, היעד מנצח
Forget מסיר את הרשומה מהרשימה הזאת. לעולם לא נוגע בתיקייה בדיסק

מאגר שהתיקייה שלו כבר לא קיימת מוצג כחסר, עם Locate… ו-Forget בשורה במקום פעולות השורה הרגילות.

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

להפוך עץ תיקיות לסביבות עבודה

תיקיית הקוד שלכם כבר מקודדת את הקיבוץ שאתם רוצים. אם ~/Code מחזיקה את client-a, client-b ו-personal, אלה הקשרים שאתם מחליפים ביניהם, וסביבת עבודה היא בדיוק זה, עם רצועת הלשוניות שלה.

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

שורה משמעות
שם תיקייה ומספר מסומנת כברירת מחדל. הופכת לסביבת עבודה
"{n} חדשים, מתמזג אל …" כבר קיימת סביבה לתיקייה הזאת. רק המאגרים החדשים נוספים
"כבר בסביבת עבודה" אין מה לעשות, באפור במקום מוסתר
שם השורש עצמו מאגרים שיושבים רופפים בתיקייה שבחרתם, לא בתת-תיקייה. לא מסומנת כברירת מחדל

מאגר מסווג תחת התיקייה הראשונה מתחת לשורש, לא משנה כמה עמוק הוא יושב: ~/Code/client-a/nested/app הולך ל-client-a. תיקיות בלי מאגרים לא מוצעות.

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

לסרוק שוב מאוחר יותר

בטוח לחזור. סריקה שנייה מוסיפה ולעולם לא מסירה:

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

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

לסגור הכול שפתוח

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

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

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

fetch ו-pull של מקטע שלם

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

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

החץ ליד pull בוחר מה pull אומר:

מצב מה הוא עושה
Pull (fast-forward אם אפשר) ברירת המחדל של Git. fast-forward כשאפשר, מיזוג כשלא
Pull (fast-forward בלבד) מסרב במקום ליצור קומיט מיזוג
Pull (rebase) מנגן מחדש את הקומיטים המקומיים שלכם מעל ה-upstream

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

סרגל הפעולות

פתיחת תיקייה…, שכפול… והוספת תיקיית סריקה…. שלוש דרכים להכניס מאגר לרישום של Gitcito, מאותו דף שבו אתם מחפשים אחד שכבר שם.

סיכום WIP

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

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

מגבלות

  • שום דבר בדף הזה לא מתרענן לפי טיימר. פתחו את הדף שוב, או כבו והדליקו את סיכום ה-WIP, כדי לראות מצב נוכחי.
  • סיכום WIP מכסה רק מקטעים מורחבים. מקטע מכווץ לא מציג מצב בכלל, מסומן או לא.
  • מאגר מוכר רק אחרי שפתחתם אותו, או סרקתם תיקייה שמכילה אותו. אין דרך לחפש במערכת הקבצים מכאן.
  • בניית סביבות עבודה אי אפשר לבטל בצעד אחד. ביטול הדיאלוג לא יוצר כלום, אבל תוכנית שאישרתם ואחר כך מתחרטים עליה מפורקת במחיקת הסביבות ביד.
  • רק רמה אחת לעומק. תיקיות מתחת לרמה הראשונה נשטחות לרצועת הלשוניות של הסביבה. client-a/nested/app הופך ללשונית ב-client-a, לא לתיקייה בתוכה.
  • "לסרוק עכשיו" בהגדרות לא מציע את זה. הוא סורק מחדש כל שורש מוגדר בבת אחת, במקום שדיאלוג לכל תיקייה לא הגיוני, וממפתח בלבד.
  • סגירת הכל פותחת לשונית אחת בכל פעם, עד עשר. סגירת יותר מעשרה מאגרים בבת אחת אומרת שהישנים שבהם אי אפשר לפתוח מחדש מהערימה, אף שהם כולם עדיין באחרונים.
  • pull לא מסונן לפי מי שמפגר. הוא עושה pull לכל מאגר במקטע, כי לדעת מי מפגר היה אומר fetch קודם. pull למאגר מעודכן הוא no-op, זה עולה זמן, לא בטיחות.
  • fetch או pull של מקטע אי אפשר לבטל מערימת הביטול. fetch לא משנה מה שכבר היה לכם. pull שעושה מיזוג או rebase מתהפך לכל מאגר מההיסטוריה של אותו מאגר, לא מכאן.
  • צבעי מקטע הם קוסמטיים. הם לא מסננים, לא ממיינים, לא מקבצים ולא מסנכרנים בשום מקום, וצבע על מקטע של סביבה אינו הצבע של אותה סביבה.
  • Forget מסיר את הרשומה מהרשימה, לעולם לא מהדיסק. אם התיקייה עדיין שם, סריקה של אותו שורש (או פתיחה שוב) מחזירה אותה מיד.

ראו גם: חדר בקרה · סביבות עבודה, לשוניות וקבוצות

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