Wie ignoriere ich ein Verzeichnis mit SVN?
-
02-07-2019 - |
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:
- svn export eine saubere Kopie Ihrer Ordner (ohne
.svn
versteckten Ordner) - svn del die lokalen und Repository,
- svn ci
- Kopieren Sie zurück die Ordner
- svn st und bestätigen Sie die Ordner wie werden markiert '?'
- 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
- Mit "o" Sie können eine neue Zeile öffnen
- Geben Sie in allen Ordnernamen Sie ignorieren möchten
- Hit 'esc' aus dem Bearbeitungsmodus zu entkommen
- 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
Siehediese 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:
- 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 / *
- 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.