Welche Quellcodeverwaltung benötige ich für ein großes Projekt in einem durchschnittlichen Unternehmen? [geschlossen]

10

Ich weiß, dass Git großartig für Open Source-Projekte ist. Aber ich habe mich gefragt: Welches Quellcodeverwaltungssystem ist für ein Unternehmen mit 20 Programmierern, die an einem einjährigen Projekt arbeiten, wünschenswert? Nach allem, was ich gehört habe, benutzt Git das Ziehen. Wäre es nicht weniger wünschenswert, jemand anderen durchgehen zu müssen, um Ihre Änderungen im Hauptkoffer zu erhalten? Besonders wenn alle gleichzeitig arbeiten?

Das ist nur ein Beispiel, über das ich mich gewundert habe. Ich weiß, wie man SVN verwendet, aber selbst bei meinem letzten Job haben wir es nicht für unsere Projekte verwendet, da alles in PHP erledigt wurde und dies normalerweise eigenständige 1-wöchige Projekte waren. Ich hatte gerade SVN für meinen lokalen Code und musste ihn nicht mit anderen verwenden.

Was sind gute Quellcodeverwaltungen und warum ist sie dafür gut?

Martin Maat
quelle
13
Da Sie in PHP codieren, ist dies kein Grund, VCS nicht zu verwenden.
Chris
@ Chris: Wenn es nach mir ginge, würde es ein Repo im Netzwerk geben. Aber leider hat diese Firma es überhaupt nicht benutzt. Ich sagte nur, ich hätte keine "Team"
Werfen

Antworten:

29

Verwenden Sie alles, was Ihrem Team gefällt. Alle Versionskontrollsysteme machen ungefähr dasselbe auf ähnliche Weise. Es gibt keinen Grund, das Rad neu zu erfinden, weil "es vielleicht besser funktioniert". Wenn Ihr Team mit nichts zufrieden ist, wählen Sie die Option, die sich am einfachsten in die Standard-IDE Ihres Teams integrieren lässt.

EricBoersma
quelle
1
Das ist eine kluge und unparteiische Antwort - ich mag.
Murph
1
+1 Quellcodeverwaltungssysteme sind komplex genug. Alles, was Sie tun können, um dies zu minimieren, ist zum Besseren!
Dal
3
Es gibt Dinge, die verteilte VCSs viel besser machen als zentralisierte, und Sie können ein DVCS immer als zentralisiertes verwenden. Für eine langfristige allgemeine Verwendung würde ich Git oder Mercurial empfehlen. In solchen Situationen funktioniert jedes einigermaßen moderne VCS gut, und Subversion ist wahrscheinlich am einfachsten zu erlernen.
David Thornley
Verwenden Sie auf jeden Fall alles, was Ihr Team weiß oder gerne benutzt. (Es sei denn, es ist CVS oder RCS.) Wenn Sie zu etwas Neuem wechseln und jeder es lernen muss, rechnen Sie nach: 20 Personen * 3 Stunden Training * 40 USD / Stunde = 2.400 USD.
Barry Brown
Oder erwarten Sie, dass sie wissen, wie sie innerhalb von 5 Minuten ein neues VCS kompetent abholen können ...
Alternative
4

Mercurial ist ausgezeichnet, verteilt und kostenlos.

Steven A. Lowe
quelle
4

Ich denke, dass es davon abhängt, welchen Grad an Unterstützung Sie benötigen.

Ich benutze Git zu Hause für meine lustigen Projekte, wenn ein Problem mich Zeit kostet, aber ich kann die Zeit damit verbringen, zu lernen, was ich brauche, um es zu beheben.

Bei der Arbeit verwenden wir Perforce, da ein technischer Support rund um die Uhr unerlässlich ist. Wir haben ständig Leute, die in New York, Deutschland, Irland und Japan am Code arbeiten. Wenn es ein Problem gibt, müssen wir so schnell wie möglich eine Antwort erhalten. Nach meiner Erfahrung wissen die Mitarbeiter von Perforce wirklich, was sie tun, und sind offen für Vorschläge.

Mark Thalman
quelle
1
+1: Perforce ist teuer, aber Sie bekommen, wofür Sie bezahlen.
Niemand
3

Obwohl ich der Meinung bin, dass diese Frage weit gefasst ist und auf Unternehmensebene basierend auf Ihrem IT-Framework und Ihren Netzwerk- / Entwicklungsstrukturen beantwortet werden sollte, denke ich, dass der wichtigste Aspekt bei der Auswahl der Quell- / Versionskontrolle nicht die von Ihnen verwendete Anwendung ist. aber ob es verwendet wird, ist praktisch strukturiert und durchgesetzt.

Struktur und Durchsetzung der Nutzung sind die wichtigsten Aspekte der Versionskontrolle.

Planen Sie voraus und holen Sie alle an Bord. Nutzung erzwingen. Nicht nur mit Programmierern, sondern mit allem, was mit Projekten zu tun hat (Dokumente, Bilder usw.).

SVN ist eine gute Anwendung und kann in viele Add-Ons (einschließlich Fehler- / Aufgabenverfolgung) integriert werden, benötigt keinen separaten Server und ist kostenlos!

Es gibt auch andere gute Versionsverwaltungsanwendungen, wie @EricBoersma sagte:

Verwenden Sie alles, was Ihrem Team gefällt.

Stellen Sie einfach Prozesse und Best Practices bereit und kaufen Sie von denen ab, die dies durchsetzen können.

Paige Watson
quelle
3

Sie haben einige große Missverständnisse darüber, wie Git funktioniert. Das Senden einer Pull-Anfrage an einen Gatekeeper ist nur eine Möglichkeit, dies zu tun. Es gibt viele andere Möglichkeiten, es einzurichten, einschließlich ziemlich genau wie bei svn. Dies ist genau die Anzahl der Benutzer, die anfangen, bevor sie es sich bequem machen, um sie anzupassen. Mit einem DVCS wie git haben Sie genügend Optionen, um Ihre Quellcodeverwaltung um Ihren Workflow herum zu strukturieren und nicht umgekehrt.

Karl Bielefeldt
quelle
2

Früher war ich der Ansicht, dass die Quellcodeverwaltung nur ein Werkzeug ist und dass jedes der Produkte mehr oder weniger dasselbe tut. Und dann hat der Punkt dieser verteilten Versionskontrollsysteme bei mir geklickt.

Mit der verteilten Versionskontrolle können Sie über mehr als ein zentrales Repository verfügen. Stellen Sie sich Codeänderungen vor, die vom lokalen Entwickler-Repository zum Feature-Repository, zum Produkt-Repository, zum QA-Repository und schließlich zum freigegebenen Repository migriert werden.

Persönlich verwende ich ein kommerzielles Produkt namens Kiln, das auf Hg basiert, aber das Hauptmerkmal ist die verteilte Versionskontrolle . Es revolutioniert den Fluss von neuem Code vom Entwickler in ein veröffentlichtes Produkt.

Michael Shaw
quelle
Das sind viele Repositories für ein Projekt. Was für ein Albtraum für die Verschmelzung.
JBRWilkinson
3
Ich würde Ihnen zustimmen, wenn es mit SubVersion oder CVS verschmelzen würde. Der Grund, warum diese verteilten Versionskontrollprodukte funktionieren, liegt darin, dass sie das Zusammenführen einfach und weitgehend konfliktfrei machen.
Michael Shaw
2

Sie wissen, wie man SVN verwendet, und verwenden dann SVN - migrieren Sie nur zu einem DVCS, wenn sie etwas enthalten, das Sie benötigen.

Was wirklich wichtig ist, ist, dass Sie etwas verwenden, das Sie gerne verwenden, das einfach zu verwenden ist. Martin Fowler hat eine kurze und einfache Umfrage zu VCS durchgeführt. Die Ergebnisse sind sehr interessant.

gbjbaanb
quelle
2

Ich habe git bei meinem letzten Job eingerichtet, bei dem wir an einem ähnlich großen Projekt gearbeitet haben (15 Entwickler, 18-monatiges Projekt), und es hat gut funktioniert.

Wir haben es so eingerichtet:

Wir hatten einen Git-Server, der unser zentraler autorisierender Git-Server war. Die Teammitglieder wurden davon abgehalten, direkt voneinander zu ziehen, sodass alle Änderungen auf den zentralen Server übertragen wurden.

Wir haben den Hauptzweig als Hauptproduktionszweig mit Tags für jede Version verwendet. Jedes Modul im Projekt war ein Git-Submodul. Jedes Submodul hatte Zweige für jedes Teammitglied. Jedem Submodul wurde ein Betreuer (normalerweise der ursprüngliche Autor) zugewiesen, der für die Bearbeitung von Pull-Anfragen von anderen Teammitgliedern und für die Ausgabe von Pull-Anfragen an den Teamleiter verantwortlich war, der das Submodul im Hauptzweig aktualisieren würde, wenn es dazu bereit war in die Produktionsbranche integriert werden. Wir haben Tags verwendet, um Commits zu identifizieren, die eine bestimmte Funktion abgeschlossen haben oder einer Veröffentlichung entsprachen.

Cercerilla
quelle
0

Ich würde Team Foundation System (TFS) von Microsoft zumindest einen guten Blick geben. Ich entnehme Ihren Kommentaren, dass Sie kein Microsoft-Shop sind. Meines Wissens nach gibt es jedoch ein ziemlich robustes Eclipse-Plug-In, wenn Sie diese IDE für die Entwicklung verwenden.

Die Zusammenführungs- und Verzweigungsmechanismen funktionieren genauso gut wie alle anderen Versionsverwaltungssysteme (meiner Erfahrung nach besser als svn und ungefähr so ​​gut wie notgedrungen), aber was wirklich glänzt, sind die Aspekte der Projektverfolgung und des Projektmanagements des Produkts und die integrierte Automatisierung für Builds und Bereitstellungen.

Wenn Sie eine webbasierte Anwendung schreiben, sehen Sie sich das automatisierte UI-Testframework und das Lasttest-Framework an, das Sie in relativ kurzer Zeit erstellen und konfigurieren können. Eine elegante Funktion: Simulation mobiler Browser, die in die Lasttests integriert sind.

aceinthehole
quelle
Sprechen als jemand, der TFS von Eclipse verwendet hat. Nein, es ist schrecklich. (Ich kann auf Details eingehen), würde ich es definitiv nicht als robust bezeichnen. TFS ist großartig, aber die Eclipse-Erweiterung ist schockierend schlecht (wo AnhkSVN für Visual Studio großartig ist)
Lyndon White
Ich habe aus vielen Gründen sehr, sehr schlechte Erfahrungen mit TFS gemacht, obwohl ich in einer Microsoft-Umgebung arbeite und .Net- und Ms-Tools im Allgemeinen mag. Ich werde TFS niemandem empfehlen.
Nach dem