IntraDom Network Krzysztof Błachut

0 %
Krzysztof Andrzej Błachut
IT Administrator
& Consultant
  • Residence:
    Wrocław, Poland
Hard skills
  • Debian Linux Administration
  • Cloudflare Zero Trust
  • Bareos / Bacula
  • Puppet, Terraform, Ansible
  • Documentation writing
  • Virtualization
  • Prometheus, Zabbix, Grafana
  • PHP, JS, SQL, GIT
  • MySQL, PostreSQL
  • Hardware management
  • Electrical rights (SEEP D, E) up to 1kV
  • Category B driving licence
Languages
  • Polish
  • English
Hobby
  • Urban exploration
  • IoT / Home automation and electronics
  • 3D printing

Porządki w repozytorium GIT

2011-12-19

Przy instalacji FishEye i importowaniu doń repozytoriów GIT natknąłem się na nie mały problem – zaimportowane do GITa repozytorium miało już dodanych sporo twórców, co powodowało zatrzymanie indeksowania – bo licencja nie pozwalała na więcej osób. Rozwiązanie okazało się być bardzo proste – wystarczy scalić wiele identyfikatorów twórców do jednoznacznych. Banał! Nawet jest do tego ładne graficzne narzędzie w FishEye… tylko, że nie działa 🙁

Do rzeczy – czyli jak połączyć wiele identyfikatorów twórców:

Poleceniem

git shortlog -se

możemy wyeksportować wszystkich obecnych twórców. Z tej listy potrzebne są nam tylko maile/identyfikatory zaimportowane z SVNa.

W głównym katalogu repozytorium (tam gdzie jest katalog .git) tworzymy plik .mailmap w wstawiamy do niego wszystkie identyfikatory twórców – po jednym na linię. Następnie poprzedzamy każdy błędny wpis przez właściwy odpowiednik. Jeżeli jakiś twórca ma tylko prawidłowy wpis, to można go pominąć. Przykładowy plik .mailmap może wyglądać tak:

Bakus <krzysztof.blachut@firma.it> <bakus@1a2b3c5d-d18e-12ed-a22c-987fabcd1234>
Pan Pierwszy <pan.pierwszy@firma.it> <misiu@1a2b3c5d-d18e-12ed-a22c-987fabcd1234>
Pan Pierwszy <pan.pierwszy@firma.it> <misiaczek@gmail.com>
InnaFirma <support@innafirma.it> <commiter1@1a2b3c5d-d18e-12ed-a22c-987fabcd1234>
InnaFirma <support@innafirma.it> <commiter2@1a2b3c5d-d18e-12ed-a22c-987fabcd1234>
InnaFirma <support@innafirma.it> <commiter3@1a2b3c5d-d18e-12ed-a22c-987fabcd1234>
InnaFirma <support@innafirma.it> <commiter4@1a2b3c5d-d18e-12ed-a22c-987fabcd1234>

Po zapisaniu pliku robimy commit i push. Dopiero po tej operacji można bezpiecznie zaimportować repozytorium do FishEye. Wszystkie wpisy przykładowych commiter* trafią do FishEye jako jeden użytkownik – InnaFirma. Przydaje się to nie tylko w przypadku mapowania użytkowników po imporcie z SVNa, ale także i przy niereformowalnych deweloperach, którzy nie są w stanie prawidłowo ustawić wszystkich miejsc z których wysyłają zmiany 🙂

Posted in GIT, Linux, PracaTags:
Write a comment
© 2007-2024 All Rights Reserved.