Bei der Arbeit verwenden wir SVN, jedoch nur im Namen. Wir verzweigen oder verschmelzen nicht. Wir behalten zwei Kopien des Repositorys bei, eine davon dient als "Tag" -Zweig, der bei der Bereitstellung kopiert und für Fehlerbehebungen und sofortige Funktionen wie "Das muss so schnell wie möglich live gehen" aufbewahrt wird. Wir müssen daran denken, Änderungen, die in einer Kopie vorgenommen wurden, in die andere Kopie (den "Stamm") zu kopieren. Wir haben ein Dutzend Projekte in einem einzelnen Ordner im Repository, anstatt sie aufzuteilen. Kurz gesagt, das Einzige, wofür wir SVN verwenden, ist, dass wir Commit durchführen können. Alles andere wird manuell erledigt.
Ich habe Mercurial evaluiert. Ich habe in der Vergangenheit Git verwendet (ich bin der einzige im Team, der DVCS verwendet hat), und ich lerne Mercurial schnell kennen. Ich diskutiere darüber, Mercurial dem Rest des Teams vorzustellen, um die Dinge "besser" zu machen, weil das Verzweigen ein Kinderspiel ist, das Zusammenführen viel einfacher ist und wir die Dinge lokal nach Herzenslust festschreiben und nur an die Zentrale bringen können Zweig, wenn sie fertig sind. Wir würden alle Vorteile von SVN nutzen (und wir bekommen im Moment sowieso nicht viele Vorteile, da niemand SVN wirklich versteht) und für neue Funktionen müssen wir nicht Tonnen von nicht versionierten Dateien haben, damit wir ein Rollback durchführen müssen Wir haben es verbockt. Der Workflow scheint ein bisschen einfacher zu sein - wir müssen uns nur daran erinnern, dass "Commit" lokal und "Push" wie das Commit von SVN ist.
Ist das ein guter Ansatz? Denken Sie daran, dass das Team sehr flexibel ist und alles tun wird, um unsere Arbeitsqualität zu verbessern und unsere Arbeit zu vereinfachen. Der CIO hat mich sogar gefragt, als ich erwähnte, dass wir SVN nicht nutzen, um sein Potenzial auszuschöpfen Gibt es etwas Besseres, das wir verwenden können? " Er ist also auch dabei.
quelle
I will probably not take DVCS very seriously until I end up on a large development team
Oder bis Sie in einem verteilten Team landen. Wir sind ein kleines Team (5 Personen), das an 3 Standorten arbeitet (und manchmal auch an 5, wenn wir keine Lust haben, aus dem Bett zu steigen), und der Wechsel von SVN zu HG war ein willkommener ...Antworten:
Ja.
Wenn Sie "SVN" in Ihrem OP durch "Perforce" ersetzen, haben Sie so ziemlich die Situation, in der ich mich befand, als ich meinen aktuellen Job anfing, bis hin zum manuellen Kopieren von Änderungen. Zwei Jahre später sind wir bei Mercurial und alle sind sich einig, dass es eine große Veränderung war.
Wir haben die Möglichkeit, pro Support-Fall zu verzweigen und zusammenzuführen , was für die Qualitätssicherung unglaublich nützlich ist, und die Möglichkeit, eine beliebige Anzahl von Wegwerfzweigen und Repositorys zu erstellen, wann immer wir dies für richtig halten. Diese können wir dann auf unserem CI-Server erstellen und überprüfen und dann bereitstellen zu einer Cloud-Testumgebung und überprüfen Sie die Funktionalität. Dies hat im Hinblick auf die Sicherheit einen enormen Vorteil: Wenn wir eine Live-Bereitstellung durchführen, sind wir fast zu 100% sicher, dass sie funktioniert (Probleme ohne Umgebung / Datenbank, die offensichtlich nicht im Geltungsbereich des VCS liegen).
Was wir durch den Wechsel zu Quecksilber gewonnen haben, ist im Grunde genommen der Raum zum Atmen. Wir müssen uns nicht mehr um die Kosten einer Filiale oder die schrecklichen Zusammenführungssitzungen kümmern, die unweigerlich folgten. Alles ist viel einfacher. Wir verwenden FogBugz auch ziemlich häufig, daher ist die Anbindung an Kiln (das gehostete Quecksilberprodukt) sehr hilfreich.
Der Kommentar zur hginit- Site ist auch genau richtig , da er einen Versionskontrollworkflow beschreibt, der tatsächlich funktioniert (vorausgesetzt, Sie passen ihn an den speziellen QS-Workflow Ihres Unternehmens an).
Der einzige mögliche Fehler beim Verschieben von Versionskontrollen besteht darin, dass Sie jemanden benötigen, der wirklich eine treibende Kraft für die Änderung ist, der sich gerne mit dem Thema befasst und die Werkzeuge so gut wie möglich einsetzt, wie Sie es zu wollen scheinen tun.
Ich bin nicht einverstanden mit den Kommentaren zur Teamgröße und Teamverteilung in Bezug auf die Verwendung von DCVS. Es geht wirklich um die CODE-Verteilung. Wenn mehrere Entwicklungszyklen gleichzeitig ablaufen, entweder Supportfälle auf einem älteren System oder eine Reihe von Funktionen oder sogar neue Systeme (was Sie auch tun), profitieren Sie von der Verwendung eines DVCS.
quelle
Ein anderes Tool wird Ihr Problem wahrscheinlich nicht lösen. Ich würde sagen, Sie sollten diesen Artikel lesen. Ich fand ihn am hilfreichsten:
http://thedailywtf.com/Articles/Source-Control-Done-Right.aspx
Ich denke, der Hauptpunkt des Artikels ist hier zusammengefasst, aber bitte lesen Sie es:
quelle
Nein. Technologie löst selten solche Probleme.
Mercurial ist komplexer als Subversion (ja, Verzweigen und Zusammenführen ist besser und vielleicht einfacher, aber das Modell von Subversion ist viel einfacher als das von Mercurial). Wenn Sie Subversion auf eine solche Art und Weise verwenden, könnten Sie Mercurial verwenden:
c) und d) klingen nach den wahrscheinlichsten Ergebnissen. Schreiben Sie auf, warum Sie glauben, in a) oder b) zu enden.
quelle
Ich kann nicht darüber sprechen, wie große Teams arbeiten, aber für kleine Teams sind viele dieser großen SVN-Probleme keine wirklichen SVN-Probleme ... Sie sind Entwicklungsprobleme. Wenn Sie sich nicht an moderne Entwicklungsstandards halten (vor allem an die kontinuierliche Integration), wird die Versionierung genau zu dem Chaos, das Sie beschreiben ... Stellen Sie vor dem Wechsel zu einem neuen System sicher, dass Sie eine echte Ursachenanalyse für Ihr Problem durchführen ...
quelle
Nein. Werkzeuge ersetzen nicht die Methodik.
Wenn Sie Subversion nicht als SCM verwenden , können Sie Mercurial auch nicht verwenden (und es wird höchstwahrscheinlich passieren)
quelle
SVN kann das tun, wofür Sie es brauchen, und es besteht keine Notwendigkeit, die Pferde mitten im Strom zu wechseln, um eine zweifelhafte Auszahlung zu erhalten.
Was auch immer Sie tun, Sie müssen ein Vertrauensproblem überwinden. Jemand muss in der Lage sein, jeden davon zu überzeugen, seinen Workflow zu ändern. Dies ist selbst unter den besten Umständen nicht einfach, selbst wenn Sie Logik und Fakten auf Ihrer Seite haben. Es ist eines der schwierigsten Dinge in einer Organisation. Wenn Sie es verpfuschen oder es wird hart, verlieren Sie das Vertrauen und es wird sehr schwer sein, dieses Vertrauen wiederzugewinnen.
Es gibt ein paar Dinge, von denen ich weiß, dass die Leute es erfolgreich versucht haben. Vielleicht arbeitet einer von ihnen für Ihr Team:
Bringen Sie einen "Coach" mit, um eine Reihe von Workshops für das Team anzubieten. Dies muss wahrscheinlich eine externe Person sein (ironischerweise ist es für viele Teams oft einfacher, einem Außenstehenden zu vertrauen, als jemandem im Team zu vertrauen). Es muss jemand sein, der sich mit ihren Dingen bestens auskennt und diese Fähigkeiten effektiv Menschen auf allen Ebenen des Verstehens beibringen und einen pragmatischen Plan für die Einführung des neuen VCS (*) in den Arbeitsablauf des Teams ausarbeiten kann.
Starten Sie ein "skunk-works" -Projekt, um das neue VCS in einem kleinen Nebenprojekt zu testen und zu validieren. Wählen Sie ein paar "Alpha" -Entwickler aus, die bereit sind, neue Dinge auszuprobieren, und stören Sie sich nicht daran, eine Reihe von erfolglosen Experimenten durchzuführen. Wenn die Skunk-Werke in der Lage sind, BETON unwiderlegbare Verbesserungen des Arbeitsablaufs aufzuzeigen, können Sie versuchen, ihn dem Rest des Teams zur Verfügung zu stellen, und Sie haben ein paar Evangelisten, die Ihnen dabei helfen.
(*) mit "neues VCS" meine ich nicht unbedingt mercurial oder git, es kann auch SVN sein (richtig gemacht).
quelle