Repozytoria
Centrum dowodzenia odpowiada na pytanie "które z moich otwartych repozytoriów mnie potrzebuje?". Zna tylko karty aktywnej przestrzeni roboczej. Repozytoria odpowiadają na inne: gdzie jest to repozytorium i czy w ogóle jest gdzieś otwarte? Obejmują wszystko, co Gitcito kiedykolwiek widział. Każdą przestrzeń, każdą kartę, oraz to, co znajdzie, skanując foldery, które mu wskażesz.

Sekcje
Repozytorium może pojawić się w więcej niż jednej sekcji. Celowo: każda sekcja jest pełną odpowiedzią na własne pytanie, nie wycinkiem jednej listy.
| Sekcja | Co w niej jest |
|---|---|
| Otwarte repozytoria | Każda karta aktywnej przestrzeni roboczej w tej chwili |
| Ulubione | Repozytoria z gwiazdką, we wszystkich przestrzeniach |
| Ostatnie | Wszystko, co otwierałeś, najnowsze na górze. Bez limitu, w odróżnieniu od 8-elementowej listy w launcherze |
| Jedna na zapisaną przestrzeń | Karty tej przestrzeni, żebyś mógł wskoczyć do innej, nie przełączając się najpierw |
| Wszystkie repozytoria | Każde repozytorium, które rejestr zna, otwarte albo nie |
Pasek nad listą to jeden pas: Zwiń wszystko i Rozwiń wszystko, potem pole wyszukiwania, które zajmuje resztę szerokości, potem przełącznik podsumowania WIP.
Wyszukiwanie filtruje wiersze we wszystkich sekcjach naraz i ukrywa sekcje, które nic nie trafiają, żeby wyniki nie tonęły pod kolumną pustych nagłówków. Trafia nazwę repozytorium, alias, właściciela albo dowolny fragment ścieżki. Gdy nigdzie nic nie pasuje, strona to mówi zamiast stać się pusta.
Przy pustym polu każda sekcja jest widoczna, nawet gdy nic nie trzyma: "Ulubione 0" mówi, że sekcja istnieje i jest pusta, i warto to wiedzieć. To szum dopiero wtedy, gdy już szukasz.
Kolory sekcji
Sekcje przychodzą już pokolorowane. Każdy nagłówek dostaje własny odcień ze standardowej palety, w tym nowa przestrzeń w chwili, gdy się pojawia. Chodzi o orientację, nie o ozdobę: przy sekcji na projekt i pięciu wbudowanych sekcjach nad nimi długa lista przestaje mówić, gdzie jesteś, a odcień czyni nagłówek rozpoznawalnym, zanim go przeczytasz.
Żeby zmienić jeden, użyj ⋮ na jego nagłówku: Zmień kolor… otwiera ten sam wybór koloru co karty grup i foldery, dziesięć gotowych próbek oraz dowolna wartość hex. Przywróć kolor pojawia się, gdy nadpisałeś sekcję, i wraca do przypisanego domyślnego.
Trzy rzeczy warte zapamiętania:
- Przypisanie jest stabilne, nie losowe. Te same sekcje dostają te same kolory przy każdym starcie, a dodanie przestrzeni nigdy nie przekolorowuje tych powyżej. Zapisują się tylko kolory, które zmienisz.
- Kolor jest lokalny dla tej strony. Pokolorowanie tu sekcji przestrzeni nic nie mówi o tej przestrzeni gdzie indziej w Gitcito. Kolor jej karty to osobne ustawienie.
- Kolor jest rozcieńczany do niskiego procentu powierzchni, zamiast leżeć pełną siłą, żeby nasycony wybór zostawał czytelnym tłem w jasnym i ciemnym motywie. Bardzo blady kolor będzie więc wyglądał niemal neutralnie.
Przy więcej niż dziesięciu sekcjach paleta się powtarza, dwa nagłówki mogą więc dzielić odcień.
Co sprawia, że repozytorium jest znane
Wiersz pojawia się tutaj, gdy Gitcito je kiedyś otworzył, albo znalazł pod folderem do skanowania. Nic nie jest indeksowane tylko dlatego, że leży na dysku w miejscu, o którym nigdy mu nie wspomniałeś.
Otwarcie tej strony indeksuje też to, co masz otwarte w karcie, i tak repozytoria przywrócone przy starcie dostają wiersz bez ponownego otwierania. Obejmuje tylko otwarte karty i dzieje się przy pierwszej wizycie każdej sesji, nie raz na zawsze. Repozytorium, któremu dasz Forget, zostaje zapomniane, dopóki nie otworzysz go znowu.
Foldery do skanowania ustawia się w Ustawieniach:
- Głębokość to, ile poziomów katalogów skan schodzi poniżej korzenia (domyślnie 3, limit 10).
- Skan zatrzymuje się na repozytorium. Checkout wrzucony do środka albo submodule w repo nie jest indeksowany jako własny wiersz.
- Nigdy nie wchodzi do katalogów zaczynających się od kropki i pomija
node_modulesoraz podobne foldery zależności. - Czyta tylko nazwy folderów: znalezienie katalogu
.gitczyni coś repozytorium tutaj. Nazwa, właściciel i gałąź biorą się z plików w.git(HEAD, config), nigdy przez uruchomieniegit.
Wiersze
Wiersze leżą w kolumnach: gwiazdka, nazwa (uwzględnia alias, jeśli zmieniłeś nazwę), właściciel (z URL-a remote origin), chip gałęzi, podsumowanie WIP i akcje. Kolumny są wspólne dla całej strony, nie rozmiarowane per sekcja, więc nazwa w ostatniej sekcji stoi pod nazwą z pierwszej i lista czyta się jak tabela, nie jak stos.
Końcowe akcje widać w spoczynku, nie dopiero po najechaniu: otwórz w karcie oraz ⋮, które otwiera to samo menu kontekstowe repozytorium co kliknięcie prawym. To menu używane wszędzie w Gitcito, rozszerzone o dwa wpisy właściwe tej stronie:
| Akcja | Co robi |
|---|---|
| Gwiazdka / zdejmij gwiazdkę | Dodaje repozytorium do Ulubionych albo je z nich wyjmuje |
| Locate… | Ponownie wskazuje przeniesiony lub przemianowany folder. Alias, profil i gwiazdka zostają. Jeśli cel miał już własne ustawienia, wygrywa cel |
| Forget | Usuwa wpis z tej listy. Nigdy nie rusza folderu na dysku |
Repozytorium, którego folder już nie istnieje, pokazuje się jako brakuje, z Locate… i Forget w linii zamiast zwykłych akcji.
Gwiazdka to przełącznik ulubionych, nie pole wielokrotnego wyboru. Praca zbiorcza idzie tu per sekcja, nie per zaznaczenie. Patrz niżej.
Zamiana drzewa folderów w przestrzenie
Twój folder z kodem już koduje grupowanie, którego chcesz. Jeśli ~/Code
trzyma client-a, client-b i personal, to są konteksty, między którymi
się przełączasz, a przestrzeń robocza jest dokładnie tym,
z własnym paskiem kart.
Dodaj folder do skanowania… proponuje je zbudować. Po zindeksowaniu skanu okno wypisuje foldery bezpośrednio w tym, który wybrałeś, z liczbą repozytoriów w każdym. Zaznacz te, które chcesz. Każdy staje się przestrzenią z jedną kartą na repozytorium.
| Wiersz | Znaczenie |
|---|---|
| Nazwa folderu i liczba | Zaznaczony domyślnie. Staje się przestrzenią |
| "{n} nowych, scala do …" | Przestrzeń dla tego folderu już istnieje. Dodawane są tylko nowe repozytoria |
| "Już w obszarze roboczym" | Nic do zrobienia, wyszarzone zamiast ukryte |
| Nazwa samego korzenia | Repozytoria leżące luzem w wybranym folderze, nie w podfolderze. Domyślnie odznaczone |
Repozytorium ląduje pod pierwszym folderem pod korzeniem, jak głęboko by
nie siedziało: ~/Code/client-a/nested/app idzie do client-a. Foldery bez
repozytoriów nie są oferowane.
Nic nie powstaje, dopóki nie potwierdzisz, a anulowanie zostawia indeks skanu. Repozytoria i tak są znane, i to właśnie robił ten przycisk wcześniej.
Skanowanie później jeszcze raz
Bezpieczne do powtórzenia. Drugi skan dodaje i nigdy nie usuwa:
- Nowe repozytoria dopisywane są do pasującej przestrzeni.
- Te, które przeniosłeś, przemianowałeś albo usunąłeś ręcznie, zostają jak je zostawiłeś.
- Przestrzeń, którą przemianowałeś, nadal jest rozpoznawana. Gitcito pamięta folder, z którego wyszła, więc scala zamiast tworzyć duplikat.
- Repozytorium skasowane z dysku trzyma kartę i pokazuje się jako brakujące.
Wygenerowane przestrzenie są zwyczajne. Zmieniaj nazwę, kolejność, kolor albo usuwaj je jak każdą inną. Nic w nich nie zostaje specjalne.
Zamykanie wszystkiego, co otwarte
Nagłówek Otwarte repozytoria niesie przycisk zamykania. Zamknij repozytorium, gdy jedno jest otwarte, Zamknij wszystkie karty, gdy kilka. Jest wyłączony, gdy nic nie jest otwarte.
Zamyka karty, które trzymają repozytoria, i zostawia karty stron w spokoju, żeby strona Repozytoria, na której stoisz, nie zamknęła się sama. Nic na dysku nie jest ruszane, nic nie jest commitowane, stashowane ani odrzucane. Karta to tylko widok.
Zamknięcie kilku pyta najpierw i mówi, ile. Zamknięcie jednego nie: to tani błąd, cofany zwykłym skrótem otwierania zamkniętej karty. Zamknięte karty idą na ten sam stos dziesięciu, którego używa pojedyncze zamknięcie, i otwierają się w kolejności, w jakiej stały na pasku. Więcej niż dziesięć naraz nie wróci w całości.
Fetch i pull całej sekcji
Każdy nagłówek sekcji niesie przycisk fetch i dzielony przycisk pull. Działają na każde repozytorium w tej sekcji, pomijając te, których folder brakuje. Repozytoria nie muszą być otwarte. Sekcja repo, których nie otwierałeś w tej sesji, działa tak samo.
Oba idą po kolei, nie równolegle, żeby sekcja czterdziestu repozytoriów nie odpalała czterdziestu procesów git naraz. Pasek stanu pokazuje, nad którym repozytorium trwa praca i jak daleko jest przebieg, a cały wsad kończy się jednym tostem, nie jednym na repozytorium. Jeśli część padnie, tost mówi, ile wyszło i ile nie. Przebieg nie zatrzymuje się na pierwszym błędzie.
Strzałka obok pull wybiera, co oznacza pull:
| Tryb | Co robi |
|---|---|
| Pull (fast-forward jeśli możliwe) | Domyślne Gita. Fast-forward, gdy może, merge, gdy nie może |
| Pull (tylko fast-forward) | Odmawia zamiast tworzyć commit merge |
| Pull (rebase) | Odtwarza twoje lokalne commity na wierzchu upstreamu |
Ten wybór to jedna globalna preferencja, nie per sekcja: opisuje, jak robisz pull, i ustawienie go ze strzałki jednej sekcji zmienia go wszędzie. Każdy pull wielu repozytoriów go honoruje. Przyciski sekcji tutaj, fetch/pull na karcie grupy i zbiorczy pull centrum dowodzenia. Pull pojedynczego repozytorium z paska zostaje nietknięty, bo to menu i tak pyta, jakiego pulla chcesz.
Pasek akcji
Otwórz folder…, Klonuj… i Dodaj folder do skanowania…. Trzy sposoby, żeby włożyć repozytorium do rejestru Gitcito, z tej samej strony, na której szukasz już znanego.
Podsumowanie WIP
Opcjonalne pole. Włączone, każdy rozwinięty wiersz odpala prawdziwy
git status i pokazuje niezacommitowaną pracę oraz stan sync. Wyłączone,
wiersze nie kosztują nic poza czytaniem plików w .git.
Jest opcjonalne celowo: podsumowanie kosztuje mniej więcej pięć procesów git na repozytorium, paczkami po osiem, żeby duży rejestr nie zatrzymywał interfejsu. Włączenie to świadome "sprawdź wszystko, co teraz widzę", nie stały koszt.
Ograniczenia
- Nic na tej stronie nie odświeża się na timerze. Otwórz stronę ponownie albo wyłącz i włącz podsumowanie WIP, żeby zobaczyć bieżący stan.
- Podsumowanie WIP obejmuje tylko rozwinięte sekcje. Zwinięta sekcja nie pokazuje statusu, zaznaczone pole czy nie.
- Repozytorium jest znane dopiero, gdy je otworzysz albo zeskanujesz folder, który je zawiera. Stąd nie da się przeszukać systemu plików.
- Budowania przestrzeni nie cofniesz jednym ruchem. Anulowanie okna nic nie tworzy, ale plan, który potwierdziłeś i potem żałujesz, odwija się przez ręczne usunięcie przestrzeni.
- Tylko jeden poziom w głąb. Foldery poniżej pierwszego poziomu są
spłaszczane do paska kart przestrzeni.
client-a/nested/appstaje się kartą wclient-a, nie folderem w środku. - "Skanuj teraz" w Ustawieniach tego nie oferuje. Skanuje wszystkie skonfigurowane korzenie naraz, gdzie okno per folder nie ma sensu, i tylko indeksuje.
- Zamknij wszystkie otwiera karty po jednej, do dziesięciu. Zamknięcie więcej niż dziesięciu repozytoriów naraz znaczy, że najstarszych nie otworzysz ze stosu, choć wszystkie nadal są w Ostatnich.
- Pull nie filtruje po tym, co jest w tyle. Robi pull każdego repozytorium w sekcji, bo wiedzieć, które są w tyle, znaczyłoby najpierw zrobić fetch. Pull aktualnego repozytorium to no-op, kosztuje czas, nie bezpieczeństwo.
- Fetch albo pull sekcji nie cofniesz ze stosu cofania. Fetch nic nie zmienia w tym, co już miałeś. Pull, który robi merge albo rebase, cofa się per repozytorium z historii tego repozytorium, nie stąd.
- Kolory sekcji są kosmetyczne. Nie filtrują, nie sortują, nie grupują ani nie synchronizują nigdzie, a kolor na sekcji przestrzeni nie jest kolorem tej przestrzeni.
- Forget usuwa wpis z listy, nigdy z dysku. Jeśli folder nadal tam jest, skan tego samego korzenia (albo ponowne otwarcie) wraca z nim od razu.
Zobacz też: Centrum dowodzenia · Przestrzenie, karty i grupy