dlaczego miałbym przechowywać kod w takim miejscu?
Kluczowym punktem rozwoju oprogramowania typu open source jest udostępnianie kodu źródłowego. Można to zrobić na kilka sposobów, na przykład umieszczając pliki tar / zip na serwerze WWW lub ftp. Usługi takie jak kod Google (lub sourceforge.net, gitorious.org, bitbucket.org i wiele innych) eliminują potrzebę uruchamiania własnych serwerów w tym celu.
Czy to oznacza, że muszę usunąć witrynę z mojego obecnego hostingu, czy jest to zupełnie inny rodzaj hostingu?
Usługi te nie są hostami internetowymi ogólnego przeznaczenia, ale prowadzą bardzo wyspecjalizowane usługi. Nie mają one być stroną główną produktu, ale raczej pulpitem programisty.
Z kodem Google otrzymujesz
- wiki
- bugtracker
- miejsce do regularnego pobierania plików
- serwer kontroli wersji
Oczywiście możesz skonfigurować te oprogramowanie na zwykłym serwerze internetowym (kontrola wersji może być trudna, ale zależy to w dużej mierze od szczegółów), ale główną zaletą korzystania z hostingu dla programistów jest to, że nie musisz się tym przejmować tych systemów dla twojego własnego. Główną wadą jest to, że nie masz kontroli nad tym, jakie oprogramowanie jest używane na serwerze, musisz żyć z tym, co jest dostępne na tym hoście. Musisz także zastanowić się, co się stanie, jeśli usługa przestanie działać (ok, Google nigdy nie zawiedzie) i czy możesz przenieść dane z bieżącego hosta na inny lub własny serwer (pomyśl o kopiach zapasowych).
Co się stanie, gdy utworzę witrynę o otwartym kodzie źródłowym, jakie mam prawa,
To trudne pytanie, ponieważ zależy od prawa kraju, w którym mieszkasz.
jakie prawa daję.
Zależy to od licencji udzielonej produktowi. Może pochodzić z zastrzeżonego oprogramowania typu open source (pomyśl o PGP), w którym użytkownik w zasadzie nie może nic zrobić z kodem, z drugiej strony skali jest własnością publiczną, gdzie każdy może robić, co chce.
Jak to działa, czy ludzie po prostu przychodzą i rzucają we mnie kodami za darmo?
Jest to bardzo mało prawdopodobne, ponieważ twój produkt potrzebuje wystarczającej popularności, aby przyciągnąć innych programistów.
[...] i teraz pyta mnie, czy chcę, aby projekt miał hosting kodu Git, Mercurial lub Subversion.
Są to trzy różne systemy kontroli wersji, w których Subversion jest scentralizowany, podczas gdy Git i Mercurial są rozproszone.
Są wojny religijne, z których należy skorzystać, ale najważniejsze jest, aby użyć jednej. Więcej informacji można znaleźć na stronie http://martinfowler.com/bliki/VersionControlTools.html .
Kiedy wybrać Subversion:
- Masz pliki binarne, których nie można łatwo scalić, i potrzebujesz przepływu pracy blokady-> modyfikuj-> zatwierdzaj-> odblokuj, który obsługuje subversion¹
- Musisz sprawdzić tylko część struktury katalogów.
¹ Istnieje rozszerzenie blokady dla rtęci, ale nie mam z tym doświadczenia i nie mogę powiedzieć, czy jest użyteczne.
Jeśli nie potrzebujesz tych pierwszych funkcji, lepiej użyć Mercurial lub Git. Oba mają następujące zalety w stosunku do Subversion:
- szybki (a przez szybki naprawdę mam na myśli szybki )
- łatwe rozgałęzianie i scalanie (stało się to lepsze od Subversion> = 1,5, ale to nie to samo)
- zatwierdzanie i publikowanie jest oddzielone, więc możesz pracować bez zakłóceń nad funkcją i publikować pracę, gdy zostanie wykonana
- śledzą stan katalogu produktu jako całości
- po sklonowaniu zdalnego repozytorium otrzymasz pełną kopię całej historii wersji
zabezpieczone kryptograficznie numery wersji, co oznacza, że nawet jeśli ktoś włamie się na serwer, nie może wprowadzić kodu bez zmiany historii wersji
- ale ponieważ nikt nie sprawdza tych poprawek, ta funkcja praktycznie nie jest skuteczna