Ich möchte nicht, dass ein Verzeichnis mit dem Namen build
oder dist
in mein SVN aufgenommen wird, egal wie tief es im Baum ist.
Ist das möglich? In git habe ich gerade gesetzt
build
dist
in meinem .gitignore
an der Wurzel und es ignoriert rekursiv. Wie mache ich das mit svn? Bitte sag mir nicht, dass ich für jedes Elternverzeichnis ein Requisit machen soll ...
svn
version-control
ignore
Paul Tarjan
quelle
quelle
Antworten:
Ab Subversion 1.8 gibt es jetzt die
svn:global-ignores
Eigenschaft, die wie,svn:ignore
aber rekursiv funktioniert (setzen Sie diese also in Ihrem Verzeichnis der obersten Ebene).quelle
global-ignores
in der~/.subversion/config
Datei, aber auch die vererbbaresvn:global-ignores
Eigenschaft, die für ein Verzeichnis in einem SVN-Repo festgelegt ist, sowiesvn:ignore
- können Sie eine Zusammenfassung dieser verschiedenen Optionen und deren Vergleich bereitstellen? Wie wirkt sich die--recursive
Flagge auch auf sie aus?obj
Ordner wurde immer noch angezeigt ] ( stackoverflow.com/questions/50960188/… ), können Sie mir helfen, einen Blick darauf zu werfen?svn propset
nimmt--recursive
als Option, so können Sie dies mit zwei Nachteilen tun:svn:ignore
Eigenschaft festzulegen, wenn Sie ein neues Verzeichnis hinzufügenquelle
Dies ist nicht möglich. Es gibt nur zwei Ignoriermechanismen in Subversion
svn:ignore
(die nicht rekursiv sind) undglobal-ignores
(die nicht spezifisch für ein Repository sind).quelle
Das funktioniert bei mir:
quelle
Fügen Sie Ihrer Datei ~ / .subversion / config oder / etc / subversion / config Folgendes hinzu:
quelle
Es ist möglich, Build- und Dist-Verzeichnisse zu ignorieren, indem die Verzeichnisse aus der Versionskontrolle entfernt werden. Der Trick besteht darin, die Option --keep-local zu verwenden, um das Verzeichnis in der Arbeitskopie zu belassen. Beispielsweise:
Das Verzeichnis wird nicht mehr durch Subversion verfolgt, befindet sich jedoch weiterhin in Ihrer Arbeitskopie, um die Compilerausgabe usw. zu speichern.
Prost, Joe
quelle
Zum Beispiel die Ordnerstruktur:
Es ist gut, dist-Inhalte vor dem Befehl ignore zu löschen, damit dist für Zweige leer ist.
Arbeitete für mich, heute getestet. Hier ist die Seite, die es ein bisschen erklärt
quelle
Um alle diese Dateien in allen Repositorys zu ignorieren, können Sie
global-ignores
Ihrer Benutzerkonfigurationsdatei eine hinzufügen .Siehe Konfigurationsoptionen
Leider gibt es dafür keine Option pro Repository. Es ist im Grunde genommen pro Benutzer oder pro Verzeichnis, also ist das Vielfache
svn:ignores
wahrscheinlich der richtige Weg, so ärgerlich es auch sein mag.quelle
Sie müssen zuerst in den obersten Ordner Ihrer Arbeitskopie wechseln und dort eine Datei erstellen (z. B. .svnignore), in der Sie alle Muster platzieren sollten, die Sie ignorieren möchten, z. B. (für ein Android-Projekt):
Anschließend führen Sie den folgenden Befehl aus (denken Sie daran, dass Sie sich im obersten Ordner Ihrer Arbeitskopie befinden müssen):
Dies funktioniert nur für Ordner und Dateien, die noch nicht der Versionskontrolle unterliegen. Wenn Sie möchten, dass ein Ordner (oder eine Datei), der / der versioniert wird, ebenfalls ignoriert wird, entfernen Sie ihn aus der Versionskontrolle, indem Sie den folgenden Befehl ausführen:
Ich habe all dies aus diesem großartigen Artikel erhalten, der alles erklärt: http://superchlorine.com/2013/08/getting-svn-to-ignore-files-and-directories/
quelle
Ab Subversion 1.8 ist es möglich, Global-Ignores für das aktuelle Repository festzulegen.
Sie können auch einen Ordner mit dem Namen .svnignore erstellen und Bedingungen schreiben.
Denken Sie daran, dass eine Bedingung pro Zeile vergeben ist. Die Einstellung von build / * oder dist / debug ist vergebens. Dann machen Sie den Befehl:
quelle
Erstellen Sie eine Datei und fügen Sie Ihre Ignorierungen hinzu
Ingore-Liste:
Wenden Sie dann den folgenden Befehl an
Verzeichnis ist der Name Ihres Verzeichnisses, Sie können auch Verzeichnis / Unterverzeichnis unterkategorisieren. Oder verwenden Sie *, um das aktuelle Verzeichnis zu notieren, in dem Sie sich befinden.
Dies setzt voraus, dass Sie bash als Shell verwenden
quelle
Dabei ist svn_ignore_rules eine Datei, die die Ignorierregeln enthält - eine pro Zeile
Natürlich müssen Sie es jedes Mal neu ausführen, wenn Sie Ihrem Repo ein neues Verzeichnis hinzufügen
svn_ignore_rules kann auch als in das Repo eingecheckt betrachtet werden, um von anderen Benutzern, die Schreibzugriff auf das Repo haben, wiederverwendbar zu sein
quelle
quelle
set EDITOR=notepad
hatsvn propedit svn:ignore .
gut funktioniert ...Da es für dieses wahrscheinlich häufige Problem keine Lösung zu geben scheint, möchte ich unsere Lösung teilen. Wie die anderen bereits klargestellt haben, können Sie entweder die
svn:ignore
Eigenschaft verwenden, dies gilt für ein einzelnes Verzeichnis (und daher nicht für neue), oder Sie verwenden,global-ignores
die für einen einzelnen Benutzer gilt (aber nicht zum Repository gehört).Um das Leben ein bisschen einfacher zu machen, habe ich eine Registrierungsdatei mit dem Namen erstellt
Settings.Svn.reg
und sie dem Stammverzeichnis des Repositorys hinzugefügt. Jetzt kann jeder einmal auf diese Reg-Datei doppelklicken und hat die Einstellungen vorgenommen.Ich würde mich sehr über eine Lösung im SVN-Repository freuen. Wenn also jemand weiß, möchten Sie diese gerne teilen?
quelle
Eine Möglichkeit wäre, dem Pre- oder Post-Commit-Hook eine Art Check hinzuzufügen, aber es ist einfach, wenn Sie den Repo-Server nicht besitzen.
quelle