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?
quelle
Antworten:
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.
quelle
Mercurial ist ausgezeichnet, verteilt und kostenlos.
quelle
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.
quelle
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:
Stellen Sie einfach Prozesse und Best Practices bereit und kaufen Sie von denen ab, die dies durchsetzen können.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle