Pierwsze kroki z kontrolą wersji

Muszę zaimplementować kontrolę wersji, nawet dla samego programowania, który robię w domu. Czytałem o tym, jak świetny jest Subversion przez ostatnie kilka lat i miałem zamiar poświęcić się nauce tego na boku, dopóki nie usłyszałem o Git jako nadchodzącym systemie kontroli wersji.

Biorąc pod uwagę sytuację, powinienem się wstrzymać i zobaczyć, który z nich wyjdzie na wierzch? Jakie są ich względne zalety?

Jeden problem, który zauważyłem z Git jest to, że nie ma wielu w pełni funkcjonalnych GUI, co jest ważne dla wielu użytkowników w moim zespole.

Również, nie przeszkadza sugestie, jak zacząć z jednym lub drugim. (tutoriale itp.)

Author: Mark Norgren, 2008-08-05

30 answers

Najważniejszą rzeczą w kontroli wersji jest:

PO PROSTU ZACZNIJ GO UŻYWAĆ

Nie używanie kontroli wersji jest okropnym pomysłem. Jeśli nie używasz kontroli wersji, przestań czytać teraz i zacznij jej używać.

Bardzo łatwo jest przekonwertować z

cvs<->svn<->git<->hg
Nieważne, którą wybierzesz. Wystarczy wybrać najłatwiejszy do użycia i rozpocząć nagrywanie historii kodu. Zawsze można przenieść do innego (D)VC później.

Jeśli szukasz łatwego w użyciu GUI wygląd TortoiseSVN (Windows) i wersje (Mac) (sugerowane przez codingwithoutcomments)


Edit:

Pix0r said:

Git ma kilka fajnych funkcji, ale nie będziesz w stanie ich docenić, jeśli nie użyjesz już czegoś bardziej standardowego, jak CVS lub Subversion.

To. Używanie Gita jest bezcelowe jeśli nie wiesz do czego może służyć Kontrola wersji ty.

Edit 2:

Właśnie zobaczyłem ten link na Reddicie: Ściągawka Subversion . Dobre szybkie odniesienie do wiersza poleceń svn.

 80
Author: Jonathan Works,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:00:25

Użyj subversion, jest łatwy w konfiguracji, łatwy w użyciu i ma mnóstwo narzędzi. Każdy przyszły system rewizji będzie miał funkcję importu z SVN, więc nie jest tak, że nie można zmienić w dół drogi, jeśli twoje potrzeby rosną.

 18
Author: Karl Seguin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-05 18:31:56

Subversion Book jest najlepszym rozwiązaniem do nauki narzędzia. Mogą istnieć inne samouczki szybkiego startu, ale książka jest najlepszym pojedynczym odniesieniem, jakie znajdziesz.

Git ma kilka fajnych funkcji, ale nie będziesz w stanie ich docenić, jeśli nie użyjesz już czegoś bardziej standardowego, jak CVS lub Subversion. Zdecydowanie zgadzam się z poprzednimi plakatami i zacznę od Subversion.

 16
Author: pix0r,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-05 18:36:48

Jeśli jesteś nowy w versioncontrol przeczytaj to:
Source Control HOWTO

 13
Author: John Smithers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-27 12:21:12

Idź do SVN. Jeśli nigdy wcześniej nie korzystałeś z kontroli źródła, nie będzie to miało dla ciebie znaczenia w ten czy inny sposób.

Ponadto, nie ma dużej ilości nauki związanej z używaniem systemu kontroli źródeł. Jeśli nauczysz się jednego, możesz łatwo przełączyć się na inny w późniejszym terminie.

SVN to świetne narzędzie, które powinno zadbać o większość Twoich potrzeb. A ponieważ już istnieje, ma sporo narzędzi GUI (na przykład TortoiseSVN).

Idź do SVN.

 10
Author: Vaibhav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-05 18:33:56

Aby uzyskać przyjazne Wyjaśnienie większości podstawowych pojęć, zobacz wizualny przewodnik po kontroli wersji . Artykuł jest bardzo przyjazny dla SVN.

 8
Author: Rytmis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-05 18:39:23

Używałem RCS, CVs, SCCS, SourceSafe, Vault, perforce, subversion i git.

Oceniłem BitKeeper, Dimensions, arch, bazaar, svk, ClearCase, PVCS i Synergy.

Gdybym miał dziś uruchomić nowe repozytorium, wybrałbym git. Ręce w dół.

Jest darmowy, szybki i w trakcie aktywnego rozwoju.

I możesz go używać jako klienta dowolnego repozytorium subversion używając git-svn.

Rządzi.

 8
Author: Nick Brosnahan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-14 06:21:33

@ superjoe30

A co z wykorzystaniem kontroli źródła na własnym komputerze, jeśli jesteś jedynym programistą? Czy to dobra praktyka? Czy istnieją powiązane wskazówki lub sztuczki?

Uważam, że git jest do tego łatwiejszy, ponieważ nie potrzebujesz serwera ani nie martwisz się o wpisywanie adresów URL i tak dalej. Twoja kontrola wersji po prostu mieszka w katalogu .git wewnątrz twojego projektu i po prostu go używasz.

5 second intro (zakładając, że zainstalowałeś it)

cd myproject
git init
git add * # add all the files
git commit

Następnym razem zrobisz jakieś zmiany

git add newfile1 newfile2 # if you've made any new files since last time
git commit -a
Tak długo, jak to robisz, git cię wspiera. Jeśli coś zepsujesz, Twój kod jest bezpieczny w repozytorium nice git. It ' s awesome
  • notatka: może okazać się, że wydobywanie rzeczy z Gita jest nieco trudniejsze niż dostanie się do niego, ale o wiele lepiej jest mieć ten problem niż nie mieć plików w ogóle!
 5
Author: Orion Edwards,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-14 07:00:50

Z własnego doświadczenia nie polecałbym Gita jako wprowadzenia do kontroli wersji. Używam go od kilku miesięcy i mam wrażenie, że jest bardzo potężny i - teraz, gdy częściowo mam wokół niego głowę-w miarę intuicyjny. Jednak krzywa uczenia się jest bardzo stroma, mimo że używam kontroli wersji od lat. Cierpi również na zbyt ekspresyjny charakter-obsługuje wiele różnych przepływów pracy i modeli rozwoju, ale jedyną wskazówką na "najlepszy" sposób korzystania z niego jest kilka stron głęboko w wyszukiwarce Google, co również sprawia, że trudno jest nowicjusz podnieść.

To powiedziawszy, jest możliwe, że zaczynanie od pustej kartki z Gitem może być łatwiejsze - moje doświadczenie w VCS polega na scentralizowanej kontroli wersji (CVS, SVN, Perforce...) i część mojego (trwającego!) trudności z Gitem polegały na zrozumieniu implikacji modelu rozproszonego. Spojrzałem krótko na inne Dvcsy jak Bazaar i Mercurial i oni wydawał się być bardziej przyjazny dla nowicjuszy.

Tak czy siak, jak mówili inni, Subversion jest prawdopodobnie najprostszym sposobem na przyzwyczajenie się do kontroli wersji i praktyczne doświadczenie korzyści płynących z VCS (rollback, branches, collaborative development, easier code review, etc).

Oh, I nie zaczynaj z CVS. Jest nadal w praktycznym użyciu i ma zalety, ale IMHO ma zbyt wiele historycznych dziwactw i problemów z implementacją(nieatomowe!) być dobrym sposobem na ucz się.

 5
Author: Sam Stokes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-23 09:32:14

Mój głos idzie na Subversion. Jest bardzo potężny, ale łatwy w użyciu i ma kilka świetnych narzędzi, takich jak TortoiseSVN.

Ale jak inni mówili przede mną, po prostu zacznij go używać. Kontrola źródeł jest tak ważną częścią procesu tworzenia oprogramowania. Żaden "poważny" projekt oprogramowania nie powinien być bez niego.

 4
Author: Brandon Wood,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-05 18:39:20

W mojej obecnej pracy, mój poprzednik nie używał żadnego rodzaju kontroli wersji. Są po prostu góry folderów w co najmniej 3 różnych miejscach, w których trzymał wszystkie swoje projekty. Każdy losowy folder projektu może znaleźć co najmniej jeden folder o nazwie " project (OLD)" I jeden o nazwie "project"

Z kontrolą wersji, nigdy nie trzeba robić kopii" bezpiecznych " kompilacji. Nie musisz się martwić, że IDE uszkodzi plik, nad którym pracujesz (patrzę na Ciebie, REALBasic 5.5) ponieważ jest tak łatwo zaangażować (Czytaj: zapisać) swoją pracę każdego dnia.

Nie trzeba dodawać, że zainstalowałem kontrolę wersji dzień po tym, jak dowiedziałem się, że istnieje.

Również TortoiseSVN sprawia, że zatwierdzanie do bazy danych jest tak proste, jak kliknięcie prawym przyciskiem myszy folderu.

 4
Author: Grant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-05 19:18:37

Wypróbuj również visual svn na swoim serwerze, jeśli chcesz uniknąć pracy z wierszem poleceń.

 4
Author: DShook,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-06 18:59:40

Jeśli jesteś na Mac OSX, znalazłem http://www.versionsapp.com/ " > wersje, które mają być niesamowitym (darmowym) interfejsem graficznym do SVN.

 3
Author: CodingWithoutComments,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-05 19:01:55

Git jest lepszy od subversion, ale jest trochę na krawędzi.

Powiedziałbym, że jeśli dopiero zaczynasz, wskakuj na krawędź; załóż darmowe konto @ http://github.com

Mają na stronie materiały edukacyjne do konfigurowania i używania Gita.

 3
Author: ryw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-22 18:38:37

Nie czekaj. Wybierz jedną i idź z nią. Wszystkie systemy będą miały swoje plusy i minusy. Twoja moc może wygasnąć, komputer zostanie skradziony, lub zapomnisz cofnąć ważną zmianę i cały kod zostanie usmażony, gdy czekasz, aby zobaczyć, kto wyjdzie zwycięski.

 2
Author: Rob Allen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-05 18:35:27

Nie jest tak trudno przełączać się między systemami kontroli wersji. Jak inni wspominali, ważne jest, aby zacząć używać czegokolwiek tak szybko, jak to możliwe. Korzyści z używania kontroli nad źródłami znacznie przewyższają różnice między różnymi rodzajami kontroli nad źródłami.

Pamiętaj, że bez względu na to, jakiej wersji kontroli źródłowej używasz, zawsze będziesz w stanie wykonać konwersję brute force na inny system, układając pliki ze starego systemu na dysk, a następnie importowanie tych plików raw do nowego systemu.

Ponadto znajomość podstaw kontroli źródeł jest bardzo, bardzo ważną umiejętnością, którą należy posiadać jako programista.

 1
Author: Wedge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-05 23:20:03

Użyj TortoiseSVN (wersja.aplikacja jeśli na mac). Po prostu zainstaluj i idź. Jeśli potrzebujesz miejsca na hosting kodu zajrzyj do http://beanstalkapp.com/

 1
Author: icco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-22 18:42:41

SubVersion jest najlepszym wyborem dla Ciebie , jak zauważył Karl Seguin przejście do innego systemu wersjonowania nie byłoby problemem. również SVN ma bardzo goof łatwy w użyciu GUI po stronie klienta (TortoiseSVN).

Http://www.snee.com/bobdc.blog/2007/08/getting_started_with_subversio.html http://dojo.jot.com/WikiHome/Getting%20Started%20With%20Subversion

 1
Author: Srikanth131,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-23 06:50:43

Jeśli zdecydujesz się na subversion i chcesz hostować własny serwer svn, to istnieje bardzo ładny i łatwy serwer oparty na systemie Windows o nazwie VisualSVN server. Ukrywa złożoność konfiguracji serwera apache, w zasadzie wystarczy przejść dalej dalej. Konfiguracja użytkownika jest obsługiwana przez webUI, a nie przez config

Http://www.visualsvn.com/server/

Używanie Public serve rlike beanstalk jest prawdopodobnie łatwiejsze, ale niektórzy ludzie lubią mieć własne repozytoria, albo dla szybkości albo bezpieczeństwa

 1
Author: s3v1,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-23 08:46:06

Kiedy zdecydowałem, że muszę korzystać z systemu wersjonowania kodu, rozejrzałem się po dobrych samouczkach, jak zacząć, ale nie znalazłem żadnych, które mogłyby mi pomóc.

Więc po prostu zainstalowałem serwer SVN i Tortoise SVN dla klienta i zanurzyłem się w deepend i nie uczę się, jak z niego korzystać po drodze.

 0
Author: GateKiller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-05 18:36:01

Zacznij używać SVN do swojej rzeczywistej pracy, ale spróbuj znaleźć czas na grzebanie w Git i / lub Mercurial. SVN jest dość stabilny do produkcji, ale w końcu staniesz przed scenariuszem, w którym będziesz potrzebować rozproszonego SCM, do którego czasu będziesz odpowiednio uzbrojony i nowe systemy będą wystarczająco dojrzałe.

 0
Author: Ishmaeel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-05 18:38:00

Tak, SVN dla preferencji, chyba że naprawdę potrzebujesz konkretnych funkcji Gita. SVN jest wystarczająco trudny; wygląda na to, że Git jest bardziej skomplikowany. Możesz dostać hosted svn od ludzi takich jak Beanstalk - jeśli nie masz ludzi z Linuksem, naprawdę polecam. Rzeczy mogą pójść źle strasznie łatwo i miło jest mieć kogoś innego, kto ma to naprawić.

Jest doskonały tutorial na temat kontroli wersji od Erica Sinka, który warto przeczytać bez względu na którego systemu używasz.

 0
Author: Polsonby,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-05 18:40:30

Superjoe30 pisze :

Powiązane pytanie (być może odpowiedzi można edytować, aby odpowiedzieć również na to pytanie):

A co z wykorzystaniem kontroli źródła na własnym komputerze, jeśli jesteś jedynym programistą? Czy > > to dobra praktyka? Czy istnieją powiązane wskazówki lub sztuczki?

Używam SVN do wszystkich moich osobistych projektów. Zacząłem od uruchomienia svn na mojej domowej maszynie, ale ostatecznie przeniosłem się do Dreamhost. Ich hosting pakiety zawierające Subversion są całkiem rozsądne.

 0
Author: Mark Biek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:32:05

Jeśli na pudełku windows szybkie i brudne slution jest CVSNT. Łatwy w użyciu wystarczy go skonfigurować i działa bardzo dobrze.

Ja sam wolę SVN, ale ten jest dobry do szybkiego użycia.

 0
Author: Adam Lerman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-07 17:33:30

Zdecydowanie wybrałbym SVN zamiast CVS, choćby dlatego, że ludzie, którzy nauczyli się kontrolować źródła używając CVS, zwykle używają "svn delete", a następnie "svn add" zamiast "svn move". Co utrudnia znalezienie wszystkich poprzednich wersji konkretnego pliku. I zawsze możesz uaktualnić do git-svn. Osobiście uważam, że jest łatwiejszy do nauczenia się niż hg, ale tak naprawdę głównym powodem używania SVN jest to, że stał się on de facto systemem kontroli wersji oprogramowania Open Source.

Jeśli kiedykolwiek planujesz przy uczeniu się / używaniu D dostęp do repozytoriów stron trzecich jest prawie obowiązkowy, jak DSource.
 0
Author: Brad Gilbert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-17 01:25:05

@superjoe30 tak, absoluteley. Gdy zaczniesz korzystać z kontroli wersji, nigdy nie wrócisz. Używam go do wszystkiego, nawet do folderu "domowego".

@Orion Edwards Subversion nie wymaga serwera. Możesz uzyskać dostęp do lokalnego repozytorium bezpośrednio (przez Klienta, oczywiście), a proces serwera nie jest zaangażowany.

 0
Author: Anders Sandvig,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-18 08:17:01

Po prostu użyj TortoiseSVN, a możesz żyć nawet bez znajomości rzeczywistych poleceń Subversion... Ale to źle. Na szczęście zawsze będzie "świetna okazja", aby nauczyć się ich na pamięć-gdy twoje bezcenne repozytorium po raz pierwszy zostanie uszkodzone.

Tak, zdarza się.

 0
Author: ansgri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-18 14:47:18

Jak wspomniano wiele razy gdzie indziej, po prostu to zrób. Udało mi się rozpocząć od zera z Subversion pod Windows w krótkim czasie, czytając przewodnik szybkiego startu w Czerwonej Księdze. Raz wskazałem TortoiseSVN na repozytorium, byłem w biznesie. Zajęło mi trochę czasu, aby uzyskać drobniejsze punkty w dół, ale były to drobne Garby, aby przejść.

Sugerowałbym zainstalowanie usługi Subversion zamiast używania adresów URL file://, ale to głównie osobiste preferencje. Dla repozytorium przechowywanego na Twoim development machine, plik: / / działa dobrze.

 0
Author: SarekOfVulcan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-22 18:30:30

Z własnego doświadczenia, svn byłby moją rekomendacją. Możesz nawet skorzystać z usługi takiej jak Beanstalk, która oferuje darmowe konta (oczywiście z limitami, ale wystarczającymi dla każdego małego projektu), aby przetestować wody. Ale jak powiedzieli inni, git jest lepszy i prawdopodobnie warto się temu przyjrzeć.

 0
Author: jonezy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-22 18:42:50

Jedną z głównych wskazówek ułatwiających konfigurację serwera SVN w tej chwili jest użycie urządzenia wirtualnego. Oznacza to, że maszyna wirtualna, która ma preinstalowaną i (głównie) wstępnie skonfigurowaną subversion-w zasadzie plug & play. Możesz spróbować tutaj, Tutaj i tutaj , lub po prostu spróbuj wyszukać Google na "subversion virtual appliance".

 0
Author: Hershi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-30 16:30:14