Beim Import von Verzeichnissen aus dem Mud in ein git Repository und bei der
Synchronisierung zwischen Repositories und Mudlib werden die folgenden
Verzeichnisse und Dateien komplett ignoriert.

# first exclude some SCM directories
- .svn/
- .git/
- .gitignore
- CVS/
# exclude savefiles
- *.o
#exclude logs and rep files
- *.log
- log/
- *.o
- save/
- *.rep
- *.err
# backups of editors
- *~
- *.swp
# this should als never be imported - marks a directory to be imported.
- git-mud-import
- gerrit-create-project
- git-import.log
# keine gepackten Archive
- *.gz
- *.bz2
- *.zip
- *.tar
- topliste.mag
- topliste.txt
- *topliste*
- save/idiotenliste
