Kontrola wersji dla niezależnych programistów?


60

Czy uważasz, że warto używać kontroli wersji, jeśli jesteś niezależnym programistą, a jeśli tak, to dlaczego? Czy przechowujesz repozytorium na swoim komputerze, czy gdzie indziej, gdzie może służyć jako kopia zapasowa?


54
Bardzo chciałbym zobaczyć, jak farmaceuta pyta: „Czy powinienem przechowywać leki w zorganizowany sposób, czy po prostu wrzucić je wszystkie do szuflady? Czy warto?”
— Erik,

23
Wyobraź sobie, że ciężko pracujesz przez tydzień, tworząc niesamowite oprogramowanie. Następnie usuń go. Jak byś się czuł? To nie tylko przechowywanie. Kiedy coś się zepsuło, co zadziałało w zeszłym tygodniu, możesz spojrzeć i zobaczyć, co się zmieniło, i zwykle zobaczyć, co popsułeś. Nadal widzę „profesjonalnych” programistów z folderami backup001 i backup_backup001 zmieszanymi z ich źródłami. Kształtuj dobre nawyki, gdy jesteś jeszcze młody.
— Erik,

@Erik Yuck, foldery kopii zapasowych brzmią paskudnie. Używam kontroli źródła w swoich projektach, choć nie jestem zbyt dobry w częstym angażowaniu się.
— vedosity

Odpowiedzi:


61

Jeśli używasz zdecentralizowanej kontroli źródła (Mercurial, Git, Bazaar lub cokolwiek innego), zyskujesz przewagę nad SVN / CVS, co sprawia, że ​​jest to łatwe, użyteczne i wydajne w użyciu w przypadku, gdy jesteś indykiem:

  1. Dokonujesz transakcji lokalnie : katalog projektu jest Twoim repozytorium z PEŁNĄ historią. Więc nie musisz mieć serwera, zatwierdzasz bezpośrednio w repozytorium i możesz mieć kilka repozytoriów na tym samym komputerze. Używasz laptopa, który czasami otwierasz, aby kontynuować pracę nad swoimi rzeczami? Wspaniały! Nie musisz konfigurować serwera, a jeśli potrzebujesz go później, jest to łatwe i po prostu „wypychasz” i „ściągasz” zmiany między repozytoriami.
  2. Ma na celu ułatwienie eksperymentowania : często musisz mieć pojęcie o funkcji bez zanieczyszczania kodu. Dzięki SVN i CVS możesz już korzystać z systemu rozgałęziania i porzucić gałąź, jeśli ta funkcja nie jest tak dobra, jak chcesz. Ale jeśli chcesz połączyć tę funkcję z wersją bagażnika, będziesz mieć wiele trudnych do naprawienia niespodzianek. Git, Mercurial i Bazaar (przynajmniej) sprawiają, że fuzje i oddziały są naprawdę łatwe. Możesz nawet po prostu zduplikować repozytorium, popracować nad nim przez jakiś czas, nadal zatwierdzać i zabijać je lub przesuwać zmiany w repozytorium głównym, jeśli chcesz.
  3. Elastyczność organizacji : jak już wcześniej wspomniano, ponieważ repozytoria, które organizujesz w miarę potrzeb, łatwo jest zacząć samemu i pozwolić innym osobom współpracować z Tobą, zmieniając organizację. Żadna organizacja nie jest narzucana, więc wystarczy ją skonfigurować i voila. Często po prostu pcham / wyciągam zmiany między moimi własnymi komputerami (laptopem / komputerem stacjonarnym / serwerem) i wciąż jestem sam na moich programistach. Korzystam z Mercurial, co pomaga mi powielić moją pracę, ale także pracować nad funkcjami, o których myślałem na zewnątrz na swoim laptopie, a następnie kontynuować pracę nad innymi funkcjami na pulpicie, a następnie przesyłać zmiany laptopa na pulpicie lub serwerze i scalać cały pulpit + laptop i umieść go (jako kopię zapasową i repozytorium przyszłej pracy zespołowej) na moim serwerze.
  4. Pomaga w tworzeniu kopii zapasowych : jeśli skonfigurujesz centralne repozytorium (na GitHub, jeśli jest publiczne lub w prywatnym repozytorium na BitBucket), możesz łatwo napisać skrypt, który zostanie wykonany przy każdym uruchomieniu komputera, a następnie przekazać ten skrypt na do znajomych, aby regularnie tworzył automatyczne kopie zapasowe pracy. Właśnie to robię, więc jestem pewien, że stracenie pracy nie będzie łatwe.

W rzeczywistości obecnie nie ma wymówki, aby nie używać narzędzia źródła kontroli dla żadnego projektu. Ponieważ są one bardziej wydajne i elastyczne niż wcześniej i mogą być skalowane zgodnie z Twoimi potrzebami.


6
Zawsze jest GitHub .
— HedgeMage

8
Lub bitbucket.org, jeśli używasz Mercurial.
— Terence Ponce

7
Mercurial z repozytorium lokalnego systemu plików na Dropbox działa naprawdę dobrze dla pojedynczego programisty.
— Pieter Breed,

1
@Guillaume: Jeden programista może korzystać z „rozproszonego” aspektu DVCS. Ja robię. Na przykład, mogę pracować na komputerze, naciśnij moją pracę na moim kluczu USB, a następnie wyciągnąć z tego klucza USB na komputer B.
— barjak

1
@Guillaume „Rozproszony” jest aspektem technicznym, a nie organizacyjnym. Możesz użyć scentralizowanego systemu źródłowego constrol z organizacją, w której integratorzy mogą sprawdzać tylko zatwierdzony kod. Jest to możliwe, ale trudne do skonfigurowania ze względu na scentralizowany charakter narzędzia. Ale to wciąż problem ortogonalny.
— Klaim

34

kontrola kodu źródłowego jest całkowicie bezużyteczna dla niezależnych programistów, ponieważ jak wszyscy wiemy:

  • niezależni programiści nigdy nie popełniają błędów
  • niezależni programiści nigdy nie wybierają wersji, które się nie sprawdzają
  • niezależni programiści nigdy nie mają więcej niż jednej wersji, więc nie mają zastosowania dla oddziałów
  • niezależni programiści nigdy nie dbają o to, co zmienili wczoraj lub w zeszłym tygodniu
  • niezależni programiści nigdy nie potrzebują kopii zapasowych

Nazwij mnie „deweloperem zależnym”: repozytoria Mercurial łatwo klonują się między moim komputerem stacjonarnym, laptopami, dyskami USB do tworzenia kopii zapasowych i bitbucket.org. Stałem się zależny i lubię to w ten sposób!


6
Czy ta odpowiedź jest sarkastyczna?

4
@kurtnelle: niezwykle!
— Steven A. Lowe

1
Kewlio, tylko sprawdzam.

21

Dlaczego nie?

Jestem solistą i używam BitBucket i Mercurial do moich osobistych projektów. Możliwość cofnięcia i rozwidlenia kodu jest po prostu zbyt dobra, aby go pominąć.


8
+1 dla BitBucket - oferują nieograniczone prywatne repozytoria za darmo.
— Jon Sagara,

2
Darmowe prywatne repozytoria są powodem, dla którego używam BitBucket przez GitHub.
— Terence Ponce,

4
darmowe prywatne repo? Możliwe, że przekonwertowałeś mnie z git na hg.
— Gauthier,

@Gauthier, tak, BitBucket ma darmowe prywatne repo. Nie jestem jednak pewien, czy są nieograniczone.
— Terence Ponce,

1
Nadal możesz używać git z bitbucket. W rzeczywistości import prosto z github, w tym klucze ssh. Właśnie wykonałem ruch, ale nadal używam git (bardziej mi się podoba!)
— Daniel Casserly,

1

Osobiście znajduję w tym wartość. Wszystkie moje projekty są sprawdzane w repozytoriach git (z których wszystkie przechowuję na wielu komputerach w przypadku awarii sprzętu). Najbardziej przydatne funkcje to rozgałęzianie (dzięki czemu mogę przeprowadzić eksperyment, który nie działa z połową mojej bazy kodu i nie martwię się o trwałe wysadzenie czegokolwiek) i przywracanie (co w zasadzie polega na cofnięciu sterydów; na wypadek, gdyby okazało się, że zrobiłem trochę błąd, który jest poza regularnym cofnięciem).


1

Tak. To jest bardzo, bardzo przydatne. Mój przyjaciel Matt Gallagher opublikował ten znakomity artykuł na ten temat zaledwie kilka dni temu na swoim blogu programistycznym iOS / MacOS „Cocoa With Love”.

Artykuł dotyczy Mac & Git, ale obejmuje podstawy.

Mogą Cię również zainteresować poniższe pytania StackExchange (i ich odpowiedzi).


1

Wartość?? Musieć! Jeśli nie korzystasz z kontroli źródła, nie kontrolujesz źródeł, a to źle. Nie możesz się różnić, nie możesz cofnąć, nie możesz śledzić zmian - poświęcisz godziny na znalezienie fałszywego błędu, który właśnie wprowadziłeś. Lepiej jest mieć go na jakimś serwerze z kopią zapasową, ale możesz także mieć swój komputer i użyć dowolnej metody tworzenia kopii zapasowych, która Ci odpowiada.


2
Właściwie używam kontroli źródła, ale mam też tendencję do robienia takich rzeczy, jak nadmierna inżynieria i przyjmowanie rzeczy, które są nadmierne. Jestem dobrze znany z tego w pracy. Z drugiej strony, nie sądzę, aby programiści, w których pracuję, w tym ja, pracowali nigdzie indziej jako programiści, a większość z nas nadal jest w szkole średniej.
— vedosity

1

Absolutnie użyj kontroli źródła. Następnie skonfiguruj serwer kompilacji i zautomatyzuj procesy kompilacji i testowania. Trigger buduje z twoich źródłowych zatwierdzeń centralnego repozytorium. Pracuję sam przez trzy lata w ten sposób i to jest wspaniałe.


0

Tak.

Nawet pojedynczy programiści muszą czasem zobaczyć stan swojego kodu z poprzedniej wersji. Zawsze dobrym pomysłem jest tworzenie kopii zapasowych wszystkiego, co ważne, i dotyczy to wszystkich ludzi.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.