it-swarm.com.de

SVN ignorieren wie .gitignore

Wenn ich in Git ein Projekt mit vielen Projekten habe, nehmen wir an, viele Java Projekte, ich kann nur einen .gitignore Datei im Stammverzeichnis und es wird im gesamten Repository "respektiert".

Wie kann ich das für ein SVN-Projekt tun?

Wie kann ich beispielsweise eine "svn ignore" -Einstellung (über die cmd-Zeile) für einen .gitignore Wie den folgenden vornehmen?

*.class
*.jar
*.war
*.ear
target/
.classpath
.settings/
.project
.metadata
bin/

Der wichtigste Teil der Frage: Wie kann ich dafür sorgen, dass neue Ordner im Stammverzeichnis geöffnet werden? Beispiel:

Ich habe svn propset svn:ignore "*.class" . -R In meinem Root ausgeführt und ein Commit ausgeführt. Okay:

root
- folder1/
-- *.class (ignored)
-- other files (ok)
- folder2/
-- *.class (ignored)
-- other files (ok)

Jetzt erstelle ich Ordner 3. Die vorherigen svn:ignore Einstellungen werden nicht übernommen, oder? Gibt es eine Möglichkeit, es so zu machen?

40
caarlos0

Sie können svn:ignore. Im Allgemeinen müssen Sie SVN anweisen, spezielle Eigenschaften auf die Dateien anzuwenden:

svn propset svn:ignore "*.jpg" .

(Beachten Sie den Punkt am Ende des Befehls.)

Für mehrere Dateien können Sie ein Zeilenumbruchzeichen hinzufügen.

Tippe genau so wie hier mit Zeilenumbrüchen:

svn propset svn:ignore "file1
file2
file3" dir1

Überprüfen Sie, ob die Dateien ignoriert werden:

svn status --no-ignore

Dann geben Sie den Code ein.

Und ja, es sind bereits viele doppelte Fragen verfügbar.

Sie können meinen Favoriten beziehen svn cheatguide .

Sie können eine Datei erstellen, svn-ignore.txt, mit Ihren ignorierten Dateien und Verzeichnissen:

*.class
*.jar
*.war
*.ear
 target/
.classpath
.settings/
.project
.metadata
 bin/

Versuchen Sie nun Folgendes:

svn propset svn:ignore -RF /root/svn-ignore.txt . [dot for current dir]

-R ist für rekursiv.

65
Amarpreet Singh

Ich habe dieses Problem etwas anders gelöst. Dies funktioniert nur, wenn Sie eine Bash Shell verwenden und Perl installiert haben, aber das ist so ziemlich jeder Mac- und Linux-Computer.

Fügen Sie Folgendes zu Ihren Dateien .bashrc Und .bash_profile Hinzu:

alias _ss="svn status | egrep -v '`cat .svnignore|Perl -p -e 's/\n/|/'`'"

Vergessen Sie nicht, Ihr Terminal neu zu starten oder tun Sie Folgendes:

source ~/.bashrc
(or .bash_profile if that's what you used)

Erstellen Sie nun eine Datei mit dem Namen .svnignore und legen Sie sie in dem Verzeichnis ab, in dem Ihr Repository ausgecheckt ist.

files/to/ignore
another/file
tmp
node_modules

Wenn du jetzt rennst

_ss

im Stammverzeichnis Ihrer Arbeitskopie wird die .svnignore-Datei gelesen und alles darin ignoriert.

Ich versioniere die .svnignore-Datei genauso wie eine .gitignore-Datei.

HINWEIS: Dies betrifft nur den Befehl svn status und hindert Sie nicht daran, ignorierte Dateien hinzuzufügen oder zu bestätigen.

0
Jaybill