Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykluczenie plików w SVN (lokalna kopia projektu)
Forum PHP.pl > Forum > Kontrola i zarządzanie projektami
mr_lime
Witam serdecznie,
Mam problem z systemem kontroli wersji SVN i nie wiem za bardzo jak go ugryźć. Mam projekt, który leży w repozytorium SVN i jest w nim kilka plików konfiguracyjnych, które muszą być inne w repozytorium oraz u mnie na komputerze, gdzie lokalnie testuje swój kod. Czy jest jakiś sposób żeby wykluczyć kilka plików podczas pobierania oraz wysyłania źródeł do repozytorium? Opcja ignore pozwala na niewysyłanie plików do repozytorium ale jeżeli w repozytorium nadal istnieje (i musi istnieć) dany plik tylko z innymi parametrami to zostanie pobrany przy następnym update. Używam klienta TortoiseSVN 1.6.99. Co radzicie?


kwiateusz
svn nie ma takiego mechanizmu żeby plik był w repo, ale nie był brany pod uwagę przy commitach. jedyna opcja to go odznaczac co commit zeby nie był wysyłany
lewal
Cytat(mr_lime @ 30.08.2011, 16:59:15 ) *
Witam serdecznie,
Mam problem z systemem kontroli wersji SVN i nie wiem za bardzo jak go ugryźć. Mam projekt, który leży w repozytorium SVN i jest w nim kilka plików konfiguracyjnych, które muszą być inne w repozytorium oraz u mnie na komputerze, gdzie lokalnie testuje swój kod. Czy jest jakiś sposób żeby wykluczyć kilka plików podczas pobierania oraz wysyłania źródeł do repozytorium? Opcja ignore pozwala na niewysyłanie plików do repozytorium ale jeżeli w repozytorium nadal istnieje (i musi istnieć) dany plik tylko z innymi parametrami to zostanie pobrany przy następnym update. Używam klienta TortoiseSVN 1.6.99. Co radzicie?

Radzę zmienić konfigurację.
Tworzysz główny plik conf.php w którym są domyślne ustawienia. Na końcu pliku inkludujesz plik conf_local.php - potencjalnie tak, żeby aplikacja nie wywalała się w przypadku jego braku, ale to kwestia gustu.
Ustawienia z pliku conf_local.php powinny nadpisywać wybrane opcje z conf.php.

Główny plik jest w repozytorium, lokalny dodajesz do plików ignorowanych.
W dobrym tonie jest też dodać do repozytorium plik conf_local.php.example

Mam nadzieję, że wyjaśniłem to dość klarownie. Rozwiązanie sprawdza się niezależnie od języka i systemu kontroli wersji.
abort
Sytuacja u mnie: trzech userów, lokalny devel aplikacji na Win (Apache), aczkolwiek projekcik docelowo wyjąduje na uniksach (Linux - testy na dwóch serwerach). Każdy user, jak wiadomo, może mieć gdzie indziej http_root i parę innych rzeczy, na serwerach też to może być w różnych miejscach. U nas więc sprawdziło się coś takiego, że pojawiło się pięć plików konfiguracyjnych: config_user1.php, config_user2.php i config_user3.php, jak również dwa serwerowe: config_serv1.php i config_serv2.php. Gdzie jako "user1"..."user3" lądują nie nazwy userów, ale nazwy hostname u danych userów.

Wszystko leży w repo (też svn), a inkludowanie załatwia jedna instrukcja:
$inc_path="config." . $_SERVER["HTTP_HOST"] . ".php";

Wydaje mi się to prostym i sensownym rozwiązaniem - i u mnie się sprawdza. Oczywiście przy projektach, nad którymi pracuje >10 osób zaczyna się robić bajzel.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.