2013-03-19 12 views
57

Jak dodać folder bez kontroli wersji do określonej lokalizacji SVN? Często zaczynam pisać kod i dopiero po tym, jak mam kilka folderów zawierających pliki kodu, dodaję je do SVN.Jak dodać istniejący folder z plikami do SVN?

Co zwykle zrobić to:

  1. svn wspólnie katalog nadrzędny, gdzie chcę, aby utworzyć nowy folder do przechowywania mój kod.
  2. svn mkdir aby katalog chcę umieścić moje kod.
  3. Kopiuj i wklej na mój kod.
  4. svn commit.
  5. Usuń mój bieżący działający katalog kodów.
  6. Utwórz ponownie działający katalog kodów przy użyciu svn co.
+2

Prawdopodobny duplikat do http://stackoverflow.com/questions/2431389/import-files-directly-to-svn-repo-without-out-out-first – pmod

Odpowiedz

86

Powiedzmy mam kod w katalogu ~/local_dir/myNewApp i chcę, aby umieścić je na „https://svn.host/existing_path/myNewApp” (będąc w stanie zignorować niektóre pliki binarne, biblioteki dostawców itp.).

  1. Utwórz pusty folder w repozytorium svn mkdir https://svn.host/existing_path/myNewApp
  2. przejdź do katalogu nadrzędnego projektu cd ~/local_dir
  3. Sprawdź pusty katalog nad lokalnym folderze. Nie bój się - pliki, które masz lokalnie, nie zostaną usunięte. svn co https://svn.host/existing_path/myNewApp. Jeśli twój folder ma inną nazwę lokalnie niż w repozytorium, musisz określić go jako dodatkowy argument.
  4. Widać, że svn st pokaże teraz wszystkie pliki jako ?, co oznacza, że ​​nie są one obecnie pod kontrolą wersji
  5. Wykonaj svn add z plikami, które chcesz dodać do repozytorium, a także dodawać innych do svn:ignore. Możesz znaleźć przydatne opcje z svn help add, na przykład --parents lub --depth empty, kiedy chcesz selektywnie dodać tylko niektóre pliki/foldery.
  6. Commit z svn ci
+0

lepszą odpowiedź. dzięki – Amir

+0

Na punkcie 5: Możesz dodać wszystkie pliki/katalogi twojego roboczego katalogu w ten sposób w bash: 'find. -name .svn -prune -o -print0 | xargs -0 svn add' –

+1

Najlepsze wskazówki, jakie kiedykolwiek widziałem, aby uzyskać nowe rzeczy w svn. –

45

Jeśli dobrze zrozumiałam swój przypadek użycia, proponuję spróbować użyć svn dodać umieścić nowy folder w wersji, zobacz here. Poniższa doda nowy folder z plikami rekursywnie pod kontrolą wersji (jeśli jesteś wewnątrz ważna kopia robocza):

svn add new_folder 
svn commit -m "Add New folder to the project" 

Jeśli nie jesteś w kopii roboczej, należy go utworzyć z SVN Checkout, skopiuj new_folder tam i wykonaj powyższe kroki.

lub

Spróbuj svn import patrz here; dodaje utworzy nowy folder i przesyłania plików do repozytorium:

svn import -m "Import new folder to the project" new_folder \ 
     http://SVN_REPO/repos/trunk/new_folder 

Należy również pamiętać, że:

Po zaimportowaniu danych, należy pamiętać, że oryginalne drzewo nie jest pod kontrolą wersji . Aby rozpocząć pracę, trzeba jeszcze svn checkout świeżego kopię roboczą drzewa

+0

Ale folder nadrzędny nie znajduje się pod kontrolą wersji. Skąd wiadomo, gdzie umieścić go w repozytorium svn? – Siecje

+0

Nie jest dla mnie jasne, gdzie są twoje foldery, czy nie pracujesz w "kopii roboczej"? – pmod

+0

Mam już istniejące repozytorium svn z folderami. Tworzę pliki i foldery non svn i chciałbym je dodać do repozytorium. Sposób, w jaki teraz to robię, to wykupienie katalogu powyżej miejsca, w którym chcę umieścić mój projekt. Następnie kopiuję wklej do lokalizacji kasy i svn tam dodaję. – Siecje

1

Jeśli intencją jest dodanie local/kopię roboczą do SVN, kiedyś zrobić to w następujący sposób.

Uwaga: Używam klienta TortoiseSVN i te kroki zakładają, że masz już zainstalowanego klienta TortoiseSVN.

  1. Mam projekt (Test-4.2.2) w moim lokalnym. Chcę przesłać/dodać do repozytorium SVN.
  2. W przeglądarce repozytorium TortoiseSVN utworzyłem pusty katalog "Test-4.2.2"
  3. Zmieniłem nazwę lokalnego katalogu "Test-4.2.2" na "Test-4.2.2.1" (tymczasowy)
  4. Zamówienie pusty „test-4.2.2” z SVN z lokalnymi
  5. skopiowanie wszystkich podkatalogów pod 4.2.2.1 do tego katalogu kasy 4.2.2
  6. teraz kliknij prawym przyciskiem myszy „test- 4.2.2 "i zatwierdz.
  7. Usuń folder temp, "Test-4.2.2.1"
5

nie używam polecenia. Powinieneś być w stanie to zrobić za pomocą interfejsu GUI:

  • prawym przyciskiem myszy pusty obszar w folderze Moje dokumenty, wybierz TortoiseSVN> Repo przeglądarkę.
  • Wprowadź http://subversion ... (swoją ścieżkę URL do serwera Subversion/katalogu można zapisać do) jako ścieżkę i wybierz OK
  • prawym przyciskiem myszy katalog główny w Repo i wybierz Dodaj folder. Podaj nazwę swojego projektu i stwórz go.
  • Kliknij prawym przyciskiem myszy folder projektu w przeglądarce Repo i wybierz: Checkout. Katalog Checkout będzie twoim folderem Visual Studio\Projects\{your project}. Wybierz OK.
  • Otrzymasz ostrzeżenie, że folder nie jest pusty. Powiedz Tak, aby pobrać/wyeksportować do tego folderu - nie zastąpi plików projektu.
  • Otwórz folder projektu. Zobaczysz znaki zapytania na folderach powiązanych z twoim projektem VS, które nie zostały jeszcze dodane do Subversion. Wybierz te foldery za pomocą Ctrl + kliknięcie, a następnie kliknij prawym przyciskiem myszy jeden z zaznaczonych elementów i wybierz TortoiseSVN> Dodaj
  • wybierz OK na szybką
  • Pliki należy dodać. Wybierz OK na Dodaj zakończone! okno dialogowe
  • Kliknij prawym przyciskiem myszy w pustym obszarze folderu i wybierz opcję Odśwież.Zobaczysz „+” na ikony folderów/plików, teraz
  • prawym przyciskiem myszy pusty obszar w folderze ponownie i wybierz SVN
  • Dodaj wiadomość dotyczącą czego popełnienia i kliknij OK
0

3 kroki:

  • Open "Repo Browser" (Użyj link z folderu nadrzędnego rok).
  • Kliknij prawym przyciskiem myszy Wybierz "Dodaj folder".
  • Przejdź do swojego folderu.

enter image description here

+0

Nie można dodać folderu, który nie istnieje, w ten sposób. "Dodaj folder" spowoduje wyświetlenie okna Eksploratora, aby wskazać istniejący folder, a następnie podać okno zatwierdzenia, aby można było dodać je do Subversion. Nie jest on przeznaczony do tworzenia nowego folderu po stronie lokalnej - trzeba by było to zrobić ręcznie i zapełnić go, a następnie użyć go do przekazania zawartości do Subversion. Daje to tylko połowę historii. – vapcguy

0

W Windows 7 Zrobiłem to:

  1. Czy zainstalowano SVN i tortoisesvn? Jeśli nie, przetestuj je i teraz.
  2. Przejdź do swojego folderu SVN, w którym możesz mieć inne repozytorium (skrót od repozytorium) (lub jeśli tworzysz je od zera, wybierz lokalizację dysku C, napęd D itp. Lub ścieżkę sieciową).
  3. Utwórz nowy folder do przechowywania nowego repozytorium. Nazywają to taka sama nazwa jak tytule projektu
  4. prawym przyciskiem myszy folder i wybierz tortoisesvn -> Tworzenie repozytorium tutaj
  5. Powiedz tak, aby utworzyć strukturę folderów
  6. Kliknij OK. Powinien pojawić się nowa ikona wygląda jak „fala” obok nowego folderu/repo
  7. Kliknij prawym przyciskiem myszy nową repo i wybierz SVN Repo Browser
  8. Kliknij prawym przyciskiem „pień”
  9. wybierz Add Folder i ... wskaż strukturę folderów twojego projektu w fazie rozwoju.
  10. Kliknij OK, a SVN doda strukturę folderów. Bądź cierpliwy! Wygląda na to, że SVN uległ awarii/zamrożeniu. Nie martw się. Wykonuje swoją pracę.

Gotowe!

Powiązane problemy