Mam dużą aplikację w środowisku produkcyjnym, które próbuję przenieść pod kontrolą wersji. Stworzyłem więc nowe repozytorium i zaimportowałem aplikację, minus różne katalogi i pliki, które nie powinny być pod kontrolą wersji. Teraz muszę sprawić, aby zainstalowana kopia była kasowana (ale nadal zachowuje dodatkowe pliki). W tym momencie, w najnowszej wersji SVN, po prostu wykonam kasę nad istniejącym katalogiem przy użyciu opcji --force. Niestety, mam starą wersję SVN, wcześniej, kiedy dodano opcję --force (i nie można jeszcze uaktualnić ... długiej historii).Kopiowanie katalogów .svn z kasy do płatności niebędącej płatnością do realizacji.
Więc, sprawdziłem aplikację w innym katalogu i chcę po prostu skopiować wszystkie katalogi .svn do oryginalnego katalogu, zamieniając oryginał w kasę, pozostawiając w spokoju dodatkowe pliki. Teraz może po prostu mam ciężki dzień i brakuje mi czegoś, co jest w zwykłej witrynie, ale nie mogę tego zrozumieć. Oto sposoby próbowałem dotąd:
użycie rsync: Nie mogę wydawać się trafić w odpowiednią kombinację włączać i wyłączać dyrektyw rekursywnie przechwytywanie wszystkich katalogów .svn ale nic więcej.
Użyj cp: Nie mogę znaleźć dobrego sposobu na to, aby trafić wszystkie katalogi .svn w całej aplikacji.
Użyj find z -exec cp: Występują problemy z wiodącą częścią ścieżek znalezionych plików zepsującymi ścieżki docelowe. Mogę wykluczyć to przy użyciu -printf "% P", ale nie wydaje się, że należy do {} zamiennika dla exec.
Użyj find z xargs do cp: Występują problemy z wyszukiwaniem folderów podrzędnych przed wysłaniem ich rodziców. Niestety, find nie ma opcji -szeregu.
Jakieś myśli tam?
Inne info:
- bash 3.0.0.14
- rsync 2.6.3 p28
- cp 5.2.1
- svn 1.3.2
Upewnij się, że pamiętasz, aby ustawić uprawnienia do folderów .svn, w przeciwnym razie może to być potencjalny exploit bezpieczeństwa. Ta strona wyjaśnia problem: http://www.adamgotterer.com/2009/01/26/hacking-the-svn-directory/ – Joshua