Jak skonfigurować system kontroli kodu źródłowego dla siebie?

23

Programuję na pulpicie w biurze, ale czasem też w domu w innym pokoju na laptopie, a nawet poza domem. Potrzebuję systemu, który automatycznie lub w razie potrzeby synchronizuje moją pracę z jedną na drugą.

Nie mam konfiguracji sieci domowej i chociaż myślę, że mógłbym to zrobić, być może byłoby to pytanie dla innej płyty. Myślałem o jakimś systemie, który utrzymywałby kod źródłowy w chmurze, ale nie wiem wystarczająco dużo o tym, aby zacząć. Potrzebuję do tego darmowego lub taniego sposobu.

Pracuję w .NET (w rzeczywistości Windows Phone 7).

Cyberherbalist
źródło
1
użyj dropboksa, po prostu zainstaluj go na obu komputerach i gotowe. Jest bezpłatny (do 2 GB). W twojej sytuacji kontrola źródła jest nadrzędna (IMHO).
Darknight
26
Kontrola źródła nigdy nie jest przesadna (IMHO)!
Mongus Pong
4
Instalacja i uruchomienie Git zajmuje <15 minut (w zależności od przepustowości pobierania).
Mongus Pong
2
instalacja i uruchomienie Dropbox trwa <3 minuty (w zależności od przepustowości pobierania).
Darknight
4
DropBox to straszna sugestia! To nie jest odpowiedni system kontroli wersji, służy do udostępniania danych. Ma bardzo nieprzyjemny zwyczaj przesyłania i pobierania zmian za każdym razem, gdy zapisujesz plik i synchronizujesz go z innymi klientami w czasie rzeczywistym , całkowicie zagłusza twój komputer, wykonując cały ten niepotrzebny ruch sieciowy, szczególnie jeśli używasz czegoś, co tworzy artefakty w tym samym katalogu, który znajduje się w DropBox. Dowiedz się i korzystaj z Git lub równoważnego DVCS.

Odpowiedzi:

39

Najprostszym sposobem jest użycie jednego z systemów online. Kasa GitHub lub BitBucket . Aby uzyskać więcej informacji na temat Git lub Mercurial, sprawdź odpowiednio Git Reference i Hg Init .

Peter Rowell
źródło
Może, jeśli wszystkie maszyny mają połączenia z Internetem, ale istnieją inne przypadki użycia. Na przykład przechowuję niektóre repozytoria subversion na pamięci flash USB, a niektóre większe (nie kod źródłowy - zdjęcia i inne rzeczy) na zewnętrznym dysku twardym. Kiedy będę zadowolony z przejścia, prawdopodobnie będę mieć repozytoria Mercurial na dyskach flash USB. Jeden powód - nadal używam Windows XP do wielu rzeczy, ale w żadnym wypadku nie pozwolę na to (laptop lub komputer stacjonarny) w Internecie.
Steve314,
21
Zaletą rozproszonych systemów kontroli wersji, takich jak Git i Mercurial, jest to, że możesz pracować z repozytorium lokalnie, a następnie synchronizować z jakimś serwerem centralnym, ilekroć masz połączenie z siecią. Brzmi jak idealne rozwiązanie dla OP.
Michelle Tilley
@Brandon - działa również w przypadku głównego repozytorium na dysku zewnętrznym, gdy podłączenie go przez cały czas jest uciążliwe.
Steve314,
2
Pamiętaj, że BitBucket ma bezpłatne prywatne repozytoria (w przeciwieństwie do GitHub), co prawdopodobnie sprawia, że ​​jest to lepsza opcja dla OP.
Kevin Yap
Powodem, dla którego nie zasugerowałem uruchomienia go lokalnie, było to, że nie brzmiał tak, jakby nie czuł się z tym dobrze i powiedział, że potrzebuje zdalnego dostępu do niego. Ale oczywiście uruchamianie lokalne i wypychanie do repozytorium w chmurze jest najlepszym / najbezpieczniejszym sposobem.
Peter Rowell,
7

Możesz użyć DVCS, takich jak Git lub Mercurial, które mogą utworzyć lokalne repozytorium, a następnie zainstalować Dropbox i umieścić folder projektu (w tym oczywiście folder repozytorium) w folderze dropbox.

Dropbox zajmie się synchronizacją i może obsłużyć sytuację offline, o ile modyfikujesz tylko w jednym miejscu między synchronizacją.

BTW Dropbox domyślnie nie udostępni twoich plików publicznie, ale możesz je ujawnić, jeśli chcesz.

EDYTOWAĆ

Jeśli chodzi o integralność repozytorium w przypadku, gdy Dropbox nie zsynchronizuje jednego lub dwóch plików, możesz utworzyć główne repozytorium poza folderem Dropbox na głównym komputerze i pchać się do niego. Więc jeśli lokalne repozytorium w folderze Dropbox ulegnie uszkodzeniu, po prostu przywróć z głównego komputera. Ale nie doświadczyłem uszkodzenia repozytorium.

Endy Tjahjono
źródło
Zasadniczo to, co robię. Repozytoria Mercurial na moim komputerze stacjonarnym i laptopie, główne repozytorium w Dropbox, z którego wypycham i pobieram.
David Thornley
@David Robię to w odwrotnej kolejności, główne repozytorium na PC, repozytorium robocze w Dropbox, w tym pliki kodu źródłowego, nad którymi pracuję.
Endy Tjahjono
@Endy Tjahjono: Brzmi z twojego komentarza, jakbyś pracował na jednym komputerze. Czasami używam swojego pulpitu i laptopa, więc tak naprawdę nie działa moje główne repozytorium na jednym z nich.
David Thornley,
@David mój błąd, powinienem był powiedzieć repozytorium kopii zapasowej na moim głównym komputerze. Moje „główne” repozytorium to repozytorium robocze w folderze Dropbox. Od czasu do czasu naciskam na repozytorium kopii zapasowych w celu wykonania kopii zapasowej.
Endy Tjahjono
6

Oto kilka szybkich instrukcji dotyczących konfiguracji rozproszonego VCS. Zaletą korzystania z git lub mercurial jest to, że nie trzeba konfigurować serwera, aby wszystko działało, ponieważ repozytorium jest tylko systemem plików. Masz lokalne repozytorium na komputerze obok kodu (w git jest jeden .gitfolder, aw mercurial jeden .hgfolder na ścieżce projektu).

Korzystanie z git

Krok 1: Pobierz i zainstaluj git. W systemie Windows możesz użyć TortoiseGit . Niektóre uwagi dotyczące instalacji są tutaj .

Krok 2: Postępuj zgodnie z instrukcją społeczności git, aby zainicjować lokalne repozytorium dla twojego projektu i zatwierdzić w repozytorium.

Krok 3: Aby umieścić rzeczy w „chmurze”, czyli github, możesz wykonać ten samouczek .

Korzystanie z Mercurial

Krok 1: Pobierz i zainstaluj mercurial. W systemie Windows możesz użyć TortoiseHg .

Krok 2: Postępuj zgodnie z Przewodnikiem Szybki start, aby utworzyć repozytorium dla swojego projektu i zatwierdzić w repozytorium.

Krok 3 Aby umieścić rzeczy w „chmurze”, czyli bitbucket, możesz wykonać ten samouczek .

Jeśli pracujesz w .NET, możesz chcieć użyć Mercurial ze względu na (w pewnym sensie) lepszą obsługę Windows w momencie pisania.

Łup
źródło
2

Jak już słusznie powiedzieli @ peter-rowell i inni, najprostszym sposobem jest użycie dowolnego z DVCS, takich jak Git i odpowiednich systemów online, takich jak Github lub Unfuddle. Osobiście używam Git i Unfuddle.

Ponieważ wspomniałeś, że uzyskanie połączenia internetowego w domu również nie stanowi problemu, pojawiło się nowe IDE online, które działa w przeglądarce i żyje w chmurze. Nie wiedziałem, że wcześniej coś takiego było dostępne, ale wygląda to bardzo interesująco i fajnie. Chociaż nie używałem go zbyt często, ale jest fajny.

Syed Aslam
źródło
Unfuddle to świetna usługa. Zasadniczo jest to tylko kopia Redmine z kilkoma fajnymi poprawkami.
Keyo
2

Prawie każdy DVCS pomógłby.

Najpopularniejsze to Git, merkurial i kilka innych; ale naprawdę lubię Fossil . Jest to pojedynczy (mały!) Wykonywalny, łatwy w przenoszeniu, niezależny, wieloplatformowy i zawiera wiki, graficzny interfejs użytkownika, system zgłoszeń, procedurę obsługi dokumentacji itp.

Javier
źródło
1
Bitbucket to usługa zapewniająca hosting Mercurial.
Tamás Szelei
dzięki. wiedziałem to; ale imiona zaplątały mi się w głowie
Javier
1

Opcją, którą sugerowałbym, byłby piec . Tworzą go ci sami ludzie, którzy tworzą FogBugz i Stack Exchange. Powinno to być całkiem dobre, a także, jak sądzę, bezpłatne dla maksymalnie 3 użytkowników. Skala jest podobna do FogBugza, a obie można zintegrować, dzięki czemu możesz śledzić błędy i funkcje.

Tak jak powiedział Joel w jednym ze swoich postów na blogu, śledzenie błędów i kontrola źródła są zawsze zaletą, nawet dla samotnego programisty.

Prodigal Maestro
źródło
Cóż, może być bezpłatny dla 3 użytkowników, ale teraz kosztuje 25 USD na użytkownika miesięcznie. Mimo to wydaje się fajnym produktem.
Cyberherbalist
1

Jeśli prywatność Twojego kodu nie stanowi problemu, Google Code może być realnym rozwiązaniem. Zajmuje się częścią hostingową, jest bezpłatny i dość łatwy w konfiguracji. Obsługuje Subversion, Mercurial i Git, które wszystkie mają klientów Windows. Integruje się również z identyfikatorami Google ID, dzięki czemu można łatwo dodawać współpracowników do projektu. Prowadzę tam moje projekty hobby za pomocą Mercurial. Mam klienta TortoiseHg zainstalowanego zarówno na moim komputerze domowym, jak i służbowym, więc mogłem pracować nad swoimi projektami podczas przerw.

System wyłączony
źródło
Miły! Dzięki, że o tym wspomniałeś - jeszcze nie słyszałem o Google Code.
Cyberherbalist
0

To zależy od Twojej wiedzy na temat konfigurowania serwera i czasu, który chcesz zainwestować.

Osobiście wypożyczyłem mały serwer wirtualny od hosta i zainstalowałem serwer Apache Webserver zintegrowane repozytorium Subversion (które teraz konwertuję na git). Konfiguracja naprawdę nie jest aż tak duża, a po uruchomieniu nie musisz się już o to martwić. Ta konfiguracja ma tę zaletę, że możesz nie tylko skonfigurować repozytorium kontroli wersji, ale także inne rzeczy, do których chcesz uzyskać dostęp z dowolnego miejsca (zainstalowałem na przykład WIKI i narzędzie do śledzenia problemów).

Jeśli to dla ciebie za dużo, zawsze możesz skorzystać z sugerowanych systemów online, takich jak GitHub.

perdian
źródło
0

Najłatwiej jest iść z dostawcą git, github ma możliwość zapłaty za prywatne konto.

Ale nie zapomnij o svn, jest prosty i łatwy w użyciu. Możesz zainstalować serwer svn gdzieś, gdzie możesz go osiągnąć, prawdopodobnie w pracy. (A projekt podobny do serwera Visual SVN sprawia, że ​​jest to naprawdę łatwe w systemie Windows.) Jako klient możesz użyć wtyczki Visual Studio lub tortoisesvn.

Jedyną rzeczą, o której musisz pamiętać, jest to, że musisz zatwierdzić i zaktualizować po zmianie komputera.

Johan
źródło
Nie sądzę, aby SVN była tutaj właściwą odpowiedzią. Łatwiej mi było ustawić Mercurial niż SVN i jest to lepszy system niż SVN. SVN jest bezużyteczny bez bezpośredniego połączenia z centralnym repozytorium, a OP ma dwa komputery, które najwyraźniej nie mają bezpośredniego łącza.
David Thornley
Nie jestem pewien, svn jest łatwiejszy niż rozproszone alternatywy. Ale ponieważ nie może on dotrzeć do serwera przez cały czas, musisz być zdyscyplinowany, kiedy chcesz się rozgałęzić. Ale program jednego człowieka i tak rzadko to robi. A potrzeba zatwierdzenia jest przy zmianie komputera, więc zgadzam się, że nie jest to optymalne. Ale to jest alternatywa. Właściwie tak pracowałem, zanim zacząłem używać git. (Ale z git łatwiej się pomylić).
Johan
Zakładam, że przenosi laptopa ze sobą, gdy idzie do pracy, w przeciwnym razie konfiguracja nie będzie łatwa, a David ma rację.
Johan
Czas potrzebny na skonfigurowanie repozytorium git lub Hg ( git init), kilka sekund. Przy subversion potrzebujesz najpierw serwera, który jest o wiele trudniejszy niż tylko uruchamianie git/hg initw twoim katalogu. Jestem niecierpliwy i leniwy, a Git zachęca mnie do korzystania z SCM, ponieważ (łączenie, inicjowanie, zatwierdzanie) jest tak szybkie i bezbolesne.
Keyo
0

Używam Beanstalk . Działa świetnie dla mnie jako osobisty serwer SVN. Mają także hosting Git, ale nie próbowałem. Mają darmowe konto na początek, a następnie możesz przejść na konto płatne, jeśli to konieczne.

RationalGeek
źródło
-2

Dropbox

Wszystkie pozostałe rozwiązania są nadrzędne w stosunku do twoich potrzeb:

Wystarczy zainstalować Dropbox na obu komputerach.

Pełna kontrola źródła jest przyjemna, ale w twojej sytuacji nie jest potrzebna IMHO .

Jest to najłatwiejsza i najprostsza ścieżka do wyboru -> kończysz z automatyczną synchronizacją folderów na dowolnej liczbie komputerów.

Ciemna noc
źródło
1
Możesz używać Git razem z Dropbox. Zobacz stackoverflow.com/questions/1960799/…
Mongus Pong
4
Korzystanie z kontroli źródła nie jest przesadzone, szczególnie gdy Git i HG są tak łatwe do skonfigurowania. Nie sądzę, żeby miało to znaczenie, że jest jedynym programistą, jeśli pisze kod produkcyjny, potrzebuje kontroli źródła.
richeym
Tak, prawdopodobnie masz rację. Myślę, że dla jednego programisty jest to po prostu niepotrzebne i OTT, ale do cholery, to mój pogląd.
Darknight
git init, git add ., git commit -m "bla"To jest o wszystko, co trzeba wiedzieć, aby popełnić jakiś kod. Nie trudne i masz poczucie, że możesz to cofnąć. Oczywiście korzyści są znacznie ważniejsze w zespole, ale lubię być w stanie zresetować do punktu w czasie, jest to ważne. Możliwość rozgałęziania się i magazynowania sprawia, że ​​jestem również bardziej produktywny.
Keyo
Słyszę, co mówisz, w rozwijanej skrzynce synchronizacji w czasie rzeczywistym, ma podstawowe wycofanie. Tak, to nic w porównaniu do pełnej kontroli źródła, ale potem jest to prawie „ogień i zapomnij”
Darknight