Dans Git , si j'ai un projet avec beaucoup de projets à l'intérieur, supposons que beaucoup de projets Java, je peux simplement créer un .gitignore
fichier à la racine et il sera "respecté" dans tout le référentiel.
Comment puis-je faire cela pour un projet SVN?
Par exemple, comment puis-je faire une configuration "svn ignorer" (via la ligne cmd) pour un .gitignore
comme suit?
*.class
*.jar
*.war
*.ear
target/
.classpath
.settings/
.project
.metadata
bin/
La partie la plus importante de la question: comment puis-je le faire fonctionner dans de nouveaux dossiers à l'intérieur de la racine? Exemple:
Iran svn propset svn:ignore "*.class" . -R
dans ma racine et commit. D'accord:
root
- folder1/
-- *.class (ignored)
-- other files (ok)
- folder2/
-- *.class (ignored)
-- other files (ok)
Maintenant, je crée le dossier 3. Le précédent svn:ignore
les paramètres ne s'appliqueront pas, non? Y a-t-il un moyen de le faire?
Vous pouvez utiliser svn:ignore
. Vous devez généralement dire à SVN d'appliquer des propriétés spéciales aux fichiers:
svn propset svn:ignore "*.jpg" .
(Notez le point à la fin de la commande.)
Pour plusieurs fichiers, vous pouvez ajouter un caractère de nouvelle ligne.
Tapez exactement comme ici avec des sauts de ligne:
svn propset svn:ignore "file1
file2
file3" dir1
Vérifiez que les fichiers sont ignorés:
svn status --no-ignore
Validez ensuite le code.
Et oui, de nombreuses questions en double sont déjà disponibles.
Vous pouvez vous référer à mon préféré svn cheatguide .
Vous pouvez créer un fichier, svn-ignore.txt
, avec vos fichiers et répertoires ignorés:
*.class
*.jar
*.war
*.ear
target/
.classpath
.settings/
.project
.metadata
bin/
Essayez maintenant ce qui suit:
svn propset svn:ignore -RF /root/svn-ignore.txt . [dot for current dir]
-R
est récursif.
J'ai résolu ce problème d'une manière légèrement différente. Cela ne fonctionnera que si vous utilisez un shell Bash et que Perl est installé, mais c'est à peu près toutes les machines Mac et Linux.
Ajoutez ce qui suit à votre .bashrc
et .bash_profile
des dossiers:
alias _ss="svn status | egrep -v '`cat .svnignore|Perl -p -e 's/\n/|/'`'"
N'oubliez pas de redémarrer votre terminal ou de faire:
source ~/.bashrc
(or .bash_profile if that's what you used)
Créez maintenant un fichier appelé . Svnignore, et placez-le dans le répertoire où votre référentiel est extrait.
files/to/ignore
another/file
tmp
node_modules
Maintenant, lorsque vous exécutez
_ss
dans le répertoire racine de votre copie de travail, il lira le fichier .svnignore et ignorera tout ce qu'il contient.
Je versionne le fichier .svnignore de la même manière que je versionnerais un fichier .gitignore.
REMARQUE: Cela n'affecte que la commande svn status, et cela ne vous empêchera pas d'ajouter/de valider des fichiers ignorés.