Было предложено взять мой проект с открытым исходным кодом из-за его размера и отсутствия навыков, поэтому я проверил Google Code и начал делать проект, и теперь он спрашивает меня, хочу ли я иметь проект Git, Mercurial или Subversion код хостинга.
Я даже не знаю, что такое кодовый хостинг, и поиск просто запутал меня еще больше в спорах между всеми этими вещами, и это стало еще хуже, поскольку Google Code спрашивает меня, какой тип лицензии я хочу.
Я думаю, что я не совсем понимаю, что на самом деле означает открытый исходный код. Может ли кто-то в значительной степени составить краткий листок для непрофессионала о том, что все это значит? Очень признателен.
Редактирование Было получено много хороших отзывов об этих трех версиях хостинга кода, но я думаю, что мне не удалось ответить на реальный вопрос: в принципе, я не знаю, как работает этот материал с открытым исходным кодом, зачем мне размещать код где-то вроде этого ? И будет ли это означать, что мне придется удалить сайт с моего текущего хостинга, или это совершенно другой тип хостинга? Что происходит, когда я делаю свой сайт открытым исходным кодом, какие права я имею, какие права я даю. Как это работает, люди просто приходят и бросают мне код бесплатно? Возможно, это глупые вопросы, и если это так, то, думаю, мне нужны глупые ответы, я серьезно не знаю, что такое открытый исходный код, за исключением концепции совместного использования кода ...
Ответы:
Ключевым моментом разработки программного обеспечения с открытым исходным кодом является обмен исходным кодом. Есть несколько способов сделать это, например, поместить файлы tar / zip на веб-сервер или FTP-сервер. Такие сервисы, как код Google (или sourceforge.net, gitorious.org, bitbucket.org и многие другие) устраняют необходимость запуска собственных серверов для этой цели.
Эти сервисы не являются веб-хостами общего назначения, но запускают очень специализированные сервисы. Они не предназначены для того, чтобы быть домашней страницей продукта, а скорее инструментальной панелью разработчика.
С Google Code вы получаете
Конечно, вы можете установить это программное обеспечение на обычном веб-сервере (контроль версий может быть сложным, но это зависит от многих деталей), но главное преимущество использования хостинга разработки заключается в том, что вам не нужно заботиться из этих систем для вашего собственного. Основным недостатком является то, что вы не можете контролировать, какое программное обеспечение используется на сервере, вы должны жить с тем, что доступно на этом хосте. Вам также нужно подумать о том, что произойдет, если служба выйдет из бизнеса (хорошо, Google никогда не выйдет из строя), и если вы можете перенести данные с текущего хоста на другой или на свой собственный сервер (подумайте о резервных копиях).
Это сложный вопрос, поскольку он зависит от законодательства страны, в которой вы живете.
Это зависит от лицензии, которую вы даете на продукт. Он может исходить из проприетарного открытого исходного кода (например, PGP), где пользователь в принципе ничего не может сделать с кодом, на другом конце шкалы находится общественное достояние, где каждый может делать все, что захочет.
Это вряд ли произойдет, так как вашему продукту нужна достаточная популярность, чтобы привлечь других разработчиков.
Это три разные системы контроля версий, где Subversion является централизованной, а Git и Mercurial - распределенными.
Есть религиозные войны о том, какую из них использовать, но главное - использовать одну. См. Http://martinfowler.com/bliki/VersionControlTools.html для получения более подробной информации.
Когда выбрать Subversion:
Extension Существует расширение блокировки для Mercurial, но у меня нет опыта работы с ним, и я не могу сказать, можно ли его использовать.
Когда вам не нужны прежние функции, лучше использовать Mercurial или Git. Оба имеют следующие преимущества перед Subversion:
криптографически защищенные номера ревизий, что означает, что даже если кто-то взломает сервер, он не сможет поставить код на место без изменения истории ревизий
источник
Хостинг кода - это именно то, где вы можете разместить (или сохранить) свой код.
Git, Mercurial и Subversion - все инструменты контроля версий, которые вы используете для управления историей кода. Git и Mercurial - распределенные системы, тогда как Subversion - более традиционная серверная установка.
Посмотрите Википедию или что-то в этом роде и посмотрите, что вам больше всего нравится. Лично мы используем Mercurial, и он работает очень хорошо для нас.
источник
Джоэл Спольски написал отличный учебник по Hg (Mercurial), и я считаю, что вводный раздел охватывает Subversion, включая причины, по которым вы переходите на Mercurial. Прочитайте, это действительно помогло мне понять многое о Mercurial и DVCS в целом.
Да, и когда вы будете готовы к хостингу , вы можете использовать Google Code, BitBucket , Github (с помощью этого превосходного расширения ) или другие.
источник
Я использую git, с которым мне легче работать благодаря распределенному контролю. Hg хорош и для этой конкретной цели, но я не могу дать вам совет по этому поводу, никогда не использовал его. SVN является централизованной системой и, следовательно, менее практичной, но может быть немного проще.
Открытый исходный код в основном означает, что вы даете кому-либо возможность использовать свою работу и опираться на нее. Вы можете установить границы этого использования: GPL означает, что пользователь должен сделать свою добавленную работу открытым исходным кодом, LGPL означает, что он, например, нет.
источник
Subversion будет самым простым вариантом, потому что это VCS. Git и Mercurial являются системами DVCS. Они более современные и мощные, но сложнее понять. Использование внешнего интерфейса, такого как TortoiseSVN или TortoiseHG (для Mercurial aka HG) также очень помогает.
Если ваше программное обеспечение является автономной программой, вы можете использовать GPL или действительно открыть ее с помощью лицензии BSD. Если ваш проект представляет собой библиотеку, с которой кто-то еще свяжется, используйте LGPL или снова BSD; но не используйте GPL.
[редактировать]
Что касается вашей первоначальной мотивации программного обеспечения с открытым исходным кодом: к сожалению, просто сделать программное обеспечение открытым исходным кодом не означает, что вы получите приток талантливого бесплатного труда. Существуют сотни тысяч проектов с открытым исходным кодом. Только небольшой процент из них имеют активных участников. Причины, которые делают эти проекты успешными или нет, так же разнообразны, как и то, почему компании преуспевают и терпят неудачу. Если вы хотите стать хорошим программистом и создавать хорошее программное обеспечение, вам придется потратить много времени на изучение, написание кода и общение с другими людьми на таких сайтах, как StackOverflow.
источник
Мне кажется, что, хотя большинство людей здесь отвечают на вопрос « как» , никто так и не ответил на вопрос « почему» в вашем вопросе.
Одним из первых проектов с открытым исходным кодом, который я испытал, был невероятный проект Fractint , который был разработан группой Stone Soup , вдохновленной старой историей о каменном супе .
Для меня это заключает в себе дух открытого исходного кода лучше, чем любая напыщенная речь Столлмана или даже оригинальный манифест GNU . Это свидетельствует о силе этого сообщества, что Fractint все еще разрабатывается спустя 23 года после того, как огонь зажегся под этим конкретным кулинарным кодом .
источник
Открытый исходный код означает, что любой может читать, копировать, изменять и распространять ваш код. Вы должны иметь четкое понимание последствий этого, прежде чем продолжить. Возможно, вам следует прочитать книгу или хотя бы просмотреть статьи Википедии по этой теме и / или http://opensource.org/, пока не почувствуете, что у вас есть понимание этой концепции.
(Книга O'Reilly Open Sources http://oreilly.com/openbook/opensources/book/index.html полезна, но, возможно, не совсем то, что вы ищете.)
Какая система управления исходным кодом должна использоваться, имеет второстепенное значение. Вы можете скопировать / вставить свой код на веб-странице и все готово. Тем не менее, контроль версий важен и является хорошим средством для снижения планки для разработчиков. Любой из вариантов, предлагаемых Google Code, подойдет; выберите тот, который вам нравится, или, возможно, отложите вопрос до тех пор, пока вы не спросите своих участников, какой из них они хотели бы использовать.
источник
Создание вашего кода или проекта с открытым исходным кодом означает, что каждый может взять его и изменить его так, как он хочет. Это зависит от того, какой тип лицензии вы выбираете, но в целом открытый исходный код означает, что исходный код доступен любому, кто сможет его загрузить, изменить и использовать по своему усмотрению.
В любом случае этот код должен быть доступен другим людям, чтобы получить его.
Перенос вашего кода в общедоступный онлайн-репозиторий, такой как GitHub, - лучший способ сделать это. Во-первых, ваш код теперь доступен для общественности. Затем, поскольку такие службы также предлагают контроль версий, ваш код организован по проекту. Вы можете отслеживать изменения, которые вы и другие люди делаете. Так как это также позволяет разветвлять (разделять) проект на другие проекты, вы можете отслеживать все разные версии, сделанные другими людьми из вашего кода.
Это также гарантирует, что ваш код хранится в безопасном месте, вам не нужно беспокоиться о его потере, например, из-за неисправного жесткого диска на вашем компьютере. И когда вы хотите работать над этим, вы можете работать из любого места, потому что ваш код находится в сети, вы можете найти его где угодно.
Если вы решите, что пришло время показать свой код миру, это всего лишь вопрос отправки ссылки на ваш онлайн-репозиторий проектов. Это технология, к которой привыкли люди, поэтому, поскольку все это знают, легче понять, как ее скачать, публиковать сообщения, создавать разные версии и т. Д.
Это как общий стандарт ведения дел, обычная практика.
Некоторые ссылки, которые вы можете найти полезными для дальнейшего объяснения открытого источника:
Определение с открытым исходным кодом
Лицензия с открытым исходным кодом
GPL
Фонд свободного программного обеспечения
источник
Что касается системы контроля версий, я бы сказал, что вы должны придерживаться наиболее используемой и более свежей альтернативы: «Git». Mercurial менее популярен, а SVN старый, медленный и централизованный. С GIT вы сможете воспользоваться современной и популярной системой контроля версий. Там практически нечего терять.
Источники (относительно популярности DVCS):
/programming/tagged/git ~ 10k вопросов. /programming/tagged/mercurial ~ 3k вопросов.
http://www.googlefight.com/index.php?lang=en_GB&word1=git&word2=mercurial
11700000 результатов против
1580000 результатов
Что касается лицензии: возможно, вам стоит взглянуть на наиболее распространенные из них: GLP, MIT, LGPL, BSD и выбрать тот, который больше подходит вашему проекту.
источник