Bestes Versionskontrollsystem für die Wartung verschiedener Versionen [geschlossen]

8

Wir müssen in der Lage sein, gleichzeitig verschiedene Versionen unseres Systems zu verwalten. Ich gehe davon aus, dass dies am besten mit Verzweigungen geschieht. Wir verwenden derzeit TFS2008 für Quellcodeverwaltung, Arbeitsaufgaben und automatische Builds.

Was ist die beste Versionskontrolllösung für diese Aufgabe? Unsere Organisation ist dabei, mit TFS2010 zu verschmelzen. Wird TFS2010 uns die Funktionalität geben, die wir benötigen, um eine Reihe von Zweigen pro Systemversion einfach verwalten zu können? Wir müssen in der Lage sein, jede Version isoliert von den anderen zu halten, sodass wir für jede Version testen und bereitstellen können.

Unser Entwicklerteam besteht aus 5 .net-Entwicklern und zwei Flash-Entwicklern.

Ich habe viel von GIT gehört. Sollten wir die Verwendung von GIT anstelle von TFS zur Quellcodeverwaltung in Erwägung ziehen? Ist es möglich, TFS2010 zusammen mit GIT zu verwenden? Hat jemand ähnliche Setups, die gut funktionieren?

Irgendwelche Suggestionen werden geschätzt!

Danke,

Kjetil.

    
dalecooper 10.05.2010, 12:02
quelle

9 Antworten

9

Der Hauptgrund, warum Sie Git (oder Mercurial) in Betracht ziehen sollten, ist:

  • seine Verteilte Natur .
  • seine Leichtigkeit der Zusammenführung (eine Konsequenz, tatsächlich, verteilt zu werden)

Wenn sich Ihr Team an einer Site befindet und Ihr Entwicklungsprozess linear genug ist (einfacher Merge-Workflow), reicht ein zentralisiertes VCS.

Von da an hat TFS2010 einige interessante Entwicklungen gemacht, insbesondere auf seinen Verzweigungsmodell und seine anderen integrierten Funktionen (Hierarchie von Arbeitselementen, Build mit" Gated Check-in "und basierend auf einer" Workflow Foundation ") macht es zu einem besseren Kandidaten als ein Werkzeug begrenzt auf den VCS-Aspekt.

    
VonC 10.05.2010, 12:23
quelle
9

Mercurial wird auch die Arbeit machen.

Hier ist ein exzellentes Tutorial .

    
Gordon 10.05.2010 12:05
quelle
5

TFS 2010 - Hände runter. Nicht, um ein großartiges Versionskontrollsystem zu sein, aber wegen des ganzen Rests tut es das. GIT wird Sie offen lassen, um das Workitem-Tracking und die fortlaufende Integration erneut auszuwählen. Halten Sie die Anzahl der Lieferanten (Technologien niedrig ist ein Kern für eine bessere Verwaltung.

    
TomTom 10.05.2010 12:05
quelle
1

Heute gibt es hauptsächlich zwei Arten von Versionskontrollsystemen (VCS), das sogenannte verteilte VCS und die zentralen Repository-Systeme.

Die beliebtesten "verteilten" VCS sind heute git und mercurial. Die beliebtesten zentralen Repository-Systeme sind Subversion und SourceSafe von Microsoft. Die Ссылка Einführung erläutert die Überlegenheit von "verteilten" VCS über das zentrale System.

Bei einem verteilten VCS hat jeder Entwickler sein eigenes lokales Repository. Es wird im Allgemeinen mit einem gemeinsamen zentralen Repository verwendet, das die offizielle Version enthält. Aber das ist nur eine Repository-Organisation. "Verteilte" VCS sind gegenüber rein zentralisierten VCS in ihrer Fähigkeit, das Zusammenführen zu verwalten, überlegen.

    
chmike 10.05.2010 12:30
quelle
1

Wenn Sie nach einem DVCS suchen, ist Git oder Mercurial (Hg) der richtige Weg. Die Entscheidung zwischen Git und Hg ist jedoch eine schwierigere Aufgabe.

Verwenden Sie hauptsächlich Windows? Wenn ja, ist Hg wahrscheinlich dein Freund. In Kombination mit TortoiseHg ist es ein sehr gutes, vielseitiges Tool, das im Vergleich zu Git einfach zu benutzen ist. Es ist ein bisschen weniger komplex, aber behandelt die meisten Dinge, die Git verarbeiten kann, auch wenn nicht so glatt wie glatt.

Wenn Sie Linux oder eine Unix-Shell verwenden, wäre Git meine Wahl. Ich persönlich benutze Git in Windows mit dem Git Shell-Dienstprogramm. (Es funktioniert auch gut in Cygwin, wenn Sie bevorzugen) Ich habe festgestellt, dass Git meine Projekte viel effektiver behandelt als Mercurial. Wenn Sie jedoch mit einer Befehlszeile nicht vertraut sind, habe ich festgestellt, dass TortoiseGit etwas komplizierter (und klobiger) als TortoiseHg ist. Aber weil ich mit Bash vertraut bin, ist Git definitiv meine Vorliebe. Es ist einfach schneller, schlanker und vielseitiger als Hg, in meiner Zeit mit beiden. Es ist einfach ein bisschen komplizierter, so dass die Lernkurve höher ist und schon früh kann es zu Fehlern kommen, wie ich es für kurze Zeit war.

Nach meiner Einschätzung sind die wirklichen Fragen:

Windows (Hg) oder Unix (Git)

und

Grafisch (TortoiseHg) oder Befehlszeile (Git-Shell)

    
Matt D 13.05.2010 16:50
quelle
0

Alle Anforderungen, die Sie benötigen, sind in TFS 2010 enthalten. Verzweigen und Verzweigungen isoliert halten.

TFS ist mehr als nur ein Versionskontrollsystem. Es ist auch ein Work / Bug-Kontrollsystem und verfügt über Tools zum integrierten Build. Wenn Sie diese benötigen und Sie bereits eine Lizenz für TFS 2010 haben, verschwenden Sie keine Zeit auf anderen Systemen.

OK, TFS wird nicht verteilt, aber bei der Arbeit mag ich, dass TFS nicht verteilt wird. Sobald ich Sachen einchecke (in meinem persönlichen Zweig), wird es auf dem täglichen Backup stehen und steht anderen zur Verfügung. (Für mein Zuhause / Hobby / persönliche Sachen benutze ich mercurial).

Für alle anderen Systeme gibt es Tools, die Ihnen das Build und Bugtracking zur Verfügung stellen, so dass es für andere Tools kein Problem darstellt, dass sie nicht verfügbar sind. Es braucht nur Zeit, um diejenigen auszuwählen, die Ihren Anforderungen entsprechen. p>     

GvS 10.05.2010 14:00
quelle
0

Ich liebe Git und es wird in so viele andere Anwendungen integriert, wie Eclipse, Trac. Wer muss für ein VCS bezahlen, wenn Sie Git haben.

Die Tatsache, dass die Linux-Kernel-Entwicklung verwendet Git, ich weiß, weil Linus so gesagt :), die kein kleines Projekt ist, spricht für sich.

    
Peter van der Does 10.05.2010 14:05
quelle
0

Subversion !!!

Ich mag Subversion, + TortiseSVN + VisualSVN

Ссылка
Ссылка
Ссылка

Subversion und Tortise sind kostenlos !, und VisualSVN kostet nur $ 50 pro Lizenz (aber Sie müssen nicht Visual-SVN verwenden, es ist nur die VS-Integration .... für mich nicht notwendig.)

Hier finden Sie ein Tutorial und eine Installationsanleitung für alle drei Produkte.
Ссылка

und ein anderes ...
Ссылка

    
Albert 10.05.2010 13:45
quelle
0

Ein gutes Revisionskontrollsystem hilft mir, wenn ich arbeite in einer verstreuten Art und Weise. Nicht weil ich gerne verstreut bin, sondern weil alltägliche Forderungen haben eine Art zu streuen, wie man arbeitet. Die Streuung wird verstärkt, wenn eine Gruppe parallel arbeitet auf einem anständigen Projekt.

Person A arbeitet an Feature 1. Person B arbeitet an Feature 2. Person C arbeitet daran, gemeldete Fehler in der veröffentlichten Version zu beheben.

Während A seine Arbeit macht, beobachtet er einen Fehler im Code und behebt ihn auf der Stelle, um es nicht zu übersehen, und geht weiter. Person C macht 3 Korrekturen.

A, B und C haben Chat und B fühlt, dass er die Fehlerbehebungen benötigt, die C getan hat sofort, sowie die Bugfix A hat getan, aber nicht die A-Funktion. C möchte A's Bug beheben. A möchte den Fehler von C beheben. Und so weiter.

Boss entscheidet, dass wir eine Version mit Feature 1, eine andere Version mit Feature 2, und eine Version mit beiden Funktionen, und eine Version mit keiner veröffentlicht und gepflegt.

Wie gut unterstützt Sie das Tool bei diesen Aktivitäten? Wie sehr behindert das Tool Sie bei diesen Aktivitäten?

Ich bin wirklich glücklich mit 'Darcs'.

Ich habe viele Versionskontrollsysteme ausprobiert. Ich bin nicht besser gekommen.

Es ist einfach, es ist streng korrekt.

Weil es streng ist, ist es zuverlässig und vorhersehbar. Weil es einfach ist, ist es hilfreich und stört dich nicht.

Meine zweite Wahl wäre git.

Git ist ziemlich gut, aber nicht so streng, es erzwingt einen Befehl an dich manchmal, wenn Ordnung keine Rolle spielt. Git ist besser bekannt ein besserer Lebenslauf bullet.

Ссылка

    
pbernatchez 12.05.2010 01:00
quelle

Tags und Links