Quick start
- On init, Rinne creates rinneignore.json in the workspace root (the same level as .rinne/).
-
Rules are applied to workspace-relative paths using
/separators. - Includes override excludes.
Use
include*lists or prefix an exclude entry with!to create exceptions. -
If a selected
save --fileorsave --dirtarget is ignored byrinneignore.json, the scoped save fails with an error.
File location
./rinneignore.json
./.rinne/
The default starter file excludes .rinne/**, so workspace metadata stays out of snapshots.
JSON format
The ignore file is JSON. Comments and trailing commas are allowed, so you can keep it readable.
Rule types
- exclude / include
-
Path patterns matched against the logical path (workspace-relative), using
/as separator. Example:Assets/texture.png,bin/app.exe - excludeFiles / includeFiles
-
File name only (not the full path). Example:
*.tmp,*.log - excludeDirs / includeDirs
-
Directory segment only. Example:
temp/,.vs/(a trailing/is optional)
Pattern syntax
Patterns are glob-like and match the entire string (anchored).
*matches any characters except/**matches across/(any depth)?matches a single character except/
bin/** // everything under bin/
**/*.tmp // any .tmp file anywhere
cache/ // (excludeDirs) any directory segment named "cache" Include wins
Includes override excludes. If a path matches an include rule, it is not ignored even if it also matches an exclude rule.
You can write includes in two ways: use include* arrays, or prefix an exclude entry with !.
{
"exclude": [
"bin/**",
"!bin/keep/**"
]
} Traversal behavior (important)
When a directory is ignored, Rinne normally won’t descend into it. However, if your config contains include rules that might match files inside ignored directories, Rinne may still traverse ignored directories to find those included files. This keeps includes reliable, but can increase scan work on very large trees.
Default template
The starter file created by init contains the full structure below (edit it freely):
{
"exclude": [
".rinne/**",
".git/**",
"bin/**",
"obj/**"
],
"excludeFiles": [
"*.tmp",
"*.log",
"*.user"
],
"excludeDirs": [
"cache/",
"temp/",
".vs/"
],
"include": [],
"includeFiles": [],
"includeDirs": []
} Behavior notes
Ignore rules affect workspace scanning during save. They help keep new snapshots focused on the files you actually want.
Changing rinneignore.json does not rewrite existing snapshots. It only changes how future workspace scans behave.
Early Access note: ignore behavior may evolve. Keep rules minimal and explicit.