Wie bekomme ich SVN um Mac "._" Dateien zu ignorieren?

8

Auf meinen Entwicklungsserver wird von mehreren OSX-Benutzern zugegriffen, und ihr Betriebssystem lßt viele unnötige Dateien um den Ort herum, die alle mit Punktunterstrich beginnen (" ._ "). Ich weiß, dass OSX gesagt werden kann, diese nicht auf Netzlaufwerken zu erstellen, aber sie schleichen sich immer noch ein. Ich möchte, dass SVN alles ignoriert, was mit " ._ " anfängt, aber ich kann es anscheinend nicht zum Laufen bringen Es sieht so aus, als sollte es einfach sein. Ich habe " ._* " zum globalen SVN-Ignoriermuster hinzugefügt, aber SVN versucht immer noch, diese Dateien hinzuzufügen und zu committen. Kann mir jemand sagen, was ich falsch mache? Mein vollständiges SVN-Ignoriermuster ist:

%Vor%

Ich weiß nicht, ob es einen Unterschied macht, aber ich versuche, dies sowohl auf dem Ubuntu- als auch auf dem Ubuntu-Server einzustellen, indem ich die Datei / etc / subversion / config bearbeite.

    
Dave Child 28.02.2011, 16:10
quelle

6 Antworten

11

Ich habe einen Pre-Commit-Hook , der zur Rechnung passen könnte. Mit diesem Hook können Sie die Verwendung bestimmter Dateinamen basierend auf einem regulären Ausdruck vollständig verbieten. Sie können jede Datei verbieten, die mit "._" beginnt. Wenn jemand versucht, eine Datei hinzuzufügen, kann sie diese nicht übernehmen.

Nach ein paar abgewiesenen Commits aufgrund von "._" Dateien, aktualisieren die Entwickler ihre global-ignores um diese Dateien einzuschließen.

Sie können global-ignores nicht für alle Benutzer festlegen, aber dieser Vorab-Hook ermutigt Ihre Benutzer, sie selbst festzulegen.

Es funktioniert nach dem gleichen Prinzip, nach dem Steckdosen den Benutzer davon abhalten, eine Gabel in sie zu stecken. Nach dem dritten oder vierten Mal erfahren selbst die hartnäckigsten Entwickler, dass es keine gute Idee ist.

    
David W. 03.03.2011, 19:48
quelle
3
___ answer5185719 ___

Ich habe einen Pre-Commit-Hook , der zur Rechnung passen könnte. Mit diesem Hook können Sie die Verwendung bestimmter Dateinamen basierend auf einem regulären Ausdruck vollständig verbieten. Sie können jede Datei verbieten, die mit "._" beginnt. Wenn jemand versucht, eine Datei hinzuzufügen, kann sie diese nicht übernehmen.

Nach ein paar abgewiesenen Commits aufgrund von "._" Dateien, aktualisieren die Entwickler ihre %code% um diese Dateien einzuschließen.

Sie können %code% nicht für alle Benutzer festlegen, aber dieser Vorab-Hook ermutigt Ihre Benutzer, sie selbst festzulegen.

Es funktioniert nach dem gleichen Prinzip, nach dem Steckdosen den Benutzer davon abhalten, eine Gabel in sie zu stecken. Nach dem dritten oder vierten Mal erfahren selbst die hartnäckigsten Entwickler, dass es keine gute Idee ist.

    
___ answer5209403 ___

Subversion verwendet die Funktion fnmatch () für die Ignores. Sie müssen also die Mustervergleichsnotation dieser Funktion verwenden.

Der von Ihnen gepostete Bereich "Ignorieren" sollte funktionieren. Sind Sie sicher, dass Sie es in der richtigen Konfigurationsdatei einstellen? Es gibt mehrere Orte , wo svn diese liest.

  

Auf Unix-ähnlichen Systemen erscheint dieser Bereich als Verzeichnis namens .subversion im Home-Verzeichnis des Benutzers.   Neben dem Konfigurationsbereich pro Benutzer erkennt Subversion auch das Vorhandensein eines systemweiten Konfigurationsbereichs. [..] Auf Unix-ähnlichen Plattformen wird der systemweite Konfigurationsbereich voraussichtlich das Verzeichnis / etc / subversion sein;

    
___ answer5172127 ___

Fügt SVN Dateien keine lokale Operation hinzu? In diesem Fall sollten die benutzerspezifischen Einstellungen die Dateien ignorieren.

    
___ answer5172193 ___

Es ist normal, ._ * -Dateien zu erhalten, da die Entwickler direkt auf dem Server arbeiten, daher werden ._-Dateien beim Bearbeiten von Dateien direkt erzeugt.

Sie sollten stattdessen eine Arbeitskopie auf ihrem lokalen Rechner holen (siehe Subversion-Dokumentation, wie man es von einem Samba-Server macht), dann verhindert das auf jedem Rechner gesetzte Ignoriermuster, dass sie ._ * -Dateien hinzufügen, wenn sie es tun verpflichten. Mit anderen Worten, diese Dateien bleiben "auf ihrem Rechner".

    
___ tag123svn ___ Verwenden Sie dieses Tag für Fragen zu SVN (Subversion), einem zentralisierten Open-Source-Versionskontrollsystem, das unter der Apache-Lizenz vertrieben wird. ___ answer5183781 ___

Können Sie einen clientseitigen Hook erstellen, um die Dateien ._ * rekursiv zu löschen?

Ich habe einen Alias ​​in meiner Bash-Shell, um alle .DS_Store-Ordner zu entfernen, die Verbindung zu Subversion ist etwas, das ich untersuchen sollte ...

    
___ qstnhdr ___ Wie bekomme ich SVN um Mac "._" Dateien zu ignorieren? ___ qstntxt ___

Auf meinen Entwicklungsserver wird von mehreren OSX-Benutzern zugegriffen, und ihr Betriebssystem lßt viele unnötige Dateien um den Ort herum, die alle mit Punktunterstrich beginnen (" %code% "). Ich weiß, dass OSX gesagt werden kann, diese nicht auf Netzlaufwerken zu erstellen, aber sie schleichen sich immer noch ein. Ich möchte, dass SVN alles ignoriert, was mit " %code% " anfängt, aber ich kann es anscheinend nicht zum Laufen bringen Es sieht so aus, als sollte es einfach sein. Ich habe " %code% " zum globalen SVN-Ignoriermuster hinzugefügt, aber SVN versucht immer noch, diese Dateien hinzuzufügen und zu committen. Kann mir jemand sagen, was ich falsch mache? Mein vollständiges SVN-Ignoriermuster ist:

%Vor%

Ich weiß nicht, ob es einen Unterschied macht, aber ich versuche, dies sowohl auf dem Ubuntu- als auch auf dem Ubuntu-Server einzustellen, indem ich die Datei / etc / subversion / config bearbeite.

    
___
Joshua McKinnon 08.03.2011 07:03
quelle
1

Subversion verwendet die Funktion fnmatch () für die Ignores. Sie müssen also die Mustervergleichsnotation dieser Funktion verwenden.

Der von Ihnen gepostete Bereich "Ignorieren" sollte funktionieren. Sind Sie sicher, dass Sie es in der richtigen Konfigurationsdatei einstellen? Es gibt mehrere Orte , wo svn diese liest.

  

Auf Unix-ähnlichen Systemen erscheint dieser Bereich als Verzeichnis namens .subversion im Home-Verzeichnis des Benutzers.   Neben dem Konfigurationsbereich pro Benutzer erkennt Subversion auch das Vorhandensein eines systemweiten Konfigurationsbereichs. [..] Auf Unix-ähnlichen Plattformen wird der systemweite Konfigurationsbereich voraussichtlich das Verzeichnis / etc / subversion sein;

    
Stefan 06.03.2011 08:06
quelle
0

Fügt SVN Dateien keine lokale Operation hinzu? In diesem Fall sollten die benutzerspezifischen Einstellungen die Dateien ignorieren.

    
Lindydancer 02.03.2011 19:07
quelle
0

Es ist normal, ._ * -Dateien zu erhalten, da die Entwickler direkt auf dem Server arbeiten, daher werden ._-Dateien beim Bearbeiten von Dateien direkt erzeugt.

Sie sollten stattdessen eine Arbeitskopie auf ihrem lokalen Rechner holen (siehe Subversion-Dokumentation, wie man es von einem Samba-Server macht), dann verhindert das auf jedem Rechner gesetzte Ignoriermuster, dass sie ._ * -Dateien hinzufügen, wenn sie es tun verpflichten. Mit anderen Worten, diese Dateien bleiben "auf ihrem Rechner".

    
CharlesB 02.03.2011 19:13
quelle
0

Können Sie einen clientseitigen Hook erstellen, um die Dateien ._ * rekursiv zu löschen?

Ich habe einen Alias ​​in meiner Bash-Shell, um alle .DS_Store-Ordner zu entfernen, die Verbindung zu Subversion ist etwas, das ich untersuchen sollte ...

    
enricopulatzo 03.03.2011 16:47
quelle

Tags und Links