Wpis z mikrobloga

#programowanie #git #gerrit

Mam projekt, w którym są dwa oddzielne repozytoria Gitowe/Gerritowe: frontend i backend.

Jednak podczas pracy okazało się, że jak robimy taski, to przeważnie trzeba puszczać dwa commity: na frontend (np. nowe pole w formularzu) i na backend (np. obsługa nowego pola). Takie commity i tak muszą wchodzić razem.

Da się jakoś łatwo scalić oba projekty w jeden, żeby zachować historię na Gicie/Gerricie? Czy może nie powinniśmy tego scalać i mieć nadal dwa osobne?
  • 7
@wqdqweff: niby tak, ale w teorii (dlatego były zrobione dwa repozytoria). Ale w praktyce najczęściej się nie da.

Przykładowy task: "dodaj obowiązkowe pole numer telefonu w formularzu rejestracyjnym".

Na backend leci: dodanie pola w modelu (DTO, DAO itd.) - 2-3 linie kodu.
Na frontend leci: dodanie pola w modelu na froncie i w HTML w formularzu - 2-3 linie kodu.

Jak wejdzie sam backend, to nie będzie dało się zarejestrować, bo
które na backendzie nie istnieje, więc się wywali przy parsowaniu i też rejestracja nie będzie działać.


@mk321: no ale jaki jest problem, żeby zrobić tak, aby się nie wywalało? O to mi właśnie chodzi.
@wqdqweff: bo JSON nie zgadza się z DTO, z perspektywy backendu dane są błędnie wysłane i nie powinien ich przyjąć. Jakby przyjmował takie dane, to większe prawdopodobieństwo błędów (ktoś na froncie zrobi literówkę w nieobowiązkowym polu i się nie wywali i ciężko zauważyć).

Nawet jakbym tak zrobił, że się nie wywali (nie wiem czy na to pozwala framework), to taki jeden commit byłby bez sensu. Ktoś sobie ściąga taki projekt (albo
@mk321 ah, "atomic commits". Gitlab ma to w "backlogu", a gerrit jest już (moim zdaniem) mało wspierany, wiec raczej zostaje ręczna metoda. Dwa repozytoria to jeszcze nic, kilka i często w cyklu, to jest dopiero zabawne.