Byłem samotnym programistą w konkretnym projekcie, ale teraz ktoś inny dołączył jako współpracownik. Tylko ja na zdjęciu, aktualizacje bundler
były gładkie i nigdy nie myślałem dwa razy o Gemfile.lock
śledzonym przez Git.Jak radzić sobie z aktualizacjami bundlerów (Gemfile.lock) w kontekście współpracy?
Nowy współpracownik prowadził bundle install
po klonowanie repo i Gemfile.lock
został zaktualizowany w następujący sposób:
Gemfile.lock
@@ -141,7 +141,7 @@ GEM
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
- thor (< 2.0, >= 0.14.6)
+ thor (>= 0.14.6, < 2.0)
raindrops (0.10.0)
rake (0.9.2.2)
rdoc (3.12)
@@ -164,7 +164,7 @@ GEM
sprockets (2.1.3)
hike (~> 1.2)
rack (~> 1.0)
- tilt (!= 1.3.0, ~> 1.1)
+ tilt (~> 1.1, != 1.3.0)
thor (0.16.0)
tilt (1.3.3)
treetop (1.4.10)
@@ -175,7 +175,7 @@ GEM
tzinfo (0.3.33)
uglifier (1.3.0)
execjs (>= 0.3.0)
- multi_json (>= 1.0.2, ~> 1.0)
+ multi_json (~> 1.0, >= 1.0.2)
unicorn (4.3.1)
kgio (~> 2.6)
rack
Ta zmiana została wepchnięta do nazwanego odgałęzienie głównego. Jak mam sobie radzić z tą zmianą?
Myślenie głośno: Czy scalam żądanie wyciągnięcia z GitHub? Czy po prostu wycofuję się z wcześniejszego źródła bez początkowego żądania wyciągania? Czy mogę uruchomić konkretną komendę bundler, aby zsynchronizować rzeczy z innym współpracownikiem Gemfile.lock
? Czy jest coś, co inny współpracownik mógłby zrobić inaczej, tak, że nie spowodował aktualizacji żadnych klejnotów (raczej, aby pobrać klejnoty określone w istniejącym Gemfile.lock
)? Jakie są najlepsze praktyki w tej sytuacji?
Posiadanie Gemfile.lock pod kontrolą wersji jest uważane za najlepszą praktykę. Zapewnia to, że ten sam pakiet zależności zostanie zbudowany przy każdym instalowaniu aplikacji, niezależnie od tego, czy jest to inny programista działający na kodzie źródłowym, czy też pakiet dla serwera produkcyjnego. – ianpetzer
upewnij się, że używasz tej samej wersji pakietu, aby wygenerowany plik Gemfile.lock wyglądał tak samo i nie generował różnych rzeczy, które byłyby fałszywym alarmem – hammady