2016-10-17 2 views
0

Ich habe subversion gelesen und getestet (durch TortoiseSVN) Verzweigung und Merging-System und da kann ich es nicht vollständig verstehen.Wie in Stamm und Zweig gleichzeitig arbeiten?

Ich habe ein Projekt MyProject mit einem Verzeichnis src in seinem Stammverzeichnis. Mit der TFS könnte ich einen Zweig von ihm machen es big-dev-src anrufen und dann (im Wurzelverzeichnis) sowohl src (Stamm) als auch big-dev-src (Zweig) haben. Ich könnte update/get latest version von jedem, commit/check in zu irgendwelchen und merge sie (Zweig zum Zusammenführen oder umgekehrt). Und beide waren völlig unabhängig.

nun mit subversion es scheint, als ob ich eine switch Operation tun müssen, von einem zum anderen zu wechseln, und wenn ich bis zu Änderungen der switch wird sie merge.

Verstehe ich etwas falsch? Gibt es da irgendwie den Einsatz wie der TFS funktioniert?

Danke!

+0

Warum können Sie nicht zwei Arbeitskopien oder sogar eine einzelne Arbeitskopie vom gemeinsamen Elternteil ausgecheckt haben? Führen Sie dann bei Bedarf Zusammenführungen zwischen ihnen durch. – alroc

+0

Zwei Arbeitskopien ist die von Lazy Badger vorgeschlagene Lösung. Ich mag diese Idee nicht und ich bin mir nicht sicher, wie ich es zwischen mehreren PCs schaffen könnte. Über die einzelne Arbeitskopie, die von dem Elternteil ausgecheckt wurde (eigentlich von der Repository-Wurzel), ist das, was ich möchte, aber ich hatte Schwierigkeiten, die Zusammenführung zu machen. Vielleicht ist der Verschmelzungsprozess, was ich nicht gut verstehe – Diego

Antwort

0

es scheint, wie ich einen Schalter Betrieb tun muß, von einem zum anderen

Sie Schaltern können (oder nicht wechseln) zu ändern, nur weil man jede Menge haben kann Arbeitskopien für jede Menge verwandten Repository-URLs

Mit „WC pro URL“ (eines für Stamm, einen für jeden WIP-Zweig) Sie völlig unabhängig arbeitet

PS haben können: Sie können Kasse r auch epo-Wurzel (schlechte Idee, in der gesunden Menschenverstand, aber es ist möglich)

>dir /B 
branches 
readme.textile 
tags 
trunk 

>svn info 
.... 
Relative URL: ^/ 
... 
+0

Wie oder wo stelle ich "WC pro URL" ein? – Diego

+0

@Diego - nur DOIT! 'cd DIR1; svn co URL1; CD DIR2; svn co URL2' –

+0

Ok, ich glaube ich habe es verstanden. Ich würde "zwei verschiedene Clients" des Repositorys haben, aber einer wäre der andere, und seine Wurzel wäre nicht die Wurzel des Repositories. – Diego

0

Es ist eine Best-Practice-Projektstruktur, die wie folgt aussieht:

myproject 
|- trunk  (main line of development, in your case: src) 
|- branches 
| |- big-dev (your big-dev-src) 
| : 
`- tags 

Natürlich ist dies nur ein Vorschlag, wird in keiner Weise durchgesetzt; Zweige sind Kopien, aus Sicht von Subversion.

Trotz der zusätzlichen „Verzeichnisebene“ es ist durchaus möglich, Arbeitskopien des Rumpfes und eine Niederlassung in demselben übergeordneten Verzeichnis zu haben, und sie synchron ändern:

# svn checkout svn://svn.myserver/myproject/trunk src 
# svn checkout svn://svn.myserver/myproject/branches/big-dev big-dev-src 

Sie können ähnliche Änderungen in beide machen von ihnen und verpflichten sie in einer Revision (obwohl sie sehr einfache Änderungen dies nur tun würde):

# cd src 
# svn commit . ../big-dev-src 

Sie können auf die andere Änderungen von einem Verzeichnisbaum verschmelzen, natürlich. Wenn Sie jedoch Nicht-URLs zum Zusammenführen verwenden, müssen Sie die Revisionen angeben (-c oder -r Optionen). Sie sollten Zusammenführungen von anderen Änderungen isolieren (dh immer zu einer sauberen Arbeitskopie ohne unveränderte Änderungen zusammenführen und das Zusammenführungsergebnis erst festschreiben, bevor Sie etwas anderes ändern) und die Option --record-only verwenden, um der Verzweigung über ihre Änderungen mitzuteilen, die sie bereits vorgenommen haben zum Kofferraum.

+0

Das erneute Lesen meiner Frage ließ mich erkennen, dass es ein wenig verwirrend sein könnte. Ich brauche den Stamm und den Zweig nicht, um unabhängig zu sein, wenn man zwei verschiedene Arbeitskopien benutzt (zwei verschiedene "Checkouts"). Meine Frage ist, weil ich gelesen habe, dass ich zum Arbeiten mit einem Zweig die 'Switch'-Operation ausführen sollte. Ich habe es ausprobiert und es war wirklich verwirrend, ich begann für die Filiale im Stammverzeichnis zu arbeiten. – Diego

Verwandte Themen