2010-03-30 13 views
5

Prowadzę małą firmę zajmującą się tworzeniem stron internetowych wraz z moim bratem i przyjacielem. Po przeprowadzeniu rozległych badań zdecydowałem się na użycie subversion do kontroli wersji.Konfigurowanie idealnego przepływu pracy dla tworzenia stron internetowych z 2-3 osobami korzystającymi z subversion

Oto, w jaki sposób planuję obecnie typowy rozwój. Należy pamiętać, że każdy z nas jest 3 w oddzielnej lokalizacji.

Założenie konta z hostingiem subversion springloops (springloops.com). Za każdym razem, gdy pracuję nad nowym projektem, tworzę dla niego repozytorium. Powiedzmy więc w tym przypadku, że pracuję na stronie1. Chcę mieć 3 wersje strony w internecie:

  1. Web Development - Jest to serwer ja i inni deweloperzy podają do. (Site1.dev.bythepixel.com)
  2. Client Preview - Jest to serwer które aktualizują się co kilka dni z dobrej rewizji dla klienta, aby zobaczyć. (site1.bythepixel.com)
  3. żywo Site - Witryna opublikować kiedy będzie na żywo (site1.com)

Każda maszyna tworzenie stron internetowych (w każdej lokalizacji) będą miały lokalną kopię xamp uruchamia wirtualny host, aby umożliwić pracę nad wieloma stronami internetowymi. Katalog główny kopii lokalnej jest taki sam, jak lokalna kopia repozytorium subversion. Ta konfiguracja umożliwia szybkie wprowadzanie drobnych poprawek i ich podgląd. Po wykonaniu niektórych zadań do repozytorium dla witryny zostanie zatwierdzone. Poproszę o to, aby strona dev była automatycznie pchana (jest to opcja w springloops). Następnie, gdy tylko będę gotowy do przekazania strony klienta, zrobię to. Ostatnim etapem będzie przejście do strony na żywo.

Teraz mam kilka problemów z tymi przepływu prac:

  1. Używam CodeIgniter obecnie, jak iw pliku konfiguracyjnym I ogólnie określone korzeń serwisu. Dawny. http://www.site1.com. Wygląda więc na to, że za każdym razem, kiedy publikuję dane na jednym z serwerów internetowych, będę musiał zmodyfikować plik konfiguracyjny? Czy jest jakiś sposób, aby tak ustawić określone pliki dla każdego serwera? Kiedy więc trafiam do podglądu klienta, po prostu wgrasz plik konfiguracyjny dla serwera podglądu klienta.

  2. Nie chcę, aby strona na żywo, strona podglądu klienta i strona dev udostępniały ten sam serwer mysql z różnych powodów. Czy to jeszcze raz oznacza, że ​​muszę dostosować informacje o serwerze bazy danych za każdym razem, gdy wysyłam do innej witryny?

  3. Czy ten przepływ pracy ma sens? Jeśli masz jakieś sugestie, daj mi znać. Planuję, żeby to był przepływ pracy, którego używam przez najbliższe kilka lat. Po prostu muszę wprowadzić system, który pozwoli na przyszłą ekspansję!

+0

Jak @David umknął, Kontrola wersji rozproszonej jest na miejscu: http: //www.joelonsoftware. com/items/2010/03/17.html –

Odpowiedz

1

1) Zajrzyj do koncepcji ciągłej integracji. (Istnieje kilkanaście darmo dla serwerów małe projekty CI, np TeamCity)

2) Mając 1. Przygotuj procedurę wdrażania, który będzie w stanie kierować żadnym z trzech środowisk

3) Rozważmy ZAWSZE sprawdzić, czy nie jest .svn pliki dostępne dla użytkowników wdrożonych zlokalizowany, ponieważ jest naprawdę niezabezpieczone

przeczytać również coś na temat pracy z tagów/oddziałów w SVN

Dalej, chciałbym zaproponować następujący obieg

pierwszym przypadku (proste) Wszyscy robią zakupy i pracują na lokalnej kopii. Po zaangażowani (sprawdzone) ilość nowych funkcjonalności, wyzwalacz (może automatycznie) podgląd będzie budować Mając podgląd wszechstronnie testowane, wyzwolić produkcję

budowy

drugim przypadku (lepiej) Każdy sprawia, oddział w każdej znacznej ilości zmian i może swobodnie cokolwiek dodać do swojej własnej gałęzi. Po gałęzi stabilnej gałęzi, scalić ją do tułowia, co uruchamia maszynę testową do kasy i budować to, co ty na podgląd i zaznaczyć znacznik kompleksowo przetestowany podgląd idzie do uwolnienia Rozgałęzienie

Punktu mieć tak wiele oddziałów jest w stanie aby przechowywać osobistą historię zmian i stabilne kompilacje jednocześnie.

+0

Czy CI oferuje kontrolę wersji i takie? – Roeland

+0

CI to rzeczy na najwyższym poziomie. CI jako koncepcja obejmuje użycie kontroli wersji i jej użycia, testowanie, automatyczne przyrostowe kompilacje itp. Serwery CI pomagają ci w tym wszystkim. – vittore

+0

Czy uważasz, że CI może być ponad zabójstwem? – Roeland

2

Są lepsze rozwiązania kontroli wersji dla rozproszonych systemów kontroli wersji niż wywrotową, Gorąco polecam patrząc na jednego z nich:

  1. https://www.mercurial-scm.org
  2. https://git-scm.com/
  3. http://bazaar.canonical.com/en/

zobaczyć here, here i here dla niektórych marek ntific dyskusja

również, jak powiedział Vittore, uznałbym rozwiązanie CI za całkiem użyteczne, które mogłoby zautomatyzować twoje przejście od środowiska deweloperskiego do "produkcji", gdzie klient mógł ją zobaczyć w udanym cyklu budowania/testowania .

+0

rawr. Właśnie spędziłem kilka ostatnich dni na zapoznaniu się z subwersją .. :( – Roeland

+0

Tak, wiem, podobno z tych odczytów jest to również zmiana w myśleniu. Patrzę na przejście z TFS – BlackICE

+0

Cóż ... scenariusze, o które prosił Roland, wcale nie są łatwiejsze z tymi trzema systemami Utrzymanie wszystkich aktualnie widocznych stron w jednym egzemplarzu roboczym jest łatwo możliwe dzięki Subversion, podczas gdy byłbyś zajęty łączeniem wszystkich niepowiązanych zmian ze współtwórcami z tymi DVC Nie ma żadnych DVC obsługujących takie rzeczy jak rzadkie kopie robocze , (poprawki mieszane,) częściowe aktualizacje .. w celu umożliwienia współużytkowania pojedynczej kopii roboczej na serwerze, więc korzystanie z DVCS wymagałoby innego przepływu pracy. –

0

Nie chcesz używać katalogu głównego repozytorium jako katalogu głównego swojej kopii roboczej. To sprawia, że ​​nie jest możliwe używanie gałęzi później. (Lub też zawsze będziesz mieć wszystkie oddziały wyewidencjonowane lokalnie .. dzięki czemu tanie kopie Subversion, drogie w kopii roboczej)

Powiązane problemy