2008-12-28 14 views
6

Pracuję w małym LAMP Development Studio, w którym pomysł polegał na wykonaniu kodu i przejściu do następnego elementu na liście.Konwersja zespołu programistycznego z FTP na system wersji

Zespół pracuje w Zend Studio 5.5 połączony z serwerem Live za pośrednictwem FTP lub SFTP. To, co uwielbiają w tym temacie, to szybkość wdrażania kodu (od samego modyfikowania kodu na żywo).

Ale oczywiście nie jest to dobre z wielu oczywistych powodów.

Chciałbym przenieść je do systemu kontroli wersji (CVS, SVN lub innego narzędzia), ale haczykiem jest to, że nie jestem ich starszym, więc potrzebuję marchewki, aby zaczęły używać tego.

Jakiego rodzaju konfiguracja byłaby potrzebna do zbudowania na ich komputerze, aby mogli normalnie kodować?

Co mogę zrobić, to utworzyć to ustawienie na moim komputerze, a następnie je wyświetlić.

Wiem, że jest to dość niezwykłe, ale zmieniło się to w moją pasję, aby zmienić sposób myślenia od zwykłego hakowania kodu do struktury i elegancji. Dzięki.

UPDATE (na odpowiedź Jonathana Lefflera):

  1. Tak
  2. Nie
  3. Tak, naprawdę robią

Pytanie także, studio sprawia, że ​​scentralizowany system CMS, który jest gospodarzem w setkach witryn muszą one modyfikować poszczególne witryny, czy witryny powinny znajdować się w głównym składniku, czy w ich własnym?

+0

Czy odpowiedź na pytanie 1: "Tak, nigdy nie doszło do katastrofy"? A może "Tak, mieli katastrofy tam, gdzie nie mogli wrócić"? Niestety, pytanie jest niejednoznaczne. –

+0

Odpowiedź na pytanie "wiele witryn w głównym repozytorium" to "to zależy". Byłbym jednak bardzo nieswojo z systemem, w którym programiści nie mieli dobrego VCS zamiast witryny * my * i mojego CMS. Musi być pod VCS. –

+0

Odpowiedź brzmi: tak, mieli katastrofy. –

Odpowiedz

7

Pytania:

  1. masz (oni) nigdy nie miał nieszczęście gdzie (oni) potrzebny do powrotu do poprzedniej wersji strony internetowej, ale nie mógł, bo oni go uszkodzony?

  2. Czy używają serwera pomostowego do testowania zmian?

  3. Z pewnością nie modyfikują kodu na serwerze produkcyjnym bez jakiegoś testowania?

Podejrzewam, że odpowiedź na pierwsze brzmi „Tak (Mieli katastrofy)”, a drugie „nie”, i waham się odgadnąć odpowiedź na trzeci (ale. Z dźwiękami to, odpowiedź może brzmieć "tak, naprawdę"). Jeśli to prawda, podziwiam ich brawurę i jestem zdumiony, że nigdy się nie pomyli. Nigdy nie ryzykowałbym wprowadzania zmian bezpośrednio na stronie internetowej.

Zalecam samodzielne korzystanie z systemu kontroli wersji lub VCS (dowolnego VCS). Wypracuj zmarszczki pod kątem kodu, którym się opiekujesz, i opracuj przejrzystą dystrybucję, która ułatwia (prawdopodobnie nadal używającą SFTP) dystrybucję kodu VCS do witryny internetowej. Ale pokaż także, że zachowanie poprzednich wersji ma swoje zalety - ponieważ możesz odzyskać to, co zrobiłeś, kiedy. Na początek może się okazać, że musisz pobrać aktualną wersję dowolnej strony (pliku), którą chcesz popracować, i umieścić najnowszą wersję w VCS przed rozpoczęciem modyfikowania strony, ponieważ ktoś inny mógł ją zmodyfikować, ponieważ został ostatnio zaktualizowany w twoim głównym repozytorium.Możesz również zrobić codzienne "skrobanie" plików, aby uzyskać aktualne wersje - i śledzić zmiany. Nie miałbyś "kto", ani dokładnie "kiedy" (lepiej niż do najbliższego dnia), ani "dlaczego", ale miałbyś (łącznie) "co" ze zmian.


W odpowiedzi na komentarze w pytaniu, Ólafur Waage wyjaśnić, że miałem katastrof z powodu braku VCS.

To zazwyczaj ułatwia życie. Oni się wygłupili; nie mogli cofnąć goofa - prawdopodobnie zirytowali klientów i powinni byli być bardzo zirytowani sobą. VCS znacznie ułatwia naprawę po takich błędach. Oczywiście w przypadku każdej dostosowanej strony potrzebujesz (centralnej) kopii zapasowej "poprawnej" lub "oficjalnej" wersji tej strony dostępnej w VCS. Prawdopodobnie wybrałbym jedno repozytorium dla wszystkich klientów, używając VCS, który ma dobre wsparcie dla rozgałęziania i łączenia. Z początku może to być trudniejsze (podczas gdy ludzie przyzwyczajają się do korzystania z VCS), ale prawdopodobnie prowadzi to do lepszych wyników w dłuższej perspektywie. Z poważaniem rozważałbym użycie nowoczesnego rozproszonego VCS (na przykład git), chociaż wiele osób również używa SVN (nawet jeśli nie jest rozproszonym VCS).

+0

Dziękujemy za aktualizację i odpowiedź. –

2

można użyć żółwia klienta SVN, aby tworzyć i pracować z repozytorium na lokalnym komputerze na innej ścieżce pliku następnie ścieżka robocza jest ....

może spróbować w konfiguracji i obsłudze, że dla siebie i koncert im po chwili, co może dla ciebie zrobić. kolejną fajną rzeczą może być instalacja trac (http://trac.edgewall.org/) na twoim serwerze, jeśli masz dostęp i uprawnienia do tego, lub może w jakiejś maszynie wirtualnej na własnej maszynie programistycznej. możesz mapować trac do swojego svn i uzyskać zmiany svn w interfejsie internetowym, które możesz pokazać menedżerowi projektu. może się na to zapisze, że będzie mógł łatwo zobaczyć zmiany kodu poprzez interfejs sieciowy. Oczywiście możesz to zrobić tylko z modułem Apache + svn, ale jest to o wiele przyjemniejsze, ponieważ oferuje ścieżkę do kupowania biletów i map drogowych (kamienie milowe i takie, które menedżerowie mogą kopać: o)) ..

Powodzenia w każdym razie :) . przynajmniej używaj go do swojej pracy na lokalnym komputerze, ponieważ zyskujesz tylko na tym.

+0

Uwielbiam komentarz o połączeniu z trac, dzięki. –

+0

Uwielbiam to oprogramowanie, oglądałem je od jakiegoś czasu i właśnie je założyłem 2 tygodnie temu, a od tego czasu jestem najszczęśliwszą osobą ... :). prosty, użyteczny, łatwy w użyciu ... i od wersji 0.11.x łatwy w instalacji. dostałem go i działa w czystym debian zainstalowany w VM w mniej niż pół godziny. – zappan

2

Możesz zainstalować SVN w lokalnym systemie dla wersji demo. Istnieje kilka narzędzi do integracji Zend i Eclipse z SVN. Myślę, że oprócz zrobienia wersji demonstracyjnej SVN, prawdopodobnie powinieneś dać im prezentację niektórych korzyści, jakie przyniesie (prawdopodobnie podczas demo).

iść ten link do niektórych pomysłów: Do I Really Need Version Control?

1

Olafur, wspomniał, że „studio sprawia, że ​​system CMS, który jest gospodarzem na setkach stron.” To może być marchewka, której potrzebujesz. Jeśli zespół często wdraża aktualizacje tych setek witryn, korzystanie z oddziałów w systemie kontroli wersji może ułatwić wszystkim ten proces. To może zaoszczędzić wiele czasu, a zatem zachęci ludzi do nauki systemu kontroli wersji.

Wygląda na to, że wszystkie te strony są powiązane - dostosowane wersje tego samego systemu CMS. W takim przypadku należy umieścić wszystkie witryny w tym samym repozytorium oprócz niezindywidualizowanego produktu CMS. Następnie możesz skonfigurować je wszystkie jako gałęzie tego samego produktu centralnego. Jeśli korzystasz z oddzielnych repozytoriów, nie ma łatwych sposobów tworzenia oddziałów w celu powiązania dostosowań z głównym produktem. (Myślę, że może zrobić z Subversion, i najprawdopodobniej inni, ale to skomplikowane i niepotrzebne, jeżeli wszyscy programiści pracują dla tej samej organizacji).

+0

Przepraszam, powinienem był stwierdzić, że CMS sam jest scentralizowany, ale masz rację, ponieważ w każdej witrynie są pewne elementy, które chciałbym zmienić. –

0

VisualSVNServer i TurtoiseSVN są dwa programy używam, są zarówno dobrze udokumentowane i tak dobrze integruje się z Eksploratorem Windows i Visual Studio.

0

Wykonaj część wdrożenia automatycznego procesu "kompilacji", aby deweloper nie musiał się o to martwić. Użyj "strumieni", aby utrzymać pracę w obszarze programowania, obszarze qa i wydaniu, a następnie zautomatyzuj procesy, które wdrażają najnowsze środowiska programistyczne, qa i wydania.

+0

Oczywiście możliwe są również inne strumienie. – Brody

2

Oto jeden trik, który wszyscy pokochają:

ja to ten „wtyczki” w większości moich zakładów produkcyjnych: Oczywiście, trzeba utworzyć konto ograniczoną prawa robota svn dla tego pierwszego i svn musi być zainstalowane na serwerze.

echo(' updating from svn<br>'); 
    $username = Settings::Load()->Get('svn','username'); 
    $password = Settings::Load()->Get('svn','password'); 
    echo(" <pre>"); 
    $repos = Settings::Load()->Get('svn' , 'repository'); 
    echo system ("svn export --username={$username} --password {$password} {$repos}includes/ ".dirname(__FILE__)."/../includes --force"); 
    echo system("svn export --username={$username} --password {$password} {$repos}plugins/ ".dirname(__FILE__)."/../plugins --force"); 

    die(); 

Upewnij się umieścić to za .htpasswded miejscu oczywiście, i upewnij się, że nie aktualizuje ustawienia „produkcja” z SVN. Et voila, aktualizujesz swoją pełną bazę kodów za pomocą jednego zapytania HTTP do swojej strony :) SVN nadpisuje pliki automatycznie, nie ma żadnych ukrytych plików lub folderów pozostawionych i łatwo dostosowuje się do aktualizacji lub przywrócenia określonej wersji. Teraz wszystko, co musisz zrobić, to zatwierdzić do swojego repozytorium SVN, uruchomić ten fragment kodu w środowisku testowym, upewnić się, że wszystko działa, a następnie uruchomić go na produkcji :)

+0

Bardzo fajne, id daje więcej + jeśli mogę. –

0

Wystarczy umieścić SVN na środku.

Zespół programistów umieścił nowe rzeczy w subversion, , a następnie masz skrypt, który eksportuje rzeczy z svn i wysyła je na serwer WWW.

Jest to bardzo zbliżone do dzisiejszego sposobu pracy, , ale każda niewielka zmiana została odnotowana w subwersji, więc w przypadku uderzenia pioruna możliwe jest bardzo szybkie cofnięcie wszystkiego w czasie.

/Johan

Powiązane problemy