Es wurde vorgeschlagen, mein Projekt aufgrund seiner Größe und meiner mangelnden Fähigkeiten als Open Source-Version zu verwenden. Daher habe ich Google Code überprüft und mit der Erstellung eines Projekts begonnen. Jetzt werde ich gefragt, ob das Projekt Git, Mercurial oder Subversion enthalten soll Code-Hosting.
Ich weiß nicht einmal, was Code-Hosting ist, und eine Suche hat mich nur mehr mit den Debatten zwischen all diesen Dingen verwechselt. Dies wird noch schlimmer, da Google Code mich fragt, welche Art von Lizenz ich möchte.
Ich glaube, ich verstehe nicht ganz, was Open Source wirklich bedeutet. Kann jemand so ziemlich einen schnellen Spickzettel für Laien erstellen, was das alles ist? Sehr geschätzt.
Bearbeiten Es gab viele großartige Antworten auf diese drei Versionen des Code-Hostings, aber ich glaube, ich konnte die eigentliche Frage nicht kommunizieren: Grundsätzlich habe ich keine Ahnung, wie dieses Open-Source-Zeug funktioniert, warum sollte ich den Code irgendwo so hosten ? Und würde das bedeuten, dass ich die Site von meinem aktuellen Hosting entfernen muss, oder ist dies eine ganz andere Art von Hosting? Was passiert, wenn ich meine Website Open Source mache, welche Rechte ich habe, welche Rechte ich verschenke. Wie funktioniert es, kommen die Leute einfach und werfen mir kostenlos Code zu? Vielleicht sind das dumme Fragen, und wenn das der Fall ist, dann brauche ich wohl dumme Antworten. Ich habe ernsthaft keine Ahnung, was Open Source ist, außer dem Konzept, Code zu teilen ...
Antworten:
Ein wichtiger Punkt bei der Entwicklung von Open Source-Software ist die gemeinsame Nutzung des Quellcodes. Es gibt verschiedene Möglichkeiten, dies zu tun, z. B. Tar / Zip-Dateien auf einem Web- oder FTP-Server abzulegen. Dienste wie Google Code (oder sourceforge.net, gitorious.org, bitbucket.org und viele andere) machen es überflüssig, zu diesem Zweck eigene Server zu betreiben.
Diese Dienste sind keine universellen Webhosts, sondern führen sehr spezialisierte Dienste aus. Sie sind nicht als Homepage eines Produkts gedacht, sondern eher als Entwickler-Dashboard.
Mit Google Code erhalten Sie
Natürlich können Sie diese Software auf einem normalen Webserver einrichten (die Versionskontrolle mag schwierig sein, aber das hängt zu sehr von Details ab), aber der Hauptvorteil der Verwendung eines Entwicklungshosters besteht darin, dass Sie sich nicht darum kümmern müssen dieser Systeme für Ihre eigenen. Der Hauptnachteil ist, dass Sie keine Kontrolle darüber haben, welche Software auf dem Server verwendet wird. Sie müssen mit dem leben, was auf diesem Host verfügbar ist. Sie müssen auch überlegen, was passiert, wenn der Dienst aus dem Geschäft gerät (ok, Google schlägt nie fehl) und wenn Sie die Daten vom aktuellen Host auf einen anderen oder Ihren eigenen Server übertragen können (denken Sie an Backups).
Dies ist eine schwierige Frage, da sie vom Recht des Landes abhängt, in dem Sie leben.
Dies hängt von der Lizenz ab, die Sie für das Produkt vergeben. Es kann von proprietärem Open Source (denken Sie an PGP) ausgehen, wo der Benutzer im Grunde nichts mit dem Code anfangen kann, am anderen Ende der Skala ist gemeinfrei, wo jeder tun kann, was er will.
Dies ist sehr unwahrscheinlich, da Ihr Produkt genügend Popularität benötigt, um andere Entwickler anzulocken.
Dies sind drei verschiedene Versionskontrollsysteme, bei denen Subversion zentralisiert ist, während Git und Mercurial verteilt sind.
Es gibt religiöse Kriege, über die man Gebrauch machen kann, aber der Hauptpunkt ist, einen zu benutzen. Weitere Informationen finden Sie unter http://martinfowler.com/bliki/VersionControlTools.html .
Wann wählen Sie Subversion:
¹ Es gibt eine Sperrenerweiterung für Quecksilber, aber ich habe keine Erfahrung damit und kann nicht sagen, ob sie verwendbar ist.
Wenn Sie die früheren Funktionen nicht benötigen, ist es besser, Mercurial oder Git zu verwenden. Beide haben gegenüber Subversion folgende Vorteile:
kryptografisch gesicherte Revisionsnummern, was bedeutet, dass selbst wenn jemand den Server einbricht, er keinen Code einrichten kann, ohne den Revisionsverlauf zu ändern
quelle
Code-Hosting ist genau das - irgendwo, wo Sie Ihren Code hosten (oder aufbewahren) können.
Git, Mercurial und Subversion sind alle Tools zur Quellcodeverwaltung, mit denen Sie Ihren Codeverlauf verwalten. Git und Mercurial sind verteilte Systeme, während Subversion ein traditionelleres serverbasiertes Setup ist.
Schauen Sie sich Wikipedia oder ähnliches an und finden Sie heraus, was Sie am meisten anspricht. Persönlich verwenden wir Mercurial und es funktioniert sehr gut für uns.
quelle
Joel Spolsky hat ein großartiges Tutorial über Hg (Mercurial) geschrieben, und ich glaube, der Einführungsabschnitt behandelt Subversion, einschließlich der Gründe, warum Sie auf Mercurial upgraden. Lesen Sie das durch, es hat mir wirklich geholfen, viel über Mercurial und DVCS im Allgemeinen zu verstehen.
Oh, und wenn Sie bereit sind zu hosten, können Sie Google Code, BitBucket , Github (mit Hilfe dieser hervorragenden Erweiterung ) oder andere verwenden.
quelle
Ich verwende Git, das ich aufgrund der verteilten Steuerung einfacher zu verwalten finde. Hg ist auch für diesen speziellen Zweck gut, aber ich kann Ihnen keinen Rat geben, da ich es nie benutzt habe. SVN ist ein zentrales System und daher weniger praktisch, könnte aber etwas einfacher sein.
Open Source bedeutet im Grunde, dass Sie jedem die Möglichkeit geben, Ihre Arbeit zu nutzen und darauf aufzubauen. Sie können die Grenzen dieser Verwendung festlegen: GPL bedeutet, dass der Benutzer seine hinzugefügte Arbeit Open Source machen muss, LGPL bedeutet, dass er dies beispielsweise nicht tut.
quelle
Subversion wäre die einfachste Option, da es sich um ein VCS handelt. Git und Mercurial sind DVCS-Systeme. Sie sind moderner und leistungsfähiger, aber schwieriger zu verstehen. Die Verwendung eines Frontends wie TortoiseSVN oder TortoiseHG (für Mercurial aka HG) hilft ebenfalls sehr.
Wenn Ihre Software ein eigenständiges Programm ist, können Sie die GPL verwenden oder sie wirklich mit einer BSD-Lizenz öffnen. Wenn es sich bei Ihrem Projekt um eine Bibliothek handelt, die von einer anderen Person mit LGPL oder erneut BSD verknüpft wird. Verwenden Sie jedoch keine GPL.
[bearbeiten]
Was Ihre ursprüngliche Motivation für Open Sourcing der Software angeht: Leider bedeutet das Erstellen von Open Source-Software nicht, dass Sie einen Zustrom talentierter freier Arbeitskräfte erhalten. Es gibt Hunderttausende von Open Source-Projekten. Nur ein kleiner Prozentsatz von ihnen hat aktive Mitglieder. Die Gründe, die diese Projekte erfolgreich machen oder nicht, sind so vielfältig wie die Gründe, warum Unternehmen erfolgreich sind und scheitern. Wenn Sie ein guter Programmierer werden und gute Software produzieren möchten, müssen Sie viel Zeit damit verbringen, auf Websites wie StackOverflow zu lernen, Code zu schreiben und mit anderen Menschen zu kommunizieren.
quelle
Es scheint mir , dass die meisten Menschen hier die beantworten wie , niemand die wirklich beantwortet hat , warum in Ihrer Frage.
Eines der ersten Open-Source-Projekte, das ich erlebt habe, war das fabelhafte Fractint- Projekt, das von der Stone Soup Group entwickelt wurde , die von der alten Steinsuppen-Volksgeschichte inspiriert war .
Für mich verkörpert dies den Geist von Open Source besser als jeder Stallman-Rant oder sogar das ursprüngliche GNU-Manifest . Es ist ein Beweis für die Stärke dieser Gemeinschaft, dass Fractint noch 23 Jahre nach dem Anzünden des Feuers unter diesem speziellen Kochtopf entwickelt wird .
quelle
Open Source bedeutet, dass jeder Ihren Code lesen, kopieren, ändern und verteilen kann. Sie sollten die Auswirkungen davon genau verstehen, bevor Sie fortfahren. Vielleicht sollten Sie ein Buch lesen oder zumindest die Wikipedia-Artikel zum Thema und / oder http://opensource.org/ durchsuchen, bis Sie das Gefühl haben, das Konzept zu verstehen.
(Das O'Reilly-Buch Open Sources http://oreilly.com/openbook/opensources/book/index.html ist hilfreich, aber möglicherweise nicht genau das, wonach Sie suchen.)
Welches Quellcode-Kontrollsystem verwendet werden soll, ist völlig zweitrangig. Sie können Ihren Code kopieren / auf einer Webseite einfügen und fertig sein. Trotzdem ist die Versionskontrolle wichtig und ein gutes Mittel, um die Messlatte für Entwickler zu senken. Alle von Google Code angebotenen Optionen sind in Ordnung. Entscheiden Sie sich für die Frage, die Ihnen gefällt, oder verschieben Sie die Frage, bis Sie Ihren Mitwirkenden fragen können, welche sie verwenden möchten.
quelle
Wenn Sie Ihren Code oder Ihr Projekt als Open Source-Version erstellen, kann jeder ihn nach seinen Wünschen ändern. Dies hängt davon ab, welche Art von Lizenz Sie verwenden. Open Source bedeutet jedoch im Allgemeinen, dass der Quellcode jedem zur Verfügung steht, um ihn herunterzuladen, zu ändern und nach Belieben zu verwenden.
Auf jeden Fall muss dieser Code für andere Personen erreichbar sein, um ihn zu erhalten.
Der beste Weg, Ihren Code in ein öffentliches Online-Repository wie GitHub zu bringen, ist der beste Weg, dies zu tun. Erstens ist Ihr Code jetzt für die Öffentlichkeit zugänglich. Da solche Dienste auch Versionskontrolle bieten, ist Ihr Code projektorganisiert. Sie können Änderungen verfolgen, die Sie und andere Personen vornehmen. Da Sie damit das Projekt auch in andere Projekte verzweigen (trennen) können, können Sie alle unterschiedlichen Versionen verfolgen, die andere Personen von Ihrem Code erstellt haben.
Dies stellt auch sicher, dass Ihr Code an einem sicheren Ort gespeichert wird. Sie müssen sich keine Sorgen machen, dass er beispielsweise durch eine fehlerhafte Festplatte auf Ihrem PC verloren geht. Und wenn Sie daran arbeiten möchten, können Sie von jedem Ort aus arbeiten, da Ihr Code online ist und Sie ihn überall finden können.
Wenn Sie dann entscheiden, dass es Zeit ist, Ihren Code der Welt zu präsentieren, müssen Sie nur den Link an Ihr Online-Projekt-Repository senden. Es ist eine Technologie, an die sich die Leute gewöhnen. Da jeder sie kennt, ist es einfacher zu verstehen, wie man sie herunterlädt, Nachrichten veröffentlicht, verschiedene Versionen erstellt usw.
Es ist wie ein üblicher Standard, Dinge zu tun, übliche Praxis.
Einige Links, die Sie möglicherweise nützlich finden, um Open Source näher zu erläutern:
Open Source Definition
Open Source Lizenz
GPL
Freie Software Foundation
quelle
Über das Versionskontrollsystem würde ich sagen, dass Sie sich an die am häufigsten verwendete und neuere Alternative halten sollten: Das heißt: "Git". Mercurial ist weniger beliebt und SVN ist alt, langsam und zentralisiert. Mit GIT profitieren Sie von einem modernen und beliebten Versionskontrollsystem. Es gibt praktisch nichts zu verlieren.
Quellen (in Bezug auf die Popularität von DVCS):
/programming/tagged/git ~ 10k Fragen /programming/tagged/mercurial ~ 3k Fragen
http://www.googlefight.com/index.php?lang=de_DE&word1=git&word2=mercurial
11700000 Ergebnisse vs.
1580000 Ergebnisse
In Bezug auf die Lizenz: Vielleicht sollten Sie sich die gängigsten ansehen: GLP, MIT, LGPL, BSD und diejenige auswählen, die besser zu Ihrem Projekt passt.
quelle