Mam CENTRALNE repozytorium z trzema repozytoriami deweloperów, które normalnie go pobierają i wypychają.
Mam również dwa inne repozytoria, które pobierają z CENTRAL-ego repozytorium: jedno jest serwerem na żywo, a drugie serwerem testowym / etapowym - każde pobiera z własnej gałęzi.
Scenariusz jest następujący: mam post-update
skrypt przechwytujący na repozytorium CENTRAL, który automatycznie uzyskuje dostęp do repozytoriów testowych i na żywo i uruchamia polecenie pull na każdym z nich. To aktualizuje zarówno serwery testowe, jak i aktywne, wszystko w zależności od tego, który oddział ma nowe zatwierdzenia. To wszystko działa świetnie.
Problem polega na tym, że mogą wystąpić sytuacje, w których pliki mogą być aktualizowane bezpośrednio na serwerze (przez ftp lub cokolwiek innego), a skrypt CENTRAL po aktualizacji zawiedzie, ponieważ wystąpią konflikty scalania / nadpisywania. Nie da się uniknąć tego scenariusza i jest to nieuniknione.
Chciałbym, aby tak się stało: chcę, aby ściąganie z witryn na żywo i testowych zawsze nadpisywało / scalało podczas ściągania. Zawsze. Te repozytoria będą dostępne tylko w wersji „pull”, ponieważ nie są przeznaczone do opracowywania.
We wszystkich moich badaniach nie mogę znaleźć dobrego rozwiązania, aby ciąg zawsze wymuszał zastąpienie plików lokalnych. Czy to w ogóle możliwe? Jeśli tak, byłby to świetny scenariusz rozwoju.