Ich habe gerade angefangen, SVN zu verwenden, und ich habe ein Cache-Verzeichnis, das ich unter Quellcodeverwaltung nicht benötige. Wie kann ich das gesamte Verzeichnis / Ordner mit SVN ignorieren?
Ich verwende Versionen und TextMate unter OS X und der Befehlszeile.
svn
version-control
directory
Gilean
quelle
quelle
Antworten:
Legen Sie die
svn:ignore
Eigenschaft des übergeordneten Verzeichnisses fest:Wenn Sie mehrere Dinge ignorieren müssen, trennen Sie den Eigenschaftswert durch Zeilenumbrüche. In diesem Fall ist es einfacher, den Eigenschaftswert mit einem externen Editor zu bearbeiten:
quelle
svn rm --keep-local dirname
zuerst. (Meine svn stat Ausgabe war riesig und ich stieß meinen Kopf für eine Weile in diese.)svn propset svn:ignore -F file.txt .
svn:ignore
und nichtsvn::ignore
wie ich. Sie können beliebige Eigenschaften festlegen, sodass letztere auf OK gesetzt werden und Sie die Eigenschaft anzeigen und bearbeiten können. SVN ignoriert jedoch nicht die von Ihnen aufgelisteten Dateien.Hier ist ein Beispiel für eine Verzeichnisstruktur:
Wenn
project
Sie sehen, dass Ihr Cache-Verzeichnis nicht hinzugefügt wurde und als solches angezeigt wird.Führen Sie die folgenden Schritte aus, um die Eigenschaft ignore festzulegen
Wo
svn:ignore
ist der Name der Eigenschaft, die Sie festlegen,cache
ist der Wert der Eigenschaft und.
ist das Verzeichnis, in dem Sie diese Eigenschaft festlegen. Es sollte das übergeordnete Verzeichnis descache
Verzeichnisses sein, das die Eigenschaft benötigt.So überprüfen Sie, welche Eigenschaften festgelegt sind:
Um den Wert von zu sehen
svn:ignore
:So löschen Sie zuvor festgelegte Eigenschaften:
quelle
dirname
. Wenn Sie beispielsweise bei der Eingabesvn propset svn:ignore dirname
zulassen, dass die (Bash-) Shell den Verzeichnisnamen für Sie ausfüllt, wird dieser abschließende Schrägstrich hinzugefügt, sodass Sie den Befehl erhaltensvn propset svn:ignore dirname/
, der nicht dazu führt, dass der Ordner ignoriert wird. Zumindest war das meine Erfahrung.Wichtig zu erwähnen:
In der Kommandozeile können Sie nicht verwenden
Dadurch werden auch die ignorierten Dateien hinzugefügt , da die Befehlszeile erweitert wird
*
und daher davonsvn add
ausgegangen wird, dass alle Dateien hinzugefügt werden sollen. Verwenden Sie daher stattdessen Folgendes:quelle
svn add --force *
NICHT funktionieren. Verwenden Sie den Punkt, nicht den Stern.Da ich eine Weile versucht habe, dies zum Laufen zu bringen, sollte beachtet werden, dass Sie, wenn die Dateien bereits in SVN vorhanden sind, diese benötigen
svn delete
und dann diesvn:ignore
Eigenschaft bearbeiten müssen .Ich weiß, dass das offensichtlich erscheint, aber sie tauchten immer wieder wie
?
in meinersvn status
Liste auf, als ich dachte, es würde sie lokal einfach ignorieren.quelle
Wenn Sie dies mit dem Befehlszeilentool svn tun, möchten Sie Folgendes eingeben:
Dadurch wird der Texteditor Ihrer Wahl geöffnet. Geben Sie dann '*' ein, um alles darin zu ignorieren, und speichern Sie + Beenden. Dies schließt das Verzeichnis selbst in svn ein. Ignorieren Sie jedoch alle darin enthaltenen Dateien. Um das Verzeichnis zu ignorieren, verwenden Sie die Pfad des übergeordneten Elements, und geben Sie dann den Namen des Verzeichnisses in die Datei ein. Führen Sie nach dem Speichern ein Update aus ('svn up') und überprüfen Sie den entsprechenden Pfad.
quelle
Stellen Sie die
svn:ignore
Eigenschaft für das übergeordnete Verzeichnis fest:Dadurch wird jeder aktuelle Wert von überschrieben
svn:ignore
. Sie können den Wert bearbeiten mit:Welches wird Ihren Editor öffnen. Sie können mehrere Muster hinzufügen, eines pro Zeile.
Sie können den aktuellen Wert anzeigen mit:
Wenn Sie eine grafische Benutzeroberfläche verwenden, sollte hierfür eine Menüoption vorhanden sein.
quelle
svn ps svn:ignore . 'cachedir'
führt zucachedir is not under version control
. Wechsel zusvn ps svn:ignore 'cachedir' .
für mich gearbeitetVielen Dank für alle Beiträge oben. Ich möchte nur einige zusätzliche Informationen aus meinen Erfahrungen teilen, während ich Dateien ignoriere.
Wenn die Ordner bereits unter Revisionskontrolle stehen
Nach dem SVN-Import und dem SVN-Co die Dateien, was wir normalerweise zum ersten Mal tun.
Alle Ordner für Laufzeitcaches und Anhänge unterliegen der Versionskontrolle. Bevor Sie svn ps svn: ignorieren , müssen Sie es aus dem Repository löschen.
Mit SVN Version 1.5 können wir verwenden
svn del --keep-local your_folder
, aber für eine frühere Version ist meine Lösung:.svn
versteckten Ordner)Wenn mehr als ein Ordner ignoriert werden muss
svn:ignore
svn pe
Sie müssen die Textdatei bearbeiten, und Sie können diesen Befehl bei Bedarf verwenden, um Ihren Texteditor mit vi festzulegen :Die Datei sieht ungefähr so aus:
quelle
svn propset svn:ignore -F .ignorethesefiles .
, wodurch der Inhalt der Datei verwendet wird. Ich mag es, es herumzuhalten, damit Sie wissen, was ignoriert wird. Änderungen erfordern eine Nachverfolgung.Entfernen Sie es zuerst ...
Wenn Ihr Verzeichnis
foo
bereits unter Versionskontrolle steht, entfernen Sie es zuerst mit:... dann ignorieren:
quelle
... und wenn Sie mehr als ein Verzeichnis (z. B.
build/
temp/
und*.tmp
Dateien) ignorieren möchten , können Sie dies entweder in zwei Schritten tun (das erste ignorieren und die Ignoriereigenschaften bearbeiten (siehe andere Antworten hier) oder so etwas schreibenin der Kommandozeile.
quelle
Wenn Sie den bestimmten SVN-Client TortoiseSVN verwenden , haben Sie beim Festschreiben die Möglichkeit, mit der rechten Maustaste auf Elemente zu klicken und "Zur Ignorierliste hinzufügen" auszuwählen.
quelle
Der Befehl zum Ignorieren mehrerer Einträge ist etwas schwierig und erfordert Backslashes.
Dieser Befehl wird alles genannt ignorieren
cache
,tmp
,null
, undand_so_on
im aktuellen Verzeichnis.quelle
svn propset svn:ignore -F .ignorethesefiles .
ermöglicht es Ihnen, eine Datei zu verwenden. Und wie gesagt, Sie haben immer Propedit.Ich hatte Probleme, verschachtelte Verzeichnisse zu ignorieren. Das oberste Verzeichnis, das ich ignorieren wollte, wurde nicht mit 'svn status' angezeigt, aber alle Unterverzeichnisse haben es getan. Dies ist wahrscheinlich für alle anderen selbstverständlich, aber ich dachte, ich würde es teilen:
BEISPIEL:
quelle
"Danke" svn für solch eine abscheuliche, falsche und schwierige Art, Dateien zu ignorieren.
Also schrieb ich ein Skript svn-ignore-all :
Um eine bestimmte Liste von Dateien / Pfadnamen zu ignorieren, können wir diese Variante svn-ignore verwenden . Ich denke, svn-ignore-all sollte wirklich wie xargs svn-ignore sein.
Noch etwas: Ich neige dazu, meine SVN-Kassen mit vielen zufälligen Dateien zu verschmutzen. Wenn es Zeit zum Festschreiben ist, verschiebe ich diese Dateien in ein 'altes' Unterverzeichnis und fordere svn auf, 'alt' zu ignorieren.
quelle
Bash Oneliner für mehrfache Ignorierungen:
quelle
Wenn Ihr Projektverzeichnis / Project und Ihr Cache-Verzeichnis / Project / Cache heißt, müssen Sie eine Subversionseigenschaft für / Project festlegen. Der Eigenschaftsname sollte "svn: ignore" sein und der Eigenschaftswert sollte "Cache" sein.
Weitere Informationen zu Eigenschaften finden Sie auf dieser Seite im Subversion-Handbuch.
quelle
Jasons Antwort wird es schaffen. Anstatt jedoch svn: auf "zu ignorieren" zu setzen. Im Cache-Verzeichnis möchten Sie möglicherweise "cache" in die Eigenschaft svn: ignore des übergeordneten Verzeichnisses aufnehmen, falls das Cache-Verzeichnis nicht immer vorhanden ist. Ich mache das auf einer Reihe von "Wegwerf" -Ordnern.
quelle
VERZEICHNISSE BEHALTEN, DIE SVN IGNORIEREN WIRD:
quelle
Wenn Sie ein Frontend für SVN wie TortoiseSVN oder eine Art IDE-Integration verwenden, sollte im selben Menü wie beim Festschreiben / Hinzufügen auch eine Ignorieroption vorhanden sein.
quelle
Legen Sie die Eigenschaft svn: ignore fest . Die meisten UI-SVN-Tools bieten eine Möglichkeit dazu sowie die Befehlszeilendiskussion im Link.
quelle
Da Sie Versionen verwenden, ist es eigentlich ganz einfach:
quelle
Achten Sie auch auf Ihre nachgestellten Schrägstriche. Ich habe festgestellt, dass das Einfügen
images/*
in meine Ignorier-Einstellungsdatei nicht ignoriert wurde./images/
. Als ich liefsvn status -u
, zeigte es sich immer noch? images
. Also habe ich die Ignoriereinstellung einfach auf "images
Keine Schrägstriche" geändert . Hat eine Statusprüfung durchgeführt und das hat es gelöscht.quelle
Auf die nächste Weise mit Eclipse gelöst :
Führen Sie zunächst eine Synchronisierung Ihres Ordners mit dem Projekt durch:
In der nächsten Ansicht, Teamansicht, sehen Sie alle Ressourcen, die Sie für den SVN-Server festschreiben können.
Wählen Sie also den Ressourcenordner der Ressource aus, die Sie ignorieren möchten, und ignorieren Sie ihn dann mit
Wählen Sie danach im Bestätigungsfenster die erste Option: "Nach Namen ignorieren".
Wenn ich beispielsweise den Zielordner und seine .class-Ressourcen ignorieren möchte, synchronisiere ich und wähle in der Synchronisierungsansicht den Zielordner aus. Danach werde ich auswählen
bis
svn:ignore
und dann bestätige ich die erste Option im Bestätigungsfenster.quelle
Nachdem ich viel Zeit verloren hatte, um nach dieser einfachen Aktivität zu suchen, entschied ich mich zu posten, dass es nicht schwer war, eine anständige Erklärung zu finden.
Lassen Sie zuerst die Probenstruktur
$ svn st? Projekt / Kofferraum / Ziel? project / trunk / myfile.x
1 - Konfigurieren Sie zuerst den Editor in mycase vim export SVN_EDITOR = vim
2 - "svn propedit svn: Projekt / Trunk / ignorieren" öffnet eine neue Datei und Sie können Ihre Dateien und Ihr Unterverzeichnis in uns hinzufügen. Geben Sie "Ziel" ein, speichern und schließen Sie die Datei und funktioniert
$ svn st? project / trunk / myfile.x
Vielen Dank.
quelle