By default Nextcloud
- Does not sync hidden files (files having
.*
naming pattern) which are critical for coding projects. - Synchronises unneeded large files that should be left out as they can be recreated on each machine instantly (
node_modules
, C/C++ compilation intermediate products, a.o.) - Synchronises unneeded IDE caching, layout, logging etc. files.
This list tries to list all files that could/should be excluded when Synch hidden files
option is turned on and offers a settings file that can be supplied to Nextcloud.
See sync-exclude.lst
contained in repo.
It includes all patterns discussed below.
To install:
- Quit Nextcloud
- Place
sync-exclude.lst
in correct location- macOS
~/Library/Preferences/Nextcloud/sync-exclude.lst
or (for older versions)~/Library/Application\ Support/Nextcloud/sync-exclude.lst
- MSW10
%AppData%\Nextcloud\sync-exclude.lst
or%LocalAppData%\Nextcloud\sync-exclude.lst
- File may not exist in path after fresh install. Within Nextcloud Settings under General tab click Edit Ignored files to bring up modal - click Restore Defaults, it should create file and fill it with Built in patterns discussed below.
- macOS
- Run Nextcloud client
- Pause synchronisation
- Within Settings under General tab click Edit Ignored files to bring up modal
- Enable Sync hidden files
- Check Files ignored by patterns list, it should include those specified in
sync-exclude.lst
- Press OK
- Unpause synchronisation (or yet better, restart Nextcloud client once more)
By allowing syncing of hidden files, we will sync
- Git -
.git
directories and all.git*
conf files - Web development stuff such as
.atomignore
,.babelrc
,.env
,.eslintignore*
,.eslintrc*
,.rsyncexclude
,.stylelintrc*
a.o.
By allowing syncing of hidden files there are lots of hidden files that should be excluded anyways. Apart from those we should make patterns to leave out also non-hidden files such as
- IDEs caches: Development on Visual Code, Atom, Sublime
- IDEs caches: C/C++/ObjC++ desktop and handheld development on Xcode, Code::Blocks, Visual Studio
- IDEs caches: C embedded development on Eclipse, Visual Studio
- IDEs caches: Old projects that used NetBeans
- Package manager directories, that are large, but can be easily recreated (i.e.
node_modules/
) - Build side products
- OS cache, hidden files
A good example in case of programming is leaving out *.obj
file sync. But we cannot, as extension is same as Wavefront OBJ File that we want to sync.
These patterns are Nextcloud specific, they are static hardcoded, defined outside sync-exclude.lst
.
Pattern | Allow deletion | Description | Notes |
---|---|---|---|
.csync_journal.db* |
|||
._sync_*.db* |
|||
.sync_*.db* |
These patterns are set out of box. Meaning that a clean install of Nextcloud would put sync-exclude.lst
in locations mentioned above and the file would have these patterns specified in it.
Pattern | Allow deletion | Description | Notes |
---|---|---|---|
Current version | |||
*~ |
BSD/nix | ||
~$* |
|||
.~lock.* |
file locking | ||
~*.tmp |
temporary files | ||
*.~* |
Y | temporary files | |
Icon\r* |
Y | icon folder, macOS | |
.DS_Store |
Y | dir attributes, macOS | |
.ds_store |
Y | dir attributes, macOS | |
*.textClipping |
text clipping, macOS | ||
._* |
file information, thumbnails for HFS+/Unix/UFS | ||
Thumbs.db |
Y | image file caches, MSW | |
photothumb.db |
Y | thumbnails by PhotoScape | |
System Volume Information |
NTFS related, MSW | ||
.*.sw? |
|||
.*.*sw? |
|||
.TemporaryItems |
Y | temporary storage, macOS | |
.Trashes |
Y | trash temporary, macOS | |
.DocumentRevisions-V100 |
Y | internal version control, macOS | |
.Trash-* |
Y | Linux trash folder, nix | |
.fseventd |
filesystem events log, macOS | ||
.apdisk |
directories on remote AFP shares, created by macOS | ||
.Spotlight-V100 |
macOS Spotlight index data | ||
.directory |
KDE directory preferences, nix | ||
*.part |
partial downloads | ||
*.filepart |
partial downloads | ||
*.crdownload |
partial downloads, Chrome | ||
*.kate-swp |
Kate swap files | ||
*.gnucach.tmp-* |
|||
*.synkron.* |
Synkron cache | ||
*.sync.ffs_db |
FreeFileSync db | ||
*.symform |
Symform files | ||
*.symform-store |
Symform files | ||
*.fuse-hidden* |
FUSE mount leftovers | ||
*.unison |
Unison locks | ||
.nfs* |
NFS mounting leftovers | ||
.stfolder |
Syncthing marking | ||
.stignore |
Syncthing ignores | ||
.stversions |
Syncthing versioning | ||
My Saved Places. |
Your Saved Places. | ||
\#*# |
emacs recovery files | ||
*.sb-* |
These patterns at some point were set out of box. They are reasonable and should be kept.
Pattern | Allow deletion | Description | Notes |
---|---|---|---|
In previous versions (that should be excluded) | |||
desktop.ini |
folder config file, MSW | ||
.*.*.sw? |
|||
*.nfs |
NFS mounting leftovers |
Pattern | Allow deletion | Description | Notes |
---|---|---|---|
macOS | |||
.fseventsd |
Y | macOS File System Events notification mechanism | |
.com.apple.timemachine.donotpresent |
Y | macOS | |
.AppleDouble |
Y | macOS | |
.LSOverride |
Y | macOS | |
.VolumeIcon.icns |
Y | icons, macOS | |
.AppleDB |
Y | directories on remote AFP shares, created by macOS | |
.AppleDesktop |
Y | directories on remote AFP shares, created by macOS | |
._.TemporaryItems |
Y | temporary storage, macOS | |
Network Trash Folder/ |
directories on remote AFP shares, created by macOS | ||
Temporary Items/ |
directories on remote AFP shares, created by macOS | ||
MSW | |||
ehthumbs.db |
Y | image file caches, MSW | |
ehthumbs_vista.db |
Y | image file caches, MSW | |
*.stackdump |
Y | image file caches, MSW | |
Desktop.ini |
Y | folder config file, MSW | Capitalised duplicate for built in pattern |
$RECYCLE.BIN/ |
Y | Recycle Bin used on file shares, MSW | |
*.lnk |
Y | alias, MSW | |
BSD/nix | |||
.fuse_hidden* |
Y | alias, MSW | |
ANDROID | |||
.csettings |
Y | Android | |
Browser download partials | |||
.crdownload |
Chrome and Edge | included in OOB patterns | |
.part |
Firefox | included in OOB patterns | |
.opdownload |
Opera | ||
.partial |
Internet Explorer 11 | ||
.download |
Safari | ||
Node.js/NPM | |||
node_modules/ |
Y | dir for NPM | huge stuff, package.josn is synced, just do npm i |
.npm |
Y | NPM cache directory | |
.node_repl_history |
Y | node.js REPL commands history | |
npm-debug.log* |
Y | node.js logs | |
.lock-wscript |
Y | node-waf configuration | |
Bower | |||
bower_components/ |
Y | Bower components dir | bower.json is synced, just do bower install |
.bower-cache |
Y | Bower junk | |
.bower-registry |
Y | Bower junk | |
.bower-tmp |
Y | Bower junk | |
Grunt | |||
.grunt |
Y | Grunt cache | |
.tmp/ |
Y | Grunt preprocess tmp dir | |
Composer | |||
vendor/ |
Composer | composer.json is synced, so just do composer install . *Beware, this is aggressive exclude - generic dir name, so some stuff that is not Composerish might not be synced! |
|
Sass | |||
.sass-cache/ |
Y | Sass cache | |
Sublime Text | |||
*.tmlanguage.cache |
Y | Sublime Text cache | |
*.tmPreferences.cache |
Y | Sublime Text cache | |
*.stTheme.cache |
Y | Sublime Text cache | |
*.sublime-workspace |
Y | Sublime Text cache | workspace files are user-specific |
Xcode, Clang | |||
*~.nib |
Y | Xcode | |
*.swp |
Y | Xcode | |
*.out |
Y | Xcode | Beware, this is aggressive exclude |
*.pbxuser |
Y | Xcode | workspace files are user-specific |
*.perspective |
Y | Xcode | workspace files are user-specific |
*.perspectivev3 |
Y | Xcode | workspace files are user-specific |
*.mode1v3 |
Y | Xcode | workspace files are user-specific |
*.mode2v3 |
Y | Xcode | workspace files are user-specific |
*.user |
Y | Xcode | workspace files are user-specific |
xcuserdata/ |
Y | Xcode | exclude xcuserdata |
*.xcworkspace |
Y | Xcode | keep out for now |
*.xccheckout |
Y | Xcode | workspace files are user-specific |
*.buld/ |
Y | Xcode | |
*.hmap |
Y | Clang header map | |
dgph |
Y | dependency graph information | |
*.d |
Y | header dependencies | |
*.dia |
Y | serialised diagnostics blob | |
*.LinkFileList |
Y | what it says | |
*_dependency_info.dat |
Y | contains all libs, frameworks that are linked | |
Visual Studio, MSVC | |||
*.sdf |
Y | Visual Studio | |
*.opensdf |
Y | Visual Studio | |
*.suo |
Y | Visual Studio | |
*.pdb |
Y | Visual Studio | Beware, same as Protein Data Bank file |
*.ilk |
Y | Visual Studio | |
*.aps |
Y | Visual Studio | |
*.ncb |
Y | Visual Studio | |
ipch/ |
Y | Visual Studio | |
*.tlog/ |
Y | Visual Studio | |
*.tlog |
Y | Visual Studio | |
*.lastbuildstate |
Y | Visual Studio | |
*.idb |
Y | MSVC++ | |
Visual Code | |||
.history |
Y | Visual Code local history of files | |
Platform.io | |||
.pio/ |
Y | ||
.pioenvs/ |
Y | ||
.piolibdeps/ |
Y | ||
Code::Blocks | |||
*.depend |
Y | Code::Blocks | |
*.layout |
Y | Code::Blocks | workspace files are user-specific |
Eclipse | |||
.metadata |
Y | Eclipse | |
local.properties |
Y | Eclipse | |
.externalToolBuilders |
Y | Eclipse | |
Others | |||
pids/ |
runtime data | ||
*.pid |
Y | runtime data | |
*.seed |
Y | runtime data | |
*.o |
build products | Beware, this is aggressive exclude | |
*.idb |
build products | Beware, this is aggressive exclude | |
*.mode* |
build products | Beware, this is aggressive exclude | |
*.dSYM |
build products | Beware, this is aggressive exclude | |
*.pyc |
build products | Beware, this is aggressive exclude | |
*.cpp.eep |
Beware, this is aggressive exclude | ||
*.cpp.elf |
Beware, this is aggressive exclude | ||
*.cpp.hex |
Beware, this is aggressive exclude |
Pattern | Allow deletion | Description | Notes |
---|---|---|---|
.htaccess |
Apache configuration files | When Nextcloud is run by Nginx (or even in the case of Apache if datadirectory is outside webroot) it is safe to allow syncing .htaccess . [*1] |
[*1]
Remeber to remove '.htaccess'
in Nextcloud's config.php
from blacklist
// default implicit
// 'blacklisted_files' => ['.htaccess'],
// by setting empty array .htaccess is allowed
'blacklisted_files' => [],
- Redo all Visual Studio / MSVC stuff
- Check file patterns for VisualGDB junk files.
- Suggest rule importing menu in Nextcloud client app Settings that can take lists in
LST
(CSV
/XML
) format and replace and/or merge it with existing whatever settings. It is not so much about user friendly way to add patterns, it is more about merging patterns. Say your team start using new app/tech that generates files you want to exclude - just generate patterns ignore list and send out to everybody in the workgroup.