Wir starten ein neues Team von sehr kleiner Größe (sagen wir 2-5). Meine Frage ist: Welche Art der Versionskontrolle funktioniert am besten für diese Art von Teams, entweder zentralisiert oder verteilt.
Wir starten ein neues Team von sehr kleiner Größe (sagen wir 2-5). Meine Frage ist: Welche Art der Versionskontrolle funktioniert am besten für diese Art von Teams, entweder zentralisiert oder verteilt.
Antworten:
Verteilt auf den gesamten Weg, gibt es keinen Grund mehr für eine Zentralisierung, besonders wenn es um Teamentwicklung geht.
Ein weiteres Votum für Mercurial, keine Probleme beim Einrichten unter Windows und bitbucket.org hat kostenlose Repositorys (die privat sein können) mit unbegrenztem Speicherplatz.
Wenn Sie planen, an einem Open Source-Projekt zu arbeiten, scheinen Git und Github angemessener / populärer zu sein. Wenn Sie sich jedoch nicht an DVCS gewagt haben, empfehle ich Ihnen, mit Mercurial und diesem fantastischen Handbuch zu beginnen .
die, die Sie alle konsequent nutzen werden
[Ich persönlich mag Mercurial]
Wahrscheinlich ist die beste Antwort "mit was auch immer Sie sich wohlfühlen." Auch wenn ich an persönlichen Sachen arbeite, benutze ich Git. Es scheint eine ziemlich gute Arbeit zu leisten, sowohl die Skalierung als auch die Reduzierung, und meine begrenzten Erfahrungen mit Mercurial sind ungefähr gleich.
Ich denke, Sie sollten wählen, mit was Sie sich wohl fühlen. In einem kleinen Team werden Sie keine unterschiedlichen Codebäume haben (wie der Linux-Kernel), daher ist ein zentrales Repository in Ordnung. Sie können dieses Setup aber auch mit verteiltem VCS durchführen. Also würde ich mit Popularität und persönlicher Erfahrung gehen. Beliebt sind SVN, Git und Mercurial. Sie sollten entscheiden, welche davon am besten in Ihrem Team verwendet werden (Erfahrung, Tool-Support in Ihrer gewählten IDE usw.).
Es hängt wirklich davon ab, ob Ihre Entwickler eine Menge Code offline entwickeln oder nicht, sondern nur davon, ob Sie zwischen einem verteilten oder einem zentralisierten Repository wählen, da dies das erste ist, was Sie entscheiden sollten. Wenn Sie sich dann für einen zentralisierten Ansatz entscheiden, der besser als SVN funktioniert, ist alles, was Sie brauchen. Auf der anderen Seite, wenn Sie sich für einen verteilten Ansatz als für Git entscheiden, ist es auch unter Windows gut genug, da Sie jetzt Tortoise Git haben (die gleiche Schnittstelle, die auch für SVN existiert). Verlassen Sie sich auch nicht so sehr auf die IDE-Unterstützung, da Sie möglicherweise eine böse Überraschung erleben, wenn Sie diese verwenden, und Sie möglicherweise feststellen, dass Dateien, die nicht festgeschrieben werden sollten, von der IDE in Ihrem Namen festgeschrieben werden.
Fragen Sie Ihr Team, ob sich jemand darum kümmern möchte. Es ist viel besser, ein stabiles System und eine verantwortliche Person zu haben, als ein gutes System, wenn sich niemand darum kümmert und niemand in der Lage ist, es aus einem Backup wiederherzustellen.
Wenn es eine solche Person gibt - sie weiß bereits, was sie verwenden soll, akzeptieren Sie einfach ihre Entscheidung. Wenn nicht, holen Sie sich eine gehostete Lösung. Es wäre sehr dumm, GIT (eines der besten) zu versuchen, wenn alle Entwickler Shell / Linux nie berührt hätten.
Es hängt auch von der Anzahl der "nicht-technischen" Personen ab, die lesen / beitragen müssen. Stellen Sie einfach sicher, dass sie es verwenden können und Tools verfügbar sind.
SVN wird in Tools weitgehend unterstützt. Werkzeug ist der Schlüssel; Unterschiedliche Personen verfügen über unterschiedliche Fähigkeiten. Einige bevorzugen Befehlszeilen, andere IDE-basierte Tools und andere grafische Tools. Derzeit scheint SVN das am häufigsten unterstützte Tool zu sein.
Anders als das Mercurial oder Git.
Ich denke, dass es in kleinen Unternehmen Argumente dafür gibt, bestimmte Dinge zentralisieren zu lassen. (Denken Sie beispielsweise an Offsite-Backups. Wenn nur zwei Personen an einem Projekt arbeiten und sich im selben Gebäude befinden und ein Brand auftritt, reicht es möglicherweise nicht aus, dezentral auf zwei Computer zuzugreifen.)
Eine teilweise zentralisierte Lösung beschränkt Sie jedoch nicht auf ein zentralisiertes System. Sie können einfach mit etwas wie git oder mercurial auf einen externen Server pushen.