2009-02-11 15 views
5

Który system kontroli wersji powinienem użyć dla aplikacji Rails: Git lub SVN?Git lub SVN dla aplikacji Rails?

Oto kilka czynników do rozważenia:

  • jestem jedynym deweloperem
  • jestem zaznajomiony z SVN
  • Użyłem tylko Git na tydzień, wydaje się bardzo podobna do SVN naprawdę.
  • Chcę umieścić moje repozytorium na zdalnej lokalizacji i połączyć się z nim przez SSH lub inny protokół (co już robię z SVN).

Edit: Dzięki za odpowiedzi tak daleko. Wygląda na to, że Git jest nieco bardziej faworyzowany. Czy ma jakąkolwiek funkcjonalność SSH?

+0

Co Rails ma do czynienia z decyzją o użyciu SVN lub Git? – Robert

+2

Społeczność Railsów wskoczyła na modę Git, a większość programistów Railsowych używa teraz Git. –

+0

Posiada wsparcie dla SSH, a także wiele innych: http://www.kernel.org/pub/software/scm/git/docs/git-pull.html#URLS – sebnow

Odpowiedz

12

Powiedziałbym, idź po Gita. Głównie dlatego, że jestem stronniczy, ale także dlatego, że nie musisz konfigurować żadnego serwera z Git, po prostu git init i gotowe. Git is generally just better, zapewnia większą elastyczność i moc niż SVN.

Edit: To jest trochę dupe z Why is Git better than Subversion lub co najmniej istotne.

Edycja2: Git ma 3 podstawowe metody komunikacji, protokół Git, SSH i HTTP. Github używa SSH do "push access", np. [email protected]/user/repo.git.

+1

Nie musisz konfigurować serwera jeśli używasz svn, jeśli jesteś jedynym programistą i możesz używać svn przez ssh. Zawsze możesz uzyskać to, co najlepsze z obu systemów, używając git svn :) – bluebrother

+0

Jeśli nie ma czegoś, czego nie jestem świadomy, musisz skonfigurować serwer, aby uruchomić repozytorium z Subversion. Musisz utworzyć "bazę danych" za pomocą 'svnadmin create', afaik. Powiedziałbym, że używanie git-svn ograniczyłoby możliwość prawidłowego korzystania z git. Jeśli używasz SVN, po prostu użyj SVN i na odwrót. – sebnow

5

Jako jeden programista, który jest już znany z SVN - jeśli chcesz być tak wydajny, jak to możliwe, użyj SVN.

Jeśli z drugiej strony naprawdę chcą się uczyć GIT i może sobie pozwolić na nieco więcej czasu, aby się go nauczyć, użyj GIT.

+1

Twierdzę, że z git można być dużo bardziej produktywnym. Byłbym ostrożny, aby nie mylić wydajności dnia 1 z produktywnością w dniu n. – Dustin

+0

Jeśli przez produktywne rozumie się "oczekiwanie na powolne transfery sieciowe svn wymagane przez każdą operację", to tak ... svn jest produktywne. – jrockway

+0

Jak często na poważnie czekasz na svn? Jeśli prędkości transferu svn naprawdę powodują znaczne obniżenie wydajności, powinieneś nauczyć się wielozadaniowości. –

1

Ponieważ jesteś solowy i chcesz umieścić go w zdalnej lokalizacji: SVN, ale powinieneś uczyć się/używać Git również. Można również połączyć dwa używać Git i SVN lokalnie na pilocie ..

+0

Po co zawracać sobie głowę? Git może również mieć zdalne/centralne repozytoria. Po co używać Git, jeśli w końcu w końcu ograniczysz się do Subversion? – sebnow

+0

Cóż, w moim przypadku używamy serwera Subversion Windowsa i nie ma stabilnego dezinstalatora/serwera git dla Windows. Zgadzam się, że Git jest lepszym wyborem, ale nie jest tak powszechny, jak Subversion to ... wszystko zależy od jego sytuacji;) – Tuxified

+0

To prawda. Będąc użytkownikiem Maca/Linuksa zapominam, że Git nie jest tak kompatybilny z Windows. To jeszcze jeden powód do zmiany OS, prawda? : P – sebnow

1

To chyba dobry pomysł, aby użyć jakiegoś kontroli wersji. Dobrym pomysłem jest również zdalne tworzenie kopii zapasowych kodu.

Git i svn są dobrymi rozwiązaniami do kontroli wersji i są popularne wśród społeczności Ruby/Rails.

Jeśli były w rozproszonej grupie rozwoju Sugeruję git może być bardziej właściwe, ponieważ jednym z jego szczegółowych celów projektu było dla tej sytuacji.

Jeśli były w systemie Windows, chciałbym napomknąć, że TortoiseSVN prawdopodobnie dostarcza mniej ambitne doświadczenie niż, powiedzmy, msysGit.

Głównie, choć obaj wydają się wykonywać podobną pracę i robią to dobrze.

Jeśli chcesz nauczyć się nowego systemu kontroli kodu źródłowego podczas budowania projektu, przejdź do git. Lub jeśli zamierzasz spędzać dużo czasu w, na przykład, krawędzi Rails, który mieszka w Github, znowu może pójść na git.

W przeciwnym razie powinienem trzymać się svn.

4

Wykorzystanie Git, jeśli nie z innego powodu niż że można go używać niemal dokładnie jak SVN (w tym zdalnego zarządzania wieloma oddziałami na SSH) i jest to o wiele szybsze i bardziej niezawodne.Lokalne checkiny i oddziały, rozproszona kontrola wersji, zarządzanie historią wersji itp. To tylko korzyści uboczne.

Z mojego doświadczenia wynika, że ​​jedynym powodem, dla którego preferujemy SVN nad Gitem są: repozytorium SVN, lub wymóg korzystania z systemu Windows na kliencie.

0

Powiedziałbym, że nie ma żadnej szczególnej różnicy.

Oba systemy to tylko narzędzia, a obie z nich zapewnią funkcjonalność, której szukasz. Jeśli nie ma innych parametrów do rozważenia, powiedziałbym, że idę z SVNem, jak już go znasz i nie potrzebujesz czasu, aby go nauczyć.

1

Jeśli masz dzień na naukę Gita, naucz się Git. Ma całą funkcjonalność svn, a także tanie rozgałęzienia/łączenia, lokalne zatwierdzenia i opcję rozproszonego programowania.

Łatwo jest pracować z odległymi repozytoriami. Jeśli szukasz tylko jakiegoś publicznego hostingu, możesz spojrzeć na Github, który ma darmowy publiczny hosting, dobrą integrację z Ruby i wiele ładnych wykresów.

0

Dodałbym jedno następne pytanie: czy pracujesz nad tym sam? Wsparcie dla GUI dla Git jest zasadniczo opóźnione w stosunku do Subversion, więc jeśli to jest lub może być rozważane, wybrałbym Subversion.

Na przykład, jeśli twoi projektanci używają Adobe CS4, mogą korzystać z wbudowanej obsługi Subversion (i nie musisz ich uczyć Git). Weź pod uwagę obecny i przyszły skład swojego zespołu jako czynnik w podejmowaniu decyzji.

0

Kiedyś kochałem git, ale ostatnio przerzuciłem się na mercurial. Składnia ma dokładnie taką samą składnię jak git, ale jest napisana w pythonie i ma mnóstwo ładnych dzwonków i gwizdków po wyjęciu z pudełka, jak serwer WWW do wizualnego śledzenia zatwierdzeń.

Wiem, że można to ustawić dla git przy użyciu na przykład gitweb, ale wymaga to trochę pracy.

3

Chciałbym odpowiedzieć w komentarzach, ale nie mogę jeszcze.

Dla tych, którzy nie wiedzą, Git działa z systemem Windows. Jeśli nie podoba ci się wersja programu msys, to jest już dostępna.