2009-07-09 19 views
4

Ich habe eine Kopie eines Projekts ausgecheckt, das auf Google-Code gehostet wird. Ich werde Änderungen daran vornehmen, und ich möchte diese unter Versionskontrolle in einem Repository auf meinem lokalen Computer behalten.Commits zu einer lokalen Kopie eines SVN-Repository erstellen

Ich würde gerne svn verwenden, wenn möglich, weil ich bereits die Grundlagen der Erstellung eines Repository, Auschecken und Festschreiben kennen.

Kann ich das mit svn machen oder sollte ich die Versionskontrolle überprüfen? Ich benutze Linux, nicht Windows.

+0

Ich habe meine Antwort basierend auf Linux geändert - Hinweis Eclipse bietet Ihnen ein nettes GUI Subversion Plugin. –

+0

Zuerst wählte ich Nick Lewis 'Antwort. Wenn Sie einen Export von Google Code ausführen und diese Dateien zu einem lokalen Repo hinzufügen, können Sie sich einfach an svn halten, wie ich es ursprünglich wollte, als ich die Frage stellte. Ein paar Tage später, versuchte ich Jon Weldon Vorschlag mit Quecksilber. Es war schnell, die grundlegenden mercurial-Befehle zu lernen, und wenn das Projekt auf googlecode aktualisiert wird, wird es viel einfacher sein, Änderungen in mein lokales Repository zu importieren. Ändern der akzeptierten Antwort spiegelt meine eigene Erfahrung, YMMV. – Alasdair

Antwort

6

Ich war sehr glücklich mit Svn gegen ein Remote-Repository + mit mercurial oder git als lokales Repository auf dem Svn Repo.

Sie sind beide verteilte Quellcodeverwaltungstools, und ich mag sie beide aus etwas anderen Gründen.

Ich habe es gefunden sehr mächtig zu sein, um meine eigene lokale Repo zu verwenden, die mit einer Remote-Subversion-Repository übereinstimmt ...

aktualisiert

Obwohl ich wirklich wie die Antworten zu von Google Export Code, und Importieren in Ihre lokale Repo, was ich wirklich an der Kombination von Svn und Git/Mercurial gefällt, ist, dass Sie regelmäßig ein Svn-Update tun können, um den neuesten Code von Google zu bekommen, und dann zu einem Git-Commit oder einem Hg-Commit zu Fügen Sie Ihrem lokalen Repo den neuesten Code hinzu.

Viel einfacher als periodisch einen SVN-Export in Ihr Repo zu machen, um Updates zu erhalten.

Zusätzlich haben Sie mit git/mercurial leistungsstarke Tools zum Verzweigen/Patchen verfügbar, die svn nicht so einfach macht.

+0

Ich kann sehen, warum die Kombination von git und svn vielleicht eine elegantere Lösung ist. Aber in diesem Fall ist das Einhalten von SVN gut genug, und lasst mich schneller zum Codieren zurückkehren. Ich werde git/mercurial in Zukunft versuchen. – Alasdair

+1

'In Zukunft' stellte sich heraus, dass es ein paar Tage später war. Diese Antwort funktioniert sehr gut für mich. – Alasdair

3

JA! Bitte verwenden Sie ein Versionskontrollwerkzeug. SVN ist sehr einfach zu benutzen, also schlage ich vor.

Eine Sache, die nützlich sein könnte, ist, dass Sie Eclipse + PyDev (für Python) + Subeclipse (für Ihre SVN) verwenden könnten. Dies sollte ein netter plattformunabhängiger Stack sein, der Ihnen einen GUI-fähigen SVN-Client beschert. Achten Sie darauf, das Plugin Mylyn, das mit den meisten der Eclipse-Pakete kommt zu überprüfen - es ist wirklich großartig.

Eine Alternative für Windows-Benutzer ist TortoiseSVN - folgen Sie ihrem Tutorial, um ein Repository zu erstellen.

Am einfachsten für einen einzelnen Benutzer ist das Protokoll "File". Etwas schwieriger ist es, einen richtigen SVN-Server einzurichten, den Sie vielleicht verschieben möchten, bis Sie SVN besser verstehen - Sie können von mehreren Rechnern aus arbeiten.

+0

Das Repository wird auf dem Server meines Webhosts leben, also muss ich mir mit der Kommandozeile die Hände schmutzig machen. Nachdem ich das gesagt habe, habe ich TortoiseSVN unter Windows verwendet, und die GUI ist sehr praktisch. Ich werde Subeclipse an irgendeinem Punkt überprüfen. Danke für den Tipp! – Alasdair

1

svn commit werden Ihre Änderungen in das (Remote-) Repository übertragen. Wenn Sie lokal einchecken möchten, bevor Sie (wenn überhaupt) zum Remote-Repository wechseln, ist ein verteiltes Tool wie git oder mercurial das Richtige.

2

SVN ist ein sehr gutes Versionskontrollsystem. Es wird in vielen wichtigen Projekten eingesetzt und ist zudem einfach zu bedienen und verfügt gleichzeitig über leistungsstarke Optionen.

Wenn Ihre lokale Kopie auf Google Code verweist. Sie können einen Export durchführen, der im Wesentlichen die Informationen zur Versionskontrolle entnimmt und sie dann in Ihr lokales SVN importiert.

Mit dieser Maßnahme verlieren Sie die gesamte vorherige Historie und beginnen von Grund auf neu und haben von nun an die Historie der Änderungen, die Sie lokal vornehmen und sich auf Ihr SVN festlegen.

Wenn Sie die Geschichte aller Commits in Google-Code zu diesem Punkt in Ihrem lokalen SVN behalten müssen, dann lassen Sie uns wissen, wie dies getan werden kann.

Wenn Sie Ihren lokalen Code auch zu einem bestimmten Zeitpunkt wieder in Google Code einbinden müssen, lassen Sie es uns wissen, um zu erklären, wie Sie das tun.

Hoffe, das hilft.

+0

Bingo! Export ist das Konzept, das ich brauchte, aber den Namen nicht kannte. Vielen Dank! – Alasdair

1

Ja.

Sie können Ihr lokales Repository mit

svnadmin create repositoryName 

erstellen und dann können Sie Ihre erste Kasse mit den normalen SVN-Befehle tun.

svn checkout file:///path/to/your/repositoryName 

einfach sicher, dass Sie tatsächlich einen Export des Projekts tun Sie über Google Code erhalten haben und nicht ein SVN-Kasse. Andernfalls werden Probleme mit .svn-Dateien auftreten, die bereits für ein anderes Repository existieren. Nehmen Sie alle Dateien, die Sie aus dem Export erhalten haben, in Ihre neu erstellte lokale Kopie und fügen Sie alle Dateien zu svn und commit hinzu.

Wenn Sie in dem Hafen wollen Ihre Änderungen, einfach

svn update 

das Verzeichnis, das eine ausgecheckt Version der Google-Code-Repository enthält, überschreibt alle Dateien, die Sie (oder Verwendung diffs geändert haben, um die Änderungen zu machen) dann Commit zurück zum Repository.

1
svnadmin create project-local-repo 
svn checkout file:///path/to/project-local-repo project-branch 
svn export http://PROJECT.googlecode.com/svn/trunk/ project-branch 

Dies wird (soll) ein neues Repository in Projekt-local-Repo auf Ihrem Rechner für Ihre Branche und die Kasse aus diesem Repository in den Ordner Projekt-Zweiges erstellen. Dann wird eine saubere Kopie der Dateien aus dem Hauptrepo in Ihren Projekt-Zweig-Ordner exportiert. Dann müssen Sie nur diese Dateien zum (lokalen) Repo und Commit hinzufügen und Sie sollten gut gehen. Das ist völlig ungeprüft und hypothetisch.

+1

Fixed it, danke für die heads-up. Ich benutze TortoiseSVN selbst, daher kenne ich nicht alle REAL-Befehle so gut. :) –

Verwandte Themen