Przypuśćmy, że pracując nad projektem w symfony dochodzi do sytuacji gdzie używamy pluginów napisanych przez siebie i co jakiś czas wprowadzamy do nich jakieś poprawki. Co zatem musimy później zrobić? Wypadałoby zaktualizować wszystkie projekty w których jest ten plugin… albo, jeśli używamy subversion, zastosować atrybut svn:externals…
Atrybut ten służy do załączania do repozytorium repozytoriów zewnętrznych, nad którymi pracują inne zespoły programistyczne (lub my sami). Dzięki takiemu podejściu możliwe będzie pracowanie zawsze z aktualnymi wersjami pluginów, a jak natrafimy na jakis błąd to wystarczy go po prostu poprawić i skommitować- zmiany zostaną wprowadzone w repozytorium pluginów, z którego korzystają inne repozytoria… dzięki czemu zawsze dysponować będziemy aktualną wersją.
Co należy zatem zrobić?
Załóżmy, że w katalogu plugins projektu symfony utworzyliśmy nowy plugin o nazwie caACLUser. Plugin wydał nam się tak fajny, że chcielibyśmy wykorzystać go w innych projektach, ale póki co rozwijamy bieżący projekt ( oczywiście w miedzyczasie w pluginie będziemy eliminować wszystkie napotkane błędy- dzięki czemu plugin będzie bardziej niezawodny ). A więc taki plugin jest idealnym kandydatem do wydzielenia go do osobnego repozytorium. A więc zaczynamy.
Po pierwsze co zrobimy to utwórzmy nowe repo gdzie będziemy przechowywali nasze przyszłe pluginy. Następnie dodajmy do niego plugin.
Jeśli plugin znajduje się w projekcie a projekt jest już w systemie zarządzania wersjami to kolejną rzeczą będzie usunięcie go z projektu i skommitowanie zmian:
bash$ svn commit -m "przed wydzieleniem do osobnego katalogu usnięto plugin caACLPlugin"
A później nadanie właściwości externals na katalog plugins:
Otworzy się nasz ulubiony edytor tekstu w którym należy podać gdzie i co należy dołączyć:
UWAGA! Możliwe jest dodanie więcej niz jednego repo. W tym celu każdy nowe repo należy dodać w nowym wierszu.
Nastepnie trzeba skomittować nowy properties:
Ale nadal nie ma plugina. Zróbmy więc update:
Pobieranie zewnętrznego obiektu do 'caACLPlugin'
To wszystko :) Uwaga zaznaczam, że nie jestem specjalistą od Subversion dlatego mogłem popełnić jakiś błąd lub coś opisać niedokładnie, dlatego komentarze mile widziane :)
Wyszukiwane frazy:
- svn externals (8)
- svn:externals (2)
- jak modyfikować svn externals (1)
- svn external właściwość (1)
- svn externals przykłady (1)
- svn jak dodać inne repozytorium (1)
- svn propedit svn:externals (1)
- symfony svn (1)
- zmiana adresu svn externals (1)
Inne posty:
- Tworzenie repozytorium Subversion
- Tworzenie nowego projektu w Symfony2 PR
- Zarządzanie szablonami email w Symfony
- Tworzenie pliku packages.xml
- Subversion 1.6.3 i svn: warning: Network connection closed unexpectedly
Tagi: subversion, Symfony


