почему я должен разместить код где-то вроде этого?
Ключевым моментом разработки программного обеспечения с открытым исходным кодом является обмен исходным кодом. Есть несколько способов сделать это, например, поместить файлы tar / zip на веб-сервер или FTP-сервер. Такие сервисы, как код Google (или sourceforge.net, gitorious.org, bitbucket.org и многие другие) устраняют необходимость запуска собственных серверов для этой цели.
И будет ли это означать, что мне придется удалить сайт с моего текущего хостинга, или это совершенно другой тип хостинга?
Эти сервисы не являются веб-хостами общего назначения, но запускают очень специализированные сервисы. Они не предназначены для того, чтобы быть домашней страницей продукта, а скорее инструментальной панелью разработчика.
С Google Code вы получаете
- вики
- багтрекер
- обычное место для скачивания файлов
- сервер контроля версий
Конечно, вы можете установить это программное обеспечение на обычном веб-сервере (контроль версий может быть сложным, но это зависит от многих деталей), но главное преимущество использования хостинга разработки заключается в том, что вам не нужно заботиться из этих систем для вашего собственного. Основным недостатком является то, что вы не можете контролировать, какое программное обеспечение используется на сервере, вы должны жить с тем, что доступно на этом хосте. Вам также нужно подумать о том, что произойдет, если служба выйдет из бизнеса (хорошо, Google никогда не выйдет из строя), и если вы можете перенести данные с текущего хоста на другой или на свой собственный сервер (подумайте о резервных копиях).
Что происходит, когда я делаю свой сайт открытым исходным кодом, какие права я имею,
Это сложный вопрос, поскольку он зависит от законодательства страны, в которой вы живете.
какие права я отдаю.
Это зависит от лицензии, которую вы даете на продукт. Он может исходить из проприетарного открытого исходного кода (например, PGP), где пользователь в принципе ничего не может сделать с кодом, на другом конце шкалы находится общественное достояние, где каждый может делать все, что захочет.
Как это работает, люди просто приходят и бросают мне код бесплатно?
Это вряд ли произойдет, так как вашему продукту нужна достаточная популярность, чтобы привлечь других разработчиков.
[...] и теперь меня спрашивают, хочу ли я, чтобы проект имел хостинг с Git, Mercurial или Subversion.
Это три разные системы контроля версий, где Subversion является централизованной, а Git и Mercurial - распределенными.
Есть религиозные войны о том, какую из них использовать, но главное - использовать одну. См. Http://martinfowler.com/bliki/VersionControlTools.html для получения более подробной информации.
Когда выбрать Subversion:
- У вас есть двоичные файлы, которые не могут быть легко объединены, и вам нужен рабочий процесс lock-> modify-> commit-> unlock, который поддерживает subversion¹
- Вам нужно проверить только часть структуры каталогов.
Extension Существует расширение блокировки для Mercurial, но у меня нет опыта работы с ним, и я не могу сказать, можно ли его использовать.
Когда вам не нужны прежние функции, лучше использовать Mercurial или Git. Оба имеют следующие преимущества перед Subversion:
- быстро (а с быстрым я действительно имею ввиду быстрый )
- простое ветвление и объединение (это стало лучше после Subversion> = 1.5, но это не одно и то же)
- коммит и публикация отделены, так что вы можете без помех работать над функцией и публиковать работу после ее завершения
- они отслеживают состояние каталога продуктов в целом
- вы получаете полную копию всей истории версий при клонировании удаленного репозитория
криптографически защищенные номера ревизий, что означает, что даже если кто-то взломает сервер, он не сможет поставить код на место без изменения истории ревизий
- но поскольку никто не проверяет эти ревизии, эта функция практически не эффективна