2012-04-22 14 views
9

Mam więc dwa foldery, które chcę dodać do nowego repozytorium, ale odmawiają dodania, ponieważ są już pod kontrolą wersji. Usunąłem wszystkie foldery .svn w tych folderach i ich podfolderach, ale SVN nadal to wie. Jak mogę sprawdzić, które repo, o którym myślą, że są jego częścią, nakazują im, aby się tam nie znajdowali i umieścili je w nowym repozycie bez ich usuwania lub przenoszenia?Pliki SVN thinks są już objęte kontrolą wersji

Odpowiedz

17

Po usunięciu wszystkich folderów .svn w lokalnej kopii roboczej, nie powinno już być wersjonowane. Zwróć uwagę, że starsza wersja SVN służy do tworzenia ukrytego folderu .svn we wszystkich folderach, nie tylko w folderze głównym lub w bezpośrednich podfolderach.

Można również wykonać polecenie export, aby utworzyć pełną, nieskręconą kopię w katalogu docelowym, aby uniknąć ręcznego usuwania folderów .svn.

Inną przyczyną, która może spowodować ten błąd, jest to, że w nowym repozytorium masz już pliki lub katalogi o tej samej nazwie co katalogi/pliki, które próbujesz dodać. Dobrą praktyką byłoby zaimportowanie plików do pustego katalogu, aby uniknąć konfliktów nazw.

Tak więc, aby podsumować, procedura byłaby tak:

  • plików eksportu bieżącego repozytorium lub usunąć wszystkie .svn foldery ręcznie
  • utworzyć pusty folder w nowym repozytorium/docelowej
  • wykonaj zamówienie z folderu docelowego repozytorium na lokalną kopię, wykonując zatwierdzenie, aby dodać wszystkie nowe pliki,
+0

Eksport i import działały szybciej, niż próba usunięcia wszystkich plików '.svn' – Biotox

2

Usunięcie folderów .svn nie będzie działać, jeśli te pliki są już w kontroli wersji. Oto, co musisz zrobić:

(1) Usuń wszystkie foldery, w których występują problemy lub z których wcześniej usunięto foldery .svn.

(2) Wykonaj aktualizację SVN, aby odtworzyć te foldery i włożyć do nich WSZYSTKO (nawet jeśli usuniesz je w następnym kroku).

(3) Teraz usuń foldery, o których mowa.

(4) Wykonaj zatwierdzenie SVN, które podejmie się usunięcia tych folderów z repozytorium. Teraz nie ma ich w repozytorium, tak jak byś chciał.

(5) Możesz teraz ponownie tworzyć foldery i robić, co chcesz - stwórz z nich nowe repozytorium SVN; lub ponownie dodać je do istniejącego repozytorium.

Może się wydawać, że kroki (1) - (2) są zbędne i niepotrzebne; ale żeby być bezpiecznym, powinieneś to zrobić tak czy inaczej.

Powiązane problemy