Wie füge ich einen vorhandenen Ordner mit Dateien zu SVN hinzu?

82

Wie fügt man einem bestimmten SVN-Speicherort einen Ordner ohne Versionskontrolle hinzu? Ich fange oft an, Code zu schreiben, und erst wenn ich ein paar Ordner mit Codedateien habe, füge ich ihn SVN hinzu.

Was ich normalerweise mache ist:

  1. svn co das übergeordnete Verzeichnis, in dem ich einen neuen Ordner zum Speichern meines Codes erstellen möchte.
  2. svn mkdir , um das Verzeichnis zu erstellen, in das ich meinen Code einfügen möchte.
  3. Kopieren Sie meinen Code und fügen Sie ihn ein.
  4. svn commit .
  5. Löschen Sie mein aktuelles Arbeitscodeverzeichnis.
  6. Erstellen Sie mein Arbeitscodeverzeichnis mit svn co neu .
Siecje
quelle
2
Mögliches Duplikat zu stackoverflow.com/questions/2431389/…
pmod

Antworten:

131

Angenommen, ich habe Code im Verzeichnis ~/local_dir/myNewAppund möchte ihn unter " https://svn.host/existing_path/myNewApp " ablegen (während ich einige Binärdateien, Herstellerbibliotheken usw. ignorieren kann).

  1. Erstellen Sie einen leeren Ordner im Repository svn mkdir https://svn.host/existing_path/myNewApp
  2. Wechseln Sie in das übergeordnete Verzeichnis des Projekts. cd ~/local_dir
  3. Überprüfen Sie das leere Verzeichnis über Ihrem lokalen Ordner. Haben Sie keine Angst - die Dateien, die Sie lokal haben, werden nicht gelöscht. svn co https://svn.host/existing_path/myNewApp. Wenn Ihr Ordner lokal einen anderen Namen als im Repository hat, müssen Sie ihn als zusätzliches Argument angeben.
  4. Sie können sehen, dass svn stjetzt alle Ihre Dateien als angezeigt werden ?, was bedeutet, dass sie derzeit nicht unter Revisionskontrolle stehen
  5. Führen svn addSie die Dateien aus, die Sie dem Repository hinzufügen möchten, und fügen Sie andere hinzu svn:ignore. Sie können einige nützliche Optionen finden svn help add, zum Beispiel --parentsoder --depth emptywenn Sie selektiv nur einige Dateien / Ordner hinzufügen möchten.
  6. Commit mit svn ci
qbolec
quelle
Zu Punkt 5: Sie können alle Dateien / Verzeichnisse Ihres Arbeitsverzeichnisses auf diese Weise in Bash hinzufügen: find . -name .svn -prune -o -print0|xargs -0 svn add
Nicolas M
1
Das beste How-to, das ich je gesehen habe, um neue Sachen in svn zu bringen.
Colin 't Hart
Wie geht das? "Wenn Ihr Ordner lokal einen anderen Namen als im Repo hat, müssen Sie ihn als zusätzliches Argument angeben"
Kristof Pal
1
@ KristofPal:svn co https://svn.host/existing_path/myNewApp ~/local_dir/localNameOfFolder
Qbolec
1
Vielen Dank an @qbolec für "Hab keine Angst." +1 auf alle "beste Antwort". Als Hinweis für diejenigen, die möglicherweise noch Angst haben: Sie können Ihre Arbeit unterstützen, wenn Sie immer noch Angst haben.
Stephan Samuel
55

Wenn ich Ihren Anwendungsfall richtig verstanden habe, empfehle ich, svn add zu verwenden, um den neuen Ordner unter die Version zu setzen (siehe hier) . Im Folgenden wird der neue Ordner mit Dateien rekursiv unter Versionskontrolle hinzugefügt (wenn Sie sich in einer gültigen Arbeitskopie befinden):

svn add new_folder
svn commit -m "Add New folder to the project"

Wenn Sie sich nicht in einer Arbeitskopie befinden, erstellen Sie diese mit svn checkout , kopieren Sie dort den Ordner new_folder und führen Sie die obigen Schritte aus.

ODER

Versuchen Sie es mit svn import , siehe hier ; Im Folgenden wird ein neuer Ordner erstellt und Dateien in das Repository hochgeladen:

svn import -m "Import new folder to the project" new_folder \
        http://SVN_REPO/repos/trunk/new_folder

Beachten Sie auch Folgendes:

Beachten Sie nach dem Importieren von Daten, dass der ursprüngliche Baum nicht der Versionskontrolle unterliegt. Um mit der Arbeit zu beginnen, müssen Sie noch eine neue Arbeitskopie des Baums auschecken

pmod
quelle
Der übergeordnete Ordner unterliegt jedoch nicht der Versionskontrolle. Woher weiß es, wo es in das SVN-Repository gestellt werden soll
Siecje
Mir ist nicht klar, wo sich Ihre Ordner befinden. Arbeiten Sie nicht in der "Arbeitskopie"?
pmod
Ich habe ein bereits vorhandenes SVN-Repository mit Ordnern. Ich erstelle Nicht-SVN-Dateien und -Ordner und möchte sie dem Repository hinzufügen. So wie ich es jetzt mache, checke ich ein Verzeichnis aus, in dem ich mein Projekt ablegen möchte. Dann kopiere ich Einfügen an die Kasse und füge dort svn hinzu.
Siecje
@Siecje Ich denke jetzt verstehe ich was du meinst
pmod
Also muss ich eine Kasse machen, was bedeutet, dass ich die Dateien löschen und sie von SVN erneut herunterladen muss. Für Website-Dateien müsste die Website also für eine Sekunde ausfallen, während ich das mache?
Siecje
8

Ich benutze keine Befehle. Sie sollten dies über die GUI tun können:

  • Klicken Sie mit der rechten Maustaste auf eine leere Stelle in Ihrem Ordner "Eigene Dateien" und wählen Sie "TortoiseSVN"> "Repo-Browser".
  • Geben Sie http: // subversion ... (Ihren URL-Pfad zu Ihrem Subversion-Server / Verzeichnis, in dem Sie speichern möchten) als Pfad ein und wählen Sie OK
  • Klicken Sie mit der rechten Maustaste auf das Stammverzeichnis in Repo und wählen Sie Ordner hinzufügen . Geben Sie ihm den Namen Ihres Projekts und erstellen Sie es.
  • Klicken Sie im Repo-Browser mit der rechten Maustaste auf den Projektordner und wählen Sie Kasse . Das Checkout-Verzeichnis ist Ihr Visual Studio\Projects\{your project}Ordner. Wählen Sie OK.
  • Sie erhalten eine Warnung, dass der Ordner nicht leer ist. Sagen Sie " Ja" zum Auschecken / Exportieren in diesen Ordner - Ihre Projektdateien werden nicht überschrieben.
  • Öffnen Sie Ihren Projektordner. In Ordnern, die Ihrem VS-Projekt zugeordnet sind und noch nicht zu Subversion hinzugefügt wurden, werden Fragezeichen angezeigt. Wählen Sie diese Ordner mit Strg + Klicken aus, klicken Sie mit der rechten Maustaste auf eines der ausgewählten Elemente und wählen Sie TortoiseSVN> Hinzufügen
  • Wählen Sie an der Eingabeaufforderung OK
  • Ihre Dateien sollten hinzufügen. Wählen Sie OK unter Fertig stellen hinzufügen! Dialog
  • Klicken Sie mit der rechten Maustaste in einen leeren Bereich des Ordners und wählen Sie Aktualisieren. In den Ordnern / Dateien werden jetzt "+" - Symbole angezeigt
  • Klicken Sie erneut mit der rechten Maustaste auf einen leeren Bereich im Ordner und wählen Sie SVN Commit
  • Fügen Sie eine Nachricht zu Ihrem Commit hinzu und klicken Sie auf OK
vapcguy
quelle
1

Wenn die Absicht besteht, die lokale / Arbeitskopie zu SVN hinzuzufügen, habe ich dies folgendermaßen gemacht.

Hinweis: Ich verwende den TortoiseSVN- Client. Bei diesen Schritten wird davon ausgegangen, dass Sie den TortoiseSVN-Client bereits installiert haben.

  1. Ich habe ein Projekt (Test-4.2.2) in meiner Nähe. Ich möchte es hochladen / zu einem SVN-Repository hinzufügen.
  2. Mit dem TortoiseSVN-Repo-Browser habe ich ein leeres Verzeichnis "Test-4.2.2" erstellt.
  3. In meinem lokalen Verzeichnis habe ich das vorhandene Verzeichnis "Test-4.2.2" in "Test-4.2.2.1" (vorübergehend) umbenannt.
  4. Kasse den leeren "Test-4.2.2" von SVN zu Ihrem lokalen
  5. Kopieren Sie alle Unterverzeichnisse unter 4.2.2.1 in dieses Checkout-Verzeichnis 4.2.2
  6. Klicken Sie nun mit der rechten Maustaste auf "Test-4.2.2" und schreiben Sie fest.
  7. Löschen Sie den temporären Ordner "Test-4.2.2.1".
Purushothaman
quelle
1

In Windows 7 habe ich Folgendes getan:

  1. Haben Sie SVN und Tortoise SVN installiert? Wenn nicht, googeln Sie sie und tun Sie dies jetzt.
  2. Wechseln Sie zu Ihrem SVN-Ordner, in dem Sie möglicherweise andere Repos haben (kurz für Repository) (oder wählen Sie ein Laufwerk C, ein Laufwerk D usw. oder einen Netzwerkpfad aus, wenn Sie eines von Grund auf neu erstellen).
  3. Erstellen Sie einen neuen Ordner, um Ihr neues Repository zu speichern. Nennen Sie es den gleichen Namen wie Ihren Projekttitel
  4. Klicken Sie mit der rechten Maustaste auf den Ordner und wählen Sie hier Tortoise SVN -> Create Repository
  5. Sagen Sie "Ja", um eine Ordnerstruktur zu erstellen
  6. OK klicken. Sie sollten ein neues Symbol neben Ihrem neuen Ordner / Repo sehen, das wie eine "Welle" aussieht
  7. Klicken Sie mit der rechten Maustaste auf das neue Repo und wählen Sie SVN Repo Browser
  8. Klicken Sie mit der rechten Maustaste auf "Kofferraum".
  9. Wählen Sie Ordner HINZUFÜGEN ... und zeigen Sie auf Ihre Ordnerstruktur Ihres in der Entwicklung befindlichen Projekts.
  10. Klicken Sie auf OK und SVN fügt Ihre Ordnerstruktur hinzu. Seien Sie geduldig! Es sieht so aus, als wäre SVN abgestürzt / eingefroren. Mach dir keine Sorgen. Es macht seine Arbeit.

Getan!

Fandango68
quelle
0

3 Schritte:

  • Öffnen Sie "Repo Browser" (Link Ihres übergeordneten Ordners verwenden).
  • Klicken Sie mit der rechten Maustaste auf "Ordner hinzufügen".
  • Navigieren Sie zu Ihrem Ordner.

Geben Sie hier die Bildbeschreibung ein

Arindam Roychowdhury
quelle
Auf diese Weise können Sie keinen Ordner hinzufügen, der nicht vorhanden ist. "Ordner hinzufügen" gibt Ihnen ein Explorer-Fenster, in dem Sie auf einen vorhandenen Ordner verweisen können, und anschließend ein Festschreibungsfenster, in dem Sie es zu Subversion hinzufügen können. Es ist nicht zum Erstellen eines neuen Ordners auf der lokalen Seite gedacht - dies müsste immer noch manuell erfolgen und dort ausgefüllt werden, dann könnte dies zum Festschreiben des Inhalts für Subversion verwendet werden. Dies gibt nur die Hälfte der Geschichte.
Vapcguy
0

Lass es uns versuchen .. Es funktioniert für mich ..

svn add * --force
Parthiban Soundram
quelle