Frage

Wenn Sie in einem Corporate Einstellung mit vielen Menschen auf einer bestimmten Anwendung arbeiten, wird es gegen den Strich eines verteilte Versionskontrolle System ein offizielles zentrales Repository haben?

Manchmal kämpfen, um ich das Konzept eines verteilten Versionskontrollsystem zu verstehen wie GIT in einer Unternehmensumgebung. Wenn Sie nicht ein zentrales Repository hätten, wäre es nicht ein PITA, um herauszufinden, wer die neueste aktualisierte Version hatte von zu ziehen, die Funktion x oder y Bugfix hat, dass jeder zu greifen braucht, etc, etc.

Ist das Besiegen sie den Zweck der GIT es in ähnlicher Weise zu verwenden, um SVN , mit einem zentralen Repository, dass jeder drückt / zieht aus? Jedes Mal, wenn ich denke, über das tun, dass ich das Gefühl, dass ich den Punkt von allem bin fehle.

Könnte jemand mich aufklären?

War es hilfreich?

Lösung

Nicht wirklich. DCVS erlaubt nur mehr Freiheit, wie ohne Beteiligung des zentralen Repository zwischen Entwicklern zu interagieren. Die offizielle Repository ist nur offizielle durch Konsens . Linux hat auch ein zentrales Repository, das eines aus dem die „offiziellen“ Kernel-Versionen erstellt werden, aber es gibt keinen physikalischen Unterschied zwischen den zentralen, „offiziellen“, Repository und Client-Repositories wie es in zentralisierten VCS ist.

Andere Tipps

Sie sind wahrscheinlich entlang der Linien dieses Diagramms zu denken:

alt text

Dies wird wahrscheinlich wie Chaos aussieht von einem CVCS kommen. „Wir brauchen eine gewisse Ordnung“, höre ich Sie sagen?

  

Wenn Sie nicht ein zentrales Repository hätten, wäre es nicht ein PITA, um herauszufinden, wer hatte die neueste aktualisierte Version von zu ziehen, die Funktion x oder y Bugfix hat, dass jeder zu greifen braucht, etc, etc .

Ja. Im Gegensatz zu einem CVCS Es gibt nicht wirklich eine „aktuelle Version“. Wenn es keine zentrale Lage ist, wissen Sie nicht sofort, ob Sue, Joe oder Eve für die neueste Version zu sehen. Eine zentrale Lage hilft klären, was die neueste „stable“ Version.

Etwas ein bisschen mehr wie folgt aus:

alt text

Es könnte auch wert sein, unter Hinweis darauf, dass es in Abhängigkeit von den Zuständigkeiten von Personengruppen innerhalb einer Organisation mehr als ein wahrgenommen zentrales Repository sein könnte.

Stellen Sie sich einen Projektmanager, der mehrere Entwicklungsteams verwaltet, kann jedes Team eine „zentrale“ Repository, die sie schieben zu. Jede Woche kann der Projektmanager von jedem Team zieht Änderungen in seinen „zentralen“ Repository, kombiniere sich und schiebt sie ‚zentralen‘ Repositorys, um seine Teams zurück.

Dies ist wahrscheinlich kein gutes Beispiel (ich noch immer meinen Kopf um das alles zu), aber das ist nur ein Projekt-Manager. Werfen Sie in ein paar Projekte / Manager und QA-Team, dann könnten Sie sehen, wo ich von komme ..

-

Mit verteilten Quellcodeverwaltung, eine zentrale „offizielle“ Repository von Politik festgelegt wird -. Keine Kontrolle Werkzeug Architektur beziehen

Auf jeden Fall nicht den Zweck Git zu besiegen.

Der Vorteil der Verwendung von Git oder anderen DVCS, selbst wenn es eine zentrale ist, offiziell, Repository ist noch , dass die Quellcodeverwaltung ist dezentral organisiert. Das heißt, können Sie Ihre Kopie des Repository, die Arbeit an Ihrem Code übernehmen und tun begehen eine lokale alle paar Minuten, wenn Sie benötigen. Sie brauchen sich keine Sorgen machen, dass die Commits auf halbfertigen Code sind, die den Build brechen, es alle lokalen ist. (Und sehr schnell.)

Dann, wenn die ganze Arbeit erledigt ist, können Sie die Geschichte aufzuräumen und die fertiggestellten Änderungen an der zentralen Repository in einem homogenen, sauber, Zustand drücken.

Ich glaube nicht, dass Sie den Vorteil der Trennung der Idee der „privaten“ unterschätzen verpflichtet und „public“ drückt. Es ermöglicht Änderungen verfolgt werden, auch wenn Sie der einzige sind von solchen kleinen Granularität profitieren.

Wenn Sie diese überprüfen Präsentation von Git (Folie 475 und folgend), ein zentrales Repository Modell ist perfekt unterstützt von Git.

können Sie können niemanden zwingen wollen, ihre Entwicklung git push zunächst ein git fetch + git merge zuerst zu machen, dann drücken.

Das ist nicht der Zweck von Git Niederlage überhaupt, und sicherstellen, dass jeder ‚synchron‘ miteinander ist.

Der Unterschied mit der Linus „offiziellen“ Repository von JesperE erwähnte ist, dass es von einem anderen Workflow verwaltet wird, nämlich ein „Diktator und Leutnants“ Modell, bei dem Schreibzugriff (push) ist nur für Linus gewährt, und gelesen werden, für jedermann gewährt.

Nun? "Ist, dass der Punkt der DVC besiegen"

Nein, Sie haben noch verteilte Repositories, eine für jeden Entwickler, und sie können zwischen ihren eigenen Repositories, nach ihren eigenen internen Team-Workflow Abruf- / fusionieren.
Allerdings, wenn sie an den zentralen Repo beitragen wollen, müssen sie zuerst up-to-date mit der neuesten Geschichte dieses Repository sein.

Einer der wichtigsten Vorteile von DVCS ist, dass Sie die neueste Version aus der ‚offiziellen‘ Repository erhalten und dann mit ihm abenteuerlich sein. Sie können Änderungen lokal begehen und nach Belieben rückgängig zu machen. Das bedeutet auch, können Sie sogar auch ohne Zugang zu arbeiten, um die zentralen repositoy und haben immer noch die Vorteile der Quellcodeverwaltung.

Ich denke, mit ein bisschen Disziplin das Modell sehr gut funktioniert. diesem Artikel auch die verschiedenen Modelle erklärt man annehmen könnte

DVCS wie Git zwingen Sie nicht ein zentrales Repository zu verwenden. Natürlich ist es möglich, ein Repository zu sein „zentral“ oder „offiziellen“ oder was auch immer, und in einem Unternehmen Kontext ein zentrales Repository macht einen Sinn, wenn auch nicht für die Entwicklung zu erklären, dann zumindest für Backup-Zwecke.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top