Mam dwa ściśle powiązane projekty (A i B), które mają wspólny kod źródłowy (S). Obie zostaną wydane w tym samym czasie, a wydana wersja powinna zawsze używać tej samej wersji wspólnego kodu. Współdzielony kod S będzie często zmieniany.Udostępnianie kodu między dwoma projektami w git
Tak będzie wyglądał kiedyś tak:
- Wersja 1 używa wersji S 1
- B wersja 1 wykorzystuje wersja S 1
- wersja 2 korzysta z wersji S 2
- B wersja 2 używa S wersji 2
Jaki jest najlepszy sposób na obsłużenie tego z git (i/lub niektórych narzędzi, które używają git)?
Oto moje obawy:
- Projekt A i Project B powinna być w oddzielnych repozytoriów (są one powiązane, ale nie chcą mieć swobodny przepływ kodu między nimi)
- Jeśli współdzielony kod jest aktualizowany w jednym projekcie, powinien być automatycznie aktualizowany w innym (nie chcę mieć sytuacji, gdy programista zapomniał coś zrobić i zakończył posiadanie przestarzałej wersji udostępnionego kodu).
Jak rozumiem jedną z odpowiedzi kanonicznych jest "użyj git submodule". Jednak przeczytałem o tym około criticism. Czułem, że jest bardziej zaprojektowany do dzielenia bibliotek, które rzadko się zmieniają.
Innym podejściem, które czytam używał git subtree
I istnieje kilka mniej popularnych metod: Repo, GitSlave
Jaki byłby najlepszym podejściem do obsługi tego typu dzielenia kodu?
linki nie są dobre, naprawiłem podtekst, ale nie mogę odgadnąć innych (użyj submodule i krytyki git) – CharlesB
Dzięki. Naprawiłem wszystkie linki poza jednym. Jeśli wstawię go, z jakiegoś powodu został on podłączony do niewłaściwego linku. –
Możesz to naprawić bezpośrednio w kodzie kodowania – CharlesB