Próbuję skonfigurować svn:externals
z TortoiseSVN na komputerze z systemem Windows. Mam dwa projekty i oba repozytoria zostały już utworzone na tej samej maszynie lokalnej.Konfigurowanie SVN: Zewnętrzne z TortoiseSVN w Windows
Obecna struktura wygląda następująco. Stworzyłem repoA
, repoB
dla repozytoriów i workA
i dla działających katalogów (kas).
Repozytoria
Z: \ repo \ repoA
Z: \ repo \ repoB
katalogi robocze
Z: \ Projects \ workA \ trunk \ core.php
Z: \ Projects \ worka \ pnia \ lib \ lib01.php
Z: \ Projects \ workB \ pnia \ core_mod.php
Z: \ Projects \ workB \ pnia \ lib \
(istnieją tags
i branches
foldery, ale są one pomijane, aby utrzymać proste pytanie.)
Co chciałbym osiągnąć to plik (y) workA\trunk\lib\
w tym przypadku lib01.php
zostanie automatycznie skopiowany do katalogu workB\trunk\lib\
.
Aby ustawić to, co zrobiłem to w następujący sposób:
- Sprawdzone się
workA
i przypisać go dorepoA
i wyrejestrowanyworkB
i przypisać go dorepoB
- comitted do folderu
workA\trunk
więcrepoA
jest aktualny. - Aby zaimportować lokalizację dla
workB\trunk\lib
, kliknij prawym przyciskiem myszy folderworkB
i wybierz opcjęTortoiseSVN -> Properties
. - Kliknięto
New -> Externals
i kliknięciuNew...
./trunk/lib
wpisane w poluLocal path
formularza. Dla polaURL
wpiszfile:///Z:/repos/repoA/trunk/lib
. Po naciśnięciu przycisku...
otworzyła się przeglądarka repo i pomogła wybrać folder docelowy.Kliknięto
Ok
kilka razy, aby zamknąć okna ustawień. Zakładałem, że ustawiono zewnętrzne ustawienia.- utworzony plik,
Z:\Projects\workB\trunk\core_mod.php
- prawym kliknięciu na
Z:\Projects\workB\trunk\
i wybranySVN Comit
do COMITworkB
dorepoB
.
Spodziewałem się, że w tym momencie lib01.php zostanie automatycznie zaimportowany do folderu Z:\Projects\workB\trunk\lib
, ale nic nie zostanie skopiowane. Próbowałem też SVN Update
klikając prawym przyciskiem myszy na folderze workB\trunk
. Ale folder workB\trunk\lib
pozostawał pusty.
Podejrzewam, że ścieżka względna ./trunk/lib
musi się mylić. Nie wiem Jeśli możesz wskazać, co robię źle, byłoby to docenione.
Aktualizacja
6a - commit zmienione Working Copy WorkB do repo
To była ślepa plamka dla mnie. Kliknąłem prawym przyciskiem myszy na Z:\Projects\workB
i wybrałem SVN Commit...
i otrzymałem następujący błąd.
Po kliknięciu przycisku OK natychmiast mam okno dialogowe z pytaniem, czy zaktualizować folder i kliknąć OK. Następnie TortoiseSVN zaczął aktualizować Z:\Projects\workB
i otrzymałem ten błąd. Ale po tym, kiedy ponownie przeprosiłem Z:\Projects\workB
, przeszedł bez błędu.
("trunk/lib" w twoim przypadku będzie bardziej kuloodporny, jak sądzę).
Dzięki, kiedy wybrać ponownie Property
folderu workB
i kliknięciu na przycisk Edit
dla svn:externals
, TortoiseSVN automatycznie regulowana ./trunk/lib
do trunk/lib
. Teraz tak jest.
6b - test z repobrowser na RepoB (tylko najszybszy sposób), że definicja jest poprawna
I kliknięciu prawym przyciskiem myszy na Z:\repos\repoB
i wybrał TortoiseSVN -> repo-browser
i przejrzysz w dół do folderu bagażnika. Wygląda to następująco. Czy to wygląda dobrze? Naprawdę nie wiem, ponieważ nigdy nie pracowałem nad tym zadaniem. Folder lib w folderze trunk jest pusty w przeglądarce repo.
Folder Z:\Projects\workB\trunk\lib
jest jeszcze pusty. Komunikat o błędzie sugeruje przeniesienie "Z: \ Projects \ workB", ale nie jestem pewien co to znaczy.
repo Broswer pokazują dwa ** ** lib foldery wewnątrz pnia - jedno zewnętrzne i jeden prawdziwy (niepotrzebny) - to problem. Wypróbuj nowy bagażnik (w pełni rekursywny, z zewnętrznymi), aby zobaczyć aktualny stan repo –
'Repo-Broswer pokazuje dwa foldery lib wewnątrz pnia - jeden zewnętrzny i jeden prawdziwy (nie potrzebny) - to problem. - To było to . Dzięki. Usunąłem prawdziwy folder 'lib' w repo-przeglądarce,' Z: \ Projects \ workB \ trunk \ lib' i wykonałem 'SVN Update' na' Z: \ Projects \ workB'. Teraz 'Z: \ Projects \ workB \ trunk \ lib \ lib01.php' zostało utworzone automatycznie. To była naprawdę długa droga do rozwiązania. – Teno