2010-12-29 9 views
1

Ich bin auf der Suche nach einer Lösung, wo ich eine Datei in 2 verschiedenen Repositorys mit SVN speichern kann.SVN-Wie eine Datei in separate Repositorys zu committen

Ich habe zu 2 Repositories eins ist mein lokales Repository in meinem System und das andere ist das Repository in Produktionsserver, wenn ich Änderungen an einer Datei in lokalen, wie kann ich die Datei zu 2 verschiedenen Repositories an verschiedenen Standorten an Commit eine Zeit.

Das lokale Repository ist so eingerichtet, dass es für den Entwickler machbar ist. Und das Produktionsrepository hat eine andere Ordnerstruktur.

+2

Sounds übermäßig kompliziert ... – Macke

Antwort

3

Soweit ich weiß, ist dies nicht möglich. Eine Arbeitskopie kann immer nur von einem Repository kontrolliert werden.

Dies kann mit einem Post-Commit Hook erreichbar sein, aber es wird kompliziert.

Der einfachste Weg könnte sein, zwei Verzeichnisse lokal zu haben, wobei das eine das andere spiegelt. Sie müssten jedoch immer noch zwei Commits machen.

Das klingt ein bisschen wie schlechte Praxis. Sind Sie sicher, dass dies sinnvoll und notwendig ist? Gibt es keine bessere Lösung für Ihr Szenario, zum Beispiel external?

+0

Was meinst du mit einem externen? – user557032

+0

@benutzer den Link sehen. Es ist ein Zeiger auf ein anderes Repo in einem Repo –

+0

Oops @svinto wir sind beide der Verknüpfung zu grob veralteten Versionen des Handbuchs schuldig :) Das aktuelle ist http://svnbook.red-bean.com/en/1.5/svn. advanced.externals.html –

1

Die einzige Subversion-only-Lösung, die ich mir vorstellen kann, ist die Verwendung von Hooks, genauer gesagt eines Post-Commit-Hooks in Ihrem lokalen Server, der Daten an den Remote-Server übermittelt. Der offensichtliche Nachteil ist, dass Sie die Skripte selbst programmieren müssen und es sieht nach viel Arbeit aus.

Ich nehme an, eine solche Anordnung ist eine Problemumgehung für die Verwendung lokaler Versionen in Ihrer Entwicklung. Ich glaube, dass Leute normalerweise Software von Drittanbietern verwenden, um es zu erreichen. Sie können:

  • Installieren Sie eine andere Versionskontrollsystem (wie git, mercurial oder bazaar) für lokale Versionen. Denken Sie daran, Ihre lokale Version-Datenbank von Subversion wegzulassen.
  • Verwenden Sie SVK über Subversion, damit Sie auswählen können, was Sie an das Remote-Repository senden möchten.
  • Verwenden Sie eine IDE mit benutzerdefinierten lokalen Versionen.
+0

+1 für die Erwähnung verteilter VCS, dies könnte in der Tat die bessere Lösung für das "lokale" Problem sein. @ user Ich mochte http://Hginit.com immer als eine nette Einführung in die Arbeitsweise von DVCS –

Verwandte Themen