2012-03-20 12 views
6

Dzielimy duże repozytorium svn (100k + obroty) na kilka mniejszych repozytoriów. Używam svndumpfilter (v1.7.2), aby podzielić zrzut i svndumptool/sed, aby filtrować duży zrzut.svndumpfilter --drop-empty-revs zachowuje rewizję podszycia

Wszystko działa dobrze, z tym, że w moim przefiltrowanym pliku zrzutu wciąż są jakieś "poprawki wypełnienia", mimo że użyłem opcji "drop-empty-revs".

Nie jest to zbyt problematyczne, gdy mamy mniej niż 10% bezużytecznych "dopełnień", ale czasami nowe repo ma tylko kilkaset rzeczywistych wersji, które są ukryte w 30k + "wersjach wypinanych".

Oto polecenie używam i przeglądy, które są zawarte

svndumpfilter --drop-empty-revs --renumber-revs include /MyProj <MassiveOldRepo.dump> NewAllCleanRepo.dump 

------------------------------------------------------------------------ 
r3453 | (no author) | 2005-09-29 17:27:54 +0200 (jeu., 29 sept. 2005) | 1 line 

This is an empty revision for padding. 
------------------------------------------------------------------------ 
r3454 | (no author) | 2005-09-29 17:28:27 +0200 (jeu., 29 sept. 2005) | 1 line 

This is an empty revision for padding. 
------------------------------------------------------------------------  

chciałbym wiedzieć, czy istnieje sposób, aby nie zawierać tych zmian jak ja filtrowanie zrzutu (bez konieczności ręcznego ich usuwania z przefiltrowanego zrzutu).

EDIT: Chciałbym dodać, że moje użycie svndumpfilter spada jakieś puste wersje, te przed pierwszym „prawdziwym” rewizji i te po ostatnim „prawdziwej” wersji.

Odpowiedz

3

Po wielu testach przeczytanie kodu źródłowego svndumpfilter (który jest bardzo dobrze skomentowany, dobrze zrobione!), Zdaję sobie sprawę, że te puste wersje nie pochodzą z mojego filtrowania.

Są już leży w moim oryginalnym wysypisko i daty z 2005.

Wnioski: Sprawdź swoje dane pierwszy !!

2

Nie mogę być pewien twojej sytuacji, ale w moim przypadku było to filtrowanie, które spowodowało pojawienie się tysięcy takich wiadomości w dzienniku. Postanowiłem go poprzez włączenie tych dwóch przełączników:

--drop-empty-revs --renumber-revs 

Drugi przełącznik czyni go tak, że jeśli filtr, na przykład, zawarte rev 1000-1200, ale wtedy wykluczone 1201-5000, następny rev zawiera ona będzie numerowane 1201, a nie 5001, co spowodowałoby utworzenie kilku tysięcy pustych obrotów paddingowych.

6

Miałem ten sam problem z pustymi wersjami już zawartymi w repozytorium. Od Subversion 1.7 jest jeszcze nieudokumentowany przełącznik, który pozwala na filtrowanie wszystkich pustych wersji.

svndumpfilter --drop-all-empty-revs include/<oldrepos.dump> newrepos.dump 

Więcej informacji można znaleźć na stronie grokbase.

Powiązane problemy