När vi arbetar på ett privat arkiv som används för vår personliga testning eller utveckling, kan vi ladda upp vissa privata data. De oönskade filuppladdningarna i flera commits kommer att drastiskt öka förvarets storlek.
När utvecklingsarbetet är över och när vi bestämmer oss för att göra förvaret offentligt, måste vi överväga att ta bort den privata data som är ansluten till förvaret i utvecklingsfasen.
Vi kan enkelt ta bort det från applikationen på vår utvecklingsmaskin och ge en commit till förvaret. Men uppgifterna finns fortfarande kvar i de tidigare commits.
Här måste vi hitta en lösning för att ta bort filerna från revisionshistoriken. Får vi ett bra sätt att göra detta kan vi även hjälpa våra kunder med deras förvarskvothantering, även andra Applikationsunderhåll och hjälp.
Jag har gjort en del tester med alternativet 'svndumpfilter' och kunde lyckas hitta en lösning för att ta bort filer från revisionshistoriken för SVN-förvaret.
Om någon stöter på ett problem med svn repository över kvot eller är intresserad av att ta bort oönskade filer från historiken, kan du följa stegen nedan:
1. Ta en dumpning av ditt förråd.
svnadmin dump /var/svn/REPOSITORY > dumpfil
2. Filtrera dumpfilen.
svndumpfilter exclude /path/of/file/to/remove < dumpfile > newdumpfile
Detta tar bort filen "/path/of/file/to/remove". Du kan ta bort flera filer samtidigt så här:
svndumpfilter exkludera fil1 fil2 < dumpfil > nydumpfil
3. Skapa ett nytt arkiv.
svnadmin skapa /var/svn/REPOSITORY_NEW
4. Importera dumpfilen till det nya arkivet.
svnadmin ladda /var/svn/REPOSITORY_NEW < nydumpfil
5. Ersätt det gamla arkivet med det nya.
mv /var/svn/REPOSITORY /var/svn/REPOSITORY_OLD
mv /var/svn/REPOSITORY_NEW /var/svn/REPOSITORY
För att kontrollera detta, bläddra i din historik och se en av filerna du tog bort, du får ett felmeddelande om att filen inte kunde hittas. Du kan behöva göra en ny utcheckning och ett åtagande för att se om allt fungerar som förväntat. Om allt fungerar bra kan vi ta bort dumpfilerna och den gamla säkerhetskopian av arkivet.
Ge det ett försök. Skål!!
Postat på uppdrag av Sanal Inasu
Kontakta oss.