Automatycznie wyklucz cherry-pick, revert i rebase ze statystyk
Włączony przełącznik Wyłącz/Włącz sprawia, że commity rozpoznane jako cherry-pick, revert albo rebase nie wliczają się do Kalorii i Linii ani do Retencji, żeby ta sama praca (przeniesiona z innej gałęzi, cofnięta, odtworzona) nie liczyła się do statystyk więcej niż raz.
Reguły rozpoznawania
Każdy commit dostaje jedną z czterech klasyfikacji: zwykły, revert, cherry-pick albo duplikat po rebase. Rozpoznanie działa niezależnie od przełącznika, więc klasyfikacja jest zapisana zawsze; przełącznik decyduje tylko o tym, czy duplikat wypada ze statystyk.
| Klasyfikacja | Na czym opiera się rozpoznanie |
|---|---|
| Revert | linia This reverts commit <identyfikator>, którą Git dopisuje do wiadomości przy git revert. Liczy się treść wiadomości, nie jej pierwszy wiersz. |
| Cherry-pick | adnotacja cherry picked from commit <identyfikator>, którą Git dopisuje przy git cherry-pick -x. |
| Duplikat po rebase | zestawienie z commitami już policzonymi: to samo repozytorium, ten sam autor, ten sam znacznik czasu autorstwa i ten sam zestaw zmienionych plików. Porównywane są ścieżki plików, nie ich treść. |
Pierwsze dwie reguły czytają wyłącznie wiadomość commita. Trzecia jest jedyną, która porównuje commit z historią, i to ona wychwytuje przepisane identyfikatory po rebase albo force pushu, gdzie żadna adnotacja nie powstaje.
Granice tego mechanizmu
Tłumaczą one wyniki, które wyglądają na błąd:
- Revert napisany ręcznie nie zostanie rozpoznany. Cofnięcie zmian bez adnotacji Gita, na przykład przez
git revert --no-commiti własną wiadomość, jest dla Q247 zwykłym commitem. - Cherry-pick bez przełącznika
-xnie zostawia adnotacji. Wychwyci go dopiero reguła trzecia, i tylko wtedy, gdy autor, znacznik czasu i zestaw plików się zgadzają. - Rebase ze zmianą znacznika czasu autorstwa (na przykład przy
git commit --amend) tworzy commit, którego reguła trzecia nie skojarzy z pierwotnym. - Sam revert jest wykluczany, cofnięty commit zostaje. Praca, która została wycofana, liczy się więc raz, a nie zero razy.
- Dwa różne commity tego samego autora, z tym samym znacznikiem czasu i tym samym zestawem plików, zostaną uznane za duplikat. Zdarza się to przy commitach generowanych skryptem albo masowym formatowaniu.
- Ręczna decyzja ma pierwszeństwo. Commit włączony ręcznie do statystyk zostaje w nich niezależnie od klasyfikacji, co opisuje sekcja niżej.
Zmiana przełącznika nie przepisuje wszystkich commitów naraz. Q247 uzupełnia je partiami w tle, więc na dużej organizacji statystyki zmieniają się przez kilka kolejnych przebiegów, a nie od razu po zapisie. W tym samym rytmie zmienia się Retencja.
Nie ma tu przycisku zapisu ani pytania o potwierdzenie. Kliknięcie od razu zmienia sposób wyliczania statystyk dla całej organizacji.
Wykluczenie pojedynczego commita
Poza automatyczną regułą można wykluczyć konkretny commit. Ta czynność odbywa się poza Konfiguracją: w oknie szczegółów commita, otwieranym z listy przyrostów na stronach Projekt, Zespół i Uczestnik. Okno ma przełącznik z dwoma stanami, "Wyklucz ze statystyk" i "Uwzględnij w statystykach", więc decyzję można w każdej chwili odwrócić.
Uprawnienia do tej akcji różnią się od uprawnień do pozostałych ustawień zakładki. Commit może wykluczyć ze statystyk i przywrócić:
- menedżer zespołu, do którego należy autor commita, albo zespołu nadrzędnego w drzewie,
- menedżer korzenia drzewa zespołów, przy każdym commicie w organizacji,
- kierownik projektu, z którego pochodzi commit,
- menedżer zespołu przypisanego do projektu,
- menedżer zespołu, do którego należy kierownik projektu.
Menedżer zespołu autora commita i menedżer zespołu nadrzędnego mają tę akcję w każdym projekcie, również takim, do którego sami nie mają dostępu. Menedżer zespołu to rola zespołowa Manager, opisana w Uprawnieniach.
Role Viewer projektu, zwykłego uczestnika projektu i członka zespołu same w sobie tej akcji nie dają. Podobnie rola Admin, która nie otwiera dostępu do danych biznesowych: administrator bez jednej z ról z listy akcji nie zobaczy. Q247 sprawdza dostępność przy każdym commicie osobno: gdy okno pokazuje kilka commitów, przełącznik może się pojawić tylko przy części z nich. Pełny podział opisują Uprawnienia.
Wykluczenie działa na jednym commicie i obejmuje wszystkie metryki liczone z jego zawartości: Kalorie, Przyrosty i Linie oraz wszystko, co z nich powstaje.
Commit przywrócony akcją "Uwzględnij w statystykach" liczy się także w Retencji i we wskaźniku R30 w panelu Adopcji AI. Ręczna decyzja nie znosi natomiast wykluczenia wzorcami plików.
Kolumny Retencji i wskaźnik R30 w Adopcji AI pokazują zmianę po zamknięciu okna szczegółów commita, a pozostałe kolumny tabel, na przykład Kalorie, po kolejnym cyklicznym przeliczeniu danych w tle.
Zobacz też
- Wykluczenia wzorców plików: pomijanie całych kategorii plików
- Widoczność przyrostów: próg, powyżej którego przyrost chowa się z list
- Uprawnienia: kto może wykluczyć commit, a kto zmienić ustawienia organizacji