Niedawno zaktualizowałem repozytoria Subversion ze starej wersji 1.2.3 do 1.6.0 za pomocą zrzutu / ładowania svnadmin . Wszystkie stare repozytoria używały tego samego UUID (repozytoria zostały utworzone za pomocą kopiowania repozytorium szablonów). Zmieniłem UUID w kilku nowych repozytoriach za pomocą svnadmin setuuid, aby były unikalne. Nie mogę po prostu przenieść moich istniejących kopii roboczych tych repozytoriów, ponieważ UUID są różne. Wiem o eksportowaniu kopii roboczej i wyewidencjonowaniu z nowego repozytorium, ale zastanawiałem się, czy istnieje sposób, aby po prostu zmienić UUID kopii roboczej w miejscu, tak jak robi to svnadmin setuuid dla repozytoriów.
Oto polecenie, które rozwiązuje problem w przypadku SVN 1.6 i niższych:
Zastąp
old-uuid
inew-uuid
rzeczywistymi identyfikatorami.źródło
sed -i "" 's/old-uuid/new-uuid/'
i działa (tylko dodatkowe puste podwójne cudzysłowy) ( ref )Odpowiedź Yvesa Martina działała dla nas świetnie w przypadku wielu kopii roboczych z SVN 1.8, ale ostatecznie natrafiliśmy na przypadki, w których to nie działało.
Uruchomienie polecenia Yves bez „where id = 1” działało we wszystkich przypadkach dla nas:
Badając, dlaczego tak się stało, dowiedziałem się, że podczas przenoszenia repozytorium przechowywanych jest wiele identyfikatorów UUID, w przeciwieństwie do intuicji Yvesa, że tak się nie powinno stać.
Nowy wpis do tabeli REPOSITORY jest dodawany po przeniesieniu zamiast aktualizowania istniejącego, przechowując przyrostowy identyfikator z nowym katalogiem głównym repozytorium i jego UUID. Tak więc przypadkami, które nie działały poprawnie, były kopie robocze, które zostały już przeniesione w przeszłości: Wydaje się, że polecenie działa, ale zmieniono tylko początkowy identyfikator UUID, a nie ten, który jest obecnie używany.
Za pomocą tego polecenia można sprawdzić listę przechowywanych katalogów głównych i UUID w kopii roboczej:
W końcu zauważę, że musiałem użyć innego zestawu cytatów dla plików wiersza poleceń / plików wsadowych systemu Windows, w następujący sposób:
źródło
W sekcji „ Zarządzanie UUID repozytorium ” w książce svn red-bean może znaleźć odpowiedź, której szukasz.
źródło