Frage

Ich habe gerade angefangen mit SVN, und ich habe ein Cache-Verzeichnis, das brauche ich nicht unter Quellcodeverwaltung. Wie kann ich ignoriere die gesamte Verzeichnis / Ordner mit SVN?

Ich bin mit Versionen und Textmate auf OS X und Kommandozeilen.

War es hilfreich?

Lösung

Stellen Sie die svn:ignore Eigenschaft des übergeordneten Verzeichnisses:

svn propset svn:ignore dirname .

Wenn Sie mehr Dinge zu ignorieren, getrennt durch Zeilenumbrüche in dem Eigenschaftswert. In diesem Fall ist es einfacher, den Eigenschaftswert mit einem externen Editor zu bearbeiten:

svn propedit svn:ignore .

Andere Tipps

Hier ist ein Beispiel Verzeichnisstruktur:

\project
    \source
    \cache
    \other

Wenn in project Sie sehen, dass Ihr Cache-Verzeichnis nicht hinzugefügt wird, und zeigt sich als solche.

> svn st
M  source
?  cache

die ignore Eigenschaft zu setzen, tun

  

svn propset svn:. Ignorieren Cache

Dabei gilt svn:ignore der Name der Eigenschaft ist, den Sie einstellen, ist cache der Wert der Immobilie, und . ist das Verzeichnis Sie diese Eigenschaft sind Einstellung auf. Es sollte das übergeordnete Verzeichnis des cache Verzeichnis sein, das die Eigenschaft muss.

Um zu überprüfen, welche Eigenschaften sind:

> svn proplist
Properties on '.':
  svn:ignore

Um den Wert svn:ignore zu sehen:

> svn propget svn:ignore
cache

So löschen Eigenschaften vorher festlegen:

svn propdel svn:ignore

Wichtig zu erwähnen:

Auf der Kommandozeile können Sie nicht verwenden

svn add *

Dies wird auch die ignorierten Dateien hinzufügen, weil die Befehlszeile * erweitert und ist daher der Ansicht svn add, dass Sie alle Dateien hinzugefügt werden sollen. verwenden Sie diese daher statt:

svn add --force .

Da ich eine Weile lang versucht, diese Arbeit zu bekommen, sollte beachtet werden, dass, wenn die Dateien bereits im SVN vorhanden ist, müssen Sie sich svn delete und dann die svn:ignore Eigenschaft bearbeiten.

Ich weiß, dass offensichtlich scheint, aber sie hielten als ? in meiner svn status Liste zeigt nach oben, als ich dachte, es würde einfach ignorieren lokal.

leicht zu erweitern, wenn Sie dies mit dem SVN-Kommandozeilen-Tool zu tun sind, werden Sie wollen ein:

svn propedit svn:ignore path/to/dir

, die Ihren Text-Editor der Wahl geöffnet wird, dann geben Sie ‚*‘ alles in sie zu ignorieren, und speichern + beenden - das wird das Verzeichnis selbst in SVN umfassen, aber ignorieren alle Dateien darin, das Verzeichnis zu ignorieren verwenden, den Pfad der Eltern, und dann den Namen des Verzeichnisses, in der Datei ein. Nach dem Speichern führt ein Update ( 'svn up'), und dann in dem entsprechenden Pfad überprüfen.

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

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

Dies wird alle aktuellen Wert von svn:ignore überschrieben. Sie eine Änderung der Wert mit:

$ svn pe svn:ignore .

Welche wird der Editor geöffnet. Sie können mehrere Muster hinzufügen, eine pro Zeile.

Sie können den aktuellen Wert anzuzeigen mit:

$ svn pg svn:ignore .

Wenn Sie eine GUI dort verwenden, sollte eine Menüoption, dies zu tun.

Danke für all die Beiträge oben. Ich möchte nur einige zusätzliche Informationen von meinen Erfahrungen teilen, während Dateien ignoriert werden.


Wenn die Ordner sind bereits unter Revisionskontrolle

Nach dem svn import und svn co die Dateien, was wir in der Regel zum ersten Mal tun.

Alle Laufzeit-Cache, Attachments Ordner werden unter Versionskontrolle sein. so, bevor svn ps svn:. ignorieren , müssen wir es aus dem Repository löschen

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

  1. svn export eine saubere Kopie Ihrer Ordner (ohne .svn versteckten Ordner)
  2. svn del die lokalen und Repository,
  3. svn ci
  4. Kopieren Sie zurück die Ordner
  5. svn st und bestätigen Sie die Ordner wie werden markiert '?'
  6. Jetzt können wir tun, svn ps nach den Lösungen

Wenn wir mehr als ein Ordner müssen ignoriert werden

  • In einem Verzeichnis Ich habe zwei Ordner, die als svn:ignore eingestellt werden müssen
  • Wenn wir eins gesetzt, wird der andere entfernt werden.
  • Dann fragen wir uns, wir brauchen svn pe

svn pe muß die Textdatei bearbeiten, und Sie können diesen Befehl verwenden, wenn benötigt, um Ihren Texteditor setzen a href mit <= „http://en.wikipedia.org/wiki/Vi“ rel = „noreferrer“ > vi :

export SVN_EDITOR=vi
  1. Mit "o" Sie können eine neue Zeile öffnen
  2. Geben Sie in allen Ordnernamen Sie ignorieren möchten
  3. Hit 'esc' aus dem Bearbeitungsmodus zu entkommen
  4. Type ": wq" dann drücken Sie Enter speichern und beenden

Die Datei sieht etwas einfach wie folgt aus:

runtime
cache
attachments
assets

es entfernt erster ...

Wenn Ihr Verzeichnis foo ist bereits unter Versionskontrolle, entfernen Sie es zuerst mit:

svn rm --keep-local foo

... dann ignorieren:

svn propset svn:ignore foo .

... und wenn Sie mehr als ein Verzeichnis ignoriert werden sollen (zum Beispiel build/ temp/ und *.tmp-Dateien), könnten Sie entweder tun es in zwei Schritten (die ersten ignoriert und bearbeiten Eigenschaften ignorieren (siehe andere Antworten hier) oder man könnte schreiben etwas wie

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

auf der Kommandozeile.

Wenn Sie die besondere SVN-Client verwenden TortoiseSVN , dann begehen, haben Sie die Möglichkeit der richtigen Artikel klicken und dann auf „hinzufügen Liste ignorieren“.

Der Befehl mehrere Einträge zu ignorieren ist ein wenig kompliziert und erfordert Schrägstriche.

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

Mit diesem Befehl wird alles genannt cache, tmp, null und and_so_on im aktuellen Verzeichnis ignorieren.

Ich hatte Probleme verschachtelte Verzeichnisse immer ignoriert werden; das Top-Verzeichnis wollte ich habe mit ‚svn status‘, aber alle subdirs zeigen würde, nicht ignorieren. Dies ist wahrscheinlich selbstverständlich für alle anderen, aber ich dachte, ich würde es teilen:

Beispiel:

  

/ trunk

     

/ trunk / cache

     

/ trunk / cache / subdir1

     

/ trunk / cache / subdir2

cd /trunk
svn ps svn:ignore . /cache
cd /trunk/cache
svn ps svn:ignore . *
svn ci

"Thank-you" svn für einen so hässlichen, falschen und schwierigen Weg, um Dateien zu ignorieren.

Also habe ich ein Skript geschrieben SVN-ignore-alle :

#!/bin/sh

# svn-ignore-all

# usage: 
#   1. run svn status to see what is going on at each step 
#   2. add or commit all files that you DO want to have in svn
#   3. remove any random files that you don't want to svn:ignore
#   4. run this script to svn:ignore everything marked '?' in output of `svn status`

svn status |
grep '^?' |
sed 's/^? *//' |
while read f; do
    d=`dirname "$f"`
    b=`basename "$f"`
    ignore=`svn propget svn:ignore "$d"`
    if [ -n "$ignore" ]; then
        ignore="$ignore
"
    fi
    ignore="$ignore$b"
    svn propset svn:ignore "$ignore" "$d"
done

Auch auf bestimmte Liste von Dateien / Pfadnamen zu ignorieren, können wir diese Variante benutzen SVN-ignore . Ich denke, SVN-ignore-alle wirklich wie xargs svn-ignorieren sollte.

#!/bin/sh

# svn-ignore

# usage:
#   svn-ignore file/to/ignore ...

for f; do
    d=`dirname "$f"`
    b=`basename "$f"`
    ignore=`svn propget svn:ignore "$d"`
    if [ -n "$ignore" ]; then
        ignore="$ignore
"
    fi
    ignore="$ignore$b"
    svn propset svn:ignore "$ignore" "$d"
done

Eine weitere Sache: Ich neige dazu, meine svn Auscheckvorgänge mit vielen zufälligen Dateien verschmutzen. Wenn es Zeit ist zu begehen, verschiebe ich diese Dateien in ein ‚altes‘ Unterverzeichnis, und sage svn ‚alte‘ zu ignorieren.

Bash Motto für mehrere ignoriert:

svn propset svn:ignore ".project"$'\n'".settings"$'\n'".buildpath" "yourpath"

Wenn Ihr Projektverzeichnis benannt ist / Projekt und Ihr Cache-Verzeichnis heißt / Projekt / Cache, dann müssen Sie auf / Projekt eine Subversion-Eigenschaft festzulegen. Der Eigenschaftsname soll. „Svn: ignore“ und der Wert der Eigenschaft sollte „Cache“ sein

Siehe

diese Seite im Subversion-Handbuch für weitere auf Eigenschaften.

Jasons Antwort wird den Trick. Doch statt svn der Einstellung: ignorieren „“ auf dem Cache-Verzeichnis, können Sie „Cache“ in der Eltern Verzeichnis des SVN aufzunehmen: ignore Eigenschaft, falls das Cache-Verzeichnis ist nicht immer vorhanden. Ich tue dies auf eine Reihe von „Wegwerf“ Ordner.

ZU HALTEN Verzeichnisse, die SVN ignorieren:

  1. Dadurch werden die Dateien aus dem Repository, löschen, aber das Verzeichnis unter SVN Kontrolle halten:
  

svn löschen --keep-local path / directory_to_keep / *

  1. setzen Sie das Verzeichnis (und alle Inhalte) zu ignorieren:
  

svn propset svn: ignore "*" path / directory_to_keep

Wenn Sie einen Frontend für SVN wie TortoiseSVN verwenden oder irgendeine Art von IDE-Integration, soll es auch eine Option ignorieren sein im selben Menü wie die Commit / Additions-Operation.

Stellen Sie die svn: ignore Eigenschaft . Die meisten UI SVN-Tools haben eine Möglichkeit, dies sowie die Befehlszeile Diskussion in der Verbindung zu tun.

Da Sie verwenden Versionen ist es eigentlich ganz einfach:

  • Sie sehen die ausgelagerte Kopie
  • Klicken Sie auf das Verzeichnis zu ignorieren
  • Im „Ignore-Box auf der rechten Seite klicken Sie auf Bearbeiten
  • Geben Sie *. * Alle Dateien zu ignorieren (oder * .jpg für nur JPG-Dateien, etc.)

Sehen Sie Ihre Hinter zu zerschneidet. Ich fand, dass einschließlich images/* in meiner ignorieren Einstellungsdatei nicht ./images/ ignorieren hat. Als ich svn status -u lief es zeigte noch ? images. Also, Ich habe gerade die ignorieren Einstellung nur images, keine Schrägstriche. eine Statusüberprüfung lief und dass klärte aus.

Gelöst mit Eclipse- in der nächsten Weise:

Zunächst einmal tun, um eine Synchronisation des Ordners zum Projekt:

  

Team -> synchronisieren

In der nächsten Ansicht, Team-Ansicht können Sie alle Ressourcen angezeigt, die Sie auf den SVN-Server begehen können.

So wählen Sie den Ressourcenordner der Ressource, die Sie ignorieren möchten, und dann können Sie ignorieren es mit

  

Team -> in dem svn:ignore.

Danach werden im Bestätigungsfenster, wähle die erste Option. „Ignoriert nach Namen“

Zum Beispiel, wenn ich die Zielordner und ihre .class Ressourcen ignorieren will, werde ich synchronisieren kann, und in der Synchronisierungs-Ansicht, ich werde den Zielordner wählen. Danach, ich werde wählen

  

team-> hinzufügen

svn:ignore und dann werde ich die erste Option im Bestätigungsfenster bestätigen.

Nach viel Zeit zu verlieren, suchen, wie diese einfache Tätigkeit zu tun, entschied ich mich zu schreiben ist es nicht schwer war eine anständige Erklärung zu finden.

Lassen Sie uns zunächst die Probenstruktur

$ svn st ? Projekt / trunk / Ziel ? Projekt / trunk / myfile.x

1 - zuerst den Editor, in myCASE vim konfigurieren Export SVN_EDITOR = vim

2 - „svn propedit svn: ignore Projekt / trunk /“ wird eine neue Datei öffnen und Sie können Ihre Dateien und Unterordner in uns Fallart „Ziel“ Speichern und schließen Datei und arbeitet

hinzufügen

$ svn st ? Projekt / trunk / myfile.x

Dank.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top