Korzystając z doświadczeń naszych programistów aplikacyjnych do zarządzania zmianami w kodzie również używamy GITa. To bardzo popularny CVS, z kompletnie innym podejściem niż w naszym poprzednim systemie kontroli wersji. Z tym poprzednim to było bardzo śmiesznie (specjalnie nie wymienię jego nazwy) bo był to produkt potentata produkcji oprogramowania a chyba byliśmy jedynymi w naszym kraju, którzy tego używali. Cena to nie był jego jedyny problem ;-)

Wracając do GITa - w repozytoriumsą trzymane wszystkie pliki, które ulegają zmianie w trakcie życia systemu. W poszczególnych katalogach trzymane są kody określonych typów obiektów, ale także pliki konfiguracyjne czy binarne pliki żrodłowe dla Oracle FORMS/REPORTS. Pomimo, że dla takich plików niepoprawnie wyświetla się różnica pomiędzy wersjami, to jednak uporządkowany sposób przechowywania kolejnych wersji z dołączoną informacją o kolejnych commitach niesie w zamian wystarczającą ilość informacji.

W pracy używany jest pakiet oprogramowania Atlassian-a, w prywatnych projektach również używam GITa, a do zarządzania poprzez WEB używam Gogs

Przykładowa struktura projektu:

Pokazany układ katalogów jest wymuszony ze względu na stosowanie Liquibasea, które opisze w innym artykule. Teraz pokazuję jak może wyglądać przykład takiego układu.

Jednym z założeń jest posiadanie głównego brancha w repozytorium na przykład o nazwie develop, a gdy programista zaczyna pracować nad nowym zadaniem robi kopię aktualnego stanu developa i od tego momentu programista rozwija kod na swoim branchu. Jak najczęściej należy wykonywać commity kolejnych zmian w plikach i pushować do repozytorium by mieć odwzorowanie stanu swoich prac. W momencie zakończenia zadania należy połączyć zmiany z głównym repozytorium. W ramach bitbucketa są do dyspozycji PullRequesty i mechanizm akceptacji zmian w kodzie przez innych. W Gogs jest również mechanizm PR i mergeowania zmian na serwerze, ale zarządzania akceptacją zmian nie potrzebowałem - nie wiem czy jest.

Visual Studio Code - historia zmian GIT

Jeśli chodzi codzienne użytkowania GIT to używam go z linii komend lub z integracji z innymi narzędziami. W tej chwili do zmian w kodzie używam Visual Studio Code, który doskonale wspiera codzienne użytkowanie.

Visual Studio Code - diff konkretnego commita w konkretnym pliku

Gdy chcę obejrzeć zmiany w konkretnym commicie na konkretnym pliku VSC potrafi to ładnie zaprezentować.

Narzędzia programisty PL/SQL - system kontroli zmian