TL; DR: Dlaczego warto używać czegoś takiego jak Apache Archiva lub Sonatype Nexus jako repozytorium artefaktów zamiast Subversion?
System kompilacji, którego używam, ma obecnie wiele binarnych obiektów blob (obrazy, pliki dźwiękowe, skompilowane pliki binarne itp.), Zarówno jako dane wejściowe, jak i wyjściowe do naszych kompilacji. Nasz system zarządzania nimi jest bardzo ad hoc; niektóre są sprawdzane w naszym repozytorium Subversion wraz z naszym kodem, inne są przechowywane gdzie indziej poza formalną kontrolą wersji.
Staram się to skonsolidować, więc mamy coś bardziej spójnego i łatwego w użyciu, które oddziela binarne artefakty od kodu.
Google mówi mi, że dostępnych jest kilka repozytoriów artefaktów ( Archiva , Nexus , Artifactory ,…), ale po przeczytaniu nie widzę żadnej przewagi nad korzystaniem z nich w stosunku do Subversion. To zajmie się dla nas plikami binarnymi - już to robi dla niektórych naszych plików binarnych, chcielibyśmy po prostu zmienić układ repozytorium, aby oddzielić je od kodu - i ma znaczącą zaletę, że mamy już serwery Subversion i wiedzę specjalistyczną.
Więc. Jaka jest zaleta korzystania z dedykowanego systemu zarządzania artefaktami w porównaniu z ogólnym narzędziem kontroli wersji, takim jak Subversion?
Odpowiedzi:
Krótka odpowiedź: generalnie nie potrzebujesz historii binarnych artefaktów i zmian w tych artefaktach, potrzebujesz tylko konkretnych wersji.
Dłuższa odpowiedź: za każdym razem, gdy dokonujesz niewielkiej zmiany w pliku binarnym, systemy kontroli wersji nie mają możliwości utworzenia delty - różnicy między tymi dwoma plikami - więc tworzy ona zupełnie nową kopię.
W CVCS, takim jak SVN, nie jest to tak duży problem, ponieważ masz tylko jedną centralną kopię swojego repozytorium - twoja lokalna kopia to tylko jedna wersja. (Chociaż nawet wtedy Twoje repozytorium może stać się bardzo duże, co spowalnia proces sprawdzania.) Ale co się stanie, jeśli później przełączysz się na DVCS, w którym każda kopia repozytorium ma pełną historię każdego pliku? Rozmiar zmian staje się bardzo istotny.
A co ci daje w zamian za ból? Jedyne, co oferuje, to możliwość powrotu do poprzedniej wersji repozytorium i wiedza, że masz odpowiednie pliki binarne dla tej wersji.
Ale czy potrzebujesz do tego całego pliku binarnego w repozytorium? A może po prostu masz plik tekstowy informujący proces kompilacji, które wersje pobrać z innego repozytorium w innym miejscu?
To ostatnie jest ogólnie oferowane przez repozytoria artefaktów.
Ponadto niektóre bardziej profesjonalne, takie jak Nexus, dostarczą również informacji na temat licencjonowania artefaktów innych firm, abyś nie ryzykował subtelną klauzulą w tym, co uważasz za bibliotekę FOSS.
źródło
Używamy SVN jako repozytorium kompilacji wersji i robi to bardzo dobrze. Mamy w jednym repozytorium wydań ponad 30 GB różnych wersji wydań i dobrze się sprawdza, wyciągając kompilacje do wdrożenia.
niektóre zalety tego są ..
źródło