2010-03-19 9 views
5

Nachdem ich Joels letzten Artikel über Mercurial gelesen habe, gebe ich es auf XP als Single-User-Source-Control-System für einen Computer.Ein Projektarchiv/mehrere Projekte, ohne durcheinander zu kommen?

Eine Sache, die ich überprüfen möchte, ist jedoch: Es wäre einfacher, nur ein Repository aller kleinen Projekte zu erstellen, in denen ich zB. C: \ VB.Net \, aber das Ergebnis ist, dass die Änderungen an den verschiedenen darin enthaltenen Projekten (C: \ VB.Net \ ProjectA \, C: \ VB.Net \ ProjectB \ usw.) gemischt werden ein einzelnes Changelog.

Aber wenn ich ein einzelnes Repository für alle Projekte verwende, wenn ich Diffs mache oder die Änderungshistorie durchführe, kann ich dann Daten filtern, so dass ich nur Änderungen für ein bestimmtes Projekt sehe? Ist das Erstellen von Repositories in jedem Projektverzeichnis die einzige Lösung?

Vielen Dank.

Antwort

5

Ich würde ein Repository für jedes einzelne Projekt behalten. Der Overhead ist minimal (nur ein hg init für jedes Quellcodeverzeichnis oder ein Rechtsklick im Explorer), und Sie werden nicht verwirrt werden. Warum sollte sich eine Änderung an einem Programm auf die Versionshistorie eines völlig unabhängigen Programms auswirken?

Natürlich können Sie kann den Verlauf jeder Datei im Repository Explorer sehen, aber ich denke, es geht gegen das Konzept der Versionskontrolle, um nicht verwandte Dinge in ein Repository zu mischen.

+0

Danke Jungs. Also werde ich einfach weitermachen und in jedem Projekt-Unterverzeichnis ein Repo erstellen. – Gulbahar

4

Die richtige Granularität für ein DVCS (d. H. Ein Repo, wobei alle der Verlauf geklont werden kann) ist das Projekt.

Wenn Sie mehrere Projekte haben, die einen unterschiedlichen Entwicklungszyklus haben (d. H. Eine Änderung in einem beeinflusst nicht immer den anderen), sollten sie in ihrem eigenen Repo sein.

0

Wenn jemand Bitbucket verwendet, erlauben sie nur eine private Repository, so dass Sie alle Ihre Projekte dort einfügen können, wenn Sie sie privat sein wollen. Ich würde gerne Kommentare zu diesem Szenario hören.

0

Wenn Sie mit einem Repository gehen Sie und haben nur flache Projekte:

cd C:\VB.Net\ProjectA\ 
hg log *.* 

Andernfalls müssen bestimmte Dateierweiterungen angeben kann zu viel Rekursion zu vermeiden:

cd C:\VB.Net\ProjectA\ 
hg log **/*.cpp 

Es kann sein, ein wenig langsam aber ... Und Tags/Zweige können verwirrend werden, wenn die Projekte wirklich getrennt sind.

Hinweis: Ich denke kaum "Hallo Welt!" verdient ein eigenes Repository, nur weil es "stand alone" sein kann.