widzę że mercurial wydajnie kompresuje pliki w repozytoriumW jaki sposób kompresuje pliki mercurial w repozytorium?
(repo/.hg/store/data)
Czy ktoś wie, jaki rodzaj kompresji służy do plików repozytorium?
Dzięki.
widzę że mercurial wydajnie kompresuje pliki w repozytoriumW jaki sposób kompresuje pliki mercurial w repozytorium?
(repo/.hg/store/data)
Czy ktoś wie, jaki rodzaj kompresji służy do plików repozytorium?
Dzięki.
Istnieją dwa stopnie sprężania Mercurial repozytorium: delta przechowywania i zlib compression.
Ponadto różne inne części wykorzystują również kompresję. Na przykład pakiety mogą być kompresowane zarówno przy pomocy gzip, jak i bzip2, tak jak archiwum archiwów - ale nie sądzę, że o to prosiłeś.
Należy zauważyć, że Mercurial jest w trakcie zmiany domyślnej kompresji na Zstandard, co daje znaczną poprawę wydajności i współczynników kompresji. Mercurial 4.1 używa zstd do transmisji, jeśli zarówno klient, jak i serwer go obsługują, ale format repozytorium jeszcze się nie zmienił.
Wstępne wersje plików są kompresowane przy użyciu opróżnić (sam algorytm jako ZIP), ale dla zaktualizowanych plików, przechowuje tylko Mercurial (binarne) diff przeciwko poprzedniej wersji.
próbuje również zrobić dobry uczynek: Po wypuszczeniu powietrza JPEG okazuje się większa niż w oryginale, to nie będzie przechowywać go „skompresowany”, na przykład.
To naprawdę robi trochę więcej. Jeśli tylko * przechowujesz delty, czas regeneracji zapisanego pliku z revlogów rośnie w zależności od liczby zestawów zmian (to jest algorytmu O (N)). Aby związać ten proces, Mercurial okresowo przechowuje cały plik * ponownie * i opiera się na kompresji zlib, aby zgnieść ją z powrotem do rozsądnego rozmiaru. – quark
Można znaleźć Mercurial Autor Matt Mackall's paper w formacie revlog ciekawego.
Gdy dane zostaną skompresowane w miarę sprawnie, próba ponownego skompresowania spowoduje zwykle nieco większy plik. –