792 Stimmen

Wie kann ich ein Verzeichnis mit SVN ignorieren?

Ich habe gerade angefangen, SVN zu benutzen, und ich habe ein Cache-Verzeichnis, das ich unter der Versionskontrolle nicht brauche. Wie kann ich das gesamte Verzeichnis/Ordner mit SVN ignorieren?

Ich verwende Versionen y テキストメイト unter OS X und auf der Kommandozeile.

3 Stimmen

Eine ähnliche Frage wurde hier beantwortet [SVN checkout ignore folder][1] [1]: stackoverflow.com/questions/192824/svn-checkout-ignore-folder

0 Stimmen

Mögliches Duplikat von Wie kann ich Dateien in Subversion ignorieren? (Mir ist es egal, in welche Richtung das Duplikat geht; keine der beiden Antwortmöglichkeiten ist offensichtlich besser als die andere).

31voto

Frank Szczerba Punkte 4900

Stellen Sie die svn:ignore Eigenschaft auf das übergeordnete Verzeichnis:

$ cd parentdir
$ svn ps svn:ignore . 'cachedir'

Dies überschreibt jeden aktuellen Wert von svn:ignore . Sie können den Wert mit bearbeiten:

$ svn pe svn:ignore .

Dadurch wird Ihr Editor geöffnet. Sie können mehrere Muster hinzufügen, eines pro Zeile.

Sie können den aktuellen Wert mit anzeigen:

$ svn pg svn:ignore .

Wenn Sie eine grafische Benutzeroberfläche (GUI) verwenden, sollte es dafür eine Menüoption geben.

4 Stimmen

svn ps svn:ignore . 'cachedir' führt zu cachedir is not under version control . Wechsel zu svn ps svn:ignore 'cachedir' . hat für mich funktioniert

25voto

Elliot Yap Punkte 1026

Vielen Dank für alle oben genannten Beiträge. Ich möchte nur einige zusätzliche Informationen aus meinen Erfahrungen beim Ignorieren von Dateien teilen.


Wenn die Ordner bereits unter Revisionskontrolle stehen

Nach svn-Import y svn co die Dateien, was wir normalerweise zum ersten Mal tun.

Alle Runtime-Cache- und Anhangsordner werden unter Versionskontrolle stehen. Also, bevor svn ps svn:ignore müssen wir sie aus dem Repository löschen.

Mit SVN Version 1.5 und höher können wir svn del --keep-local your_folder , aber für eine frühere Version ist meine Lösung:

  1. svn-Export eine saubere Kopie Ihres Ordners (ohne .svn versteckter Ordner)
  2. svn del das lokale und das Repository,
  3. svn ci
  4. Kopieren Sie die Verzeichnisse zurück
  5. Faites svn st und bestätigen Sie, dass die Ordner als '?' gekennzeichnet sind.
  6. Jetzt können wir svn ps entsprechend den Lösungen

Wenn mehr als ein Ordner ignoriert werden soll

  • In einem Verzeichnis habe ich zwei Ordner, die wie folgt festgelegt werden müssen svn:ignore
  • Wenn wir eine einstellen, wird die andere entfernt.
  • Dann fragen wir uns, was wir brauchen svn pe

svn pe müssen Sie die Textdatei bearbeiten, und Sie können diesen Befehl bei Bedarf verwenden, um Ihren Texteditor mit vi :

export SVN_EDITOR=vi
  1. Mit "o" können Sie eine neue Zeile öffnen
  2. Geben Sie alle Ordnernamen ein, die Sie ignorieren möchten
  3. Drücken Sie die 'esc'-Taste, um den Bearbeitungsmodus zu verlassen.
  4. Geben Sie ":wq" ein und drücken Sie Enter zum Speichern und Beenden

Die Datei sieht in etwa so aus:

runtime
cache
attachments
assets

0 Stimmen

Können Sie auch verwenden svn propset svn:ignore -F .ignorethesefiles . , die den Inhalt der Datei verwendet. Ich behalte sie gerne, damit Sie wissen, was ignoriert wird. Bearbeitungen erfordern ein Follow-up-Propset.

14voto

Michael Lang Punkte 2008

Wenn Sie einen bestimmten SVN-Client verwenden TortoiseSVN Beim Übertragen haben Sie die Möglichkeit, mit der rechten Maustaste auf Elemente zu klicken und "Zur Ignorierliste hinzufügen" zu wählen.

12voto

DerMike Punkte 14328

...und wenn Sie mehr als ein Verzeichnis ignorieren wollen (z.B. build/ temp/ y *.tmp Dateien), könnte man entweder in zwei Schritten vorgehen (die erste ignorieren und die ignore-Eigenschaften bearbeiten (siehe andere Antworten hier) oder man könnte etwas schreiben wie

svn propset svn:ignore "build
temp
*.tmp" .

in der Befehlszeile.

11voto

James Stroud Punkte 111

Der Befehl zum Ignorieren mehrerer Einträge ist ein wenig kompliziert und erfordert Backslashes.

svn propset svn:ignore "cache\
tmp\
null\
and_so_on" .

Dieser Befehl ignoriert alles mit dem Namen cache , tmp , null y and_so_on im aktuellen Verzeichnis.

6 Stimmen

Und nur um das klarzustellen: Der Backslash hier ist keine Funktion von svn; er ist einfach eine Möglichkeit, eine mehrzeilige Zeichenkette auf der Shell einzugeben. Sie können auch einen Editor verwenden und einfach mehrere Zeilen schreiben.

0 Stimmen

Ein Backslash ist für die Bash nicht erforderlich. Die Bash ist intelligent genug, um zu wissen, dass ein " geöffnet ist und die Zeile nicht zu verarbeiten. Alles, was Sie tun müssen, ist, nach cache, tmp und null die Eingabetaste zu drücken. Sie werden sehen, dass die Bash die Eingabeaufforderung in ein > ändert, damit Sie wissen, dass Sie den Befehl noch eingeben. Eine Alternative ist, mit der Eingabe des Befehls (svn) zu beginnen und dann esc und v zu drücken. Damit können Sie den Befehl im Editor eingeben.

2 Stimmen

svn propset svn:ignore -F .ignorethesefiles . ermöglicht Ihnen die Verwendung einer Datei. Und wie erwähnt, haben Sie immer propedit.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X