Ignore Files with .fxvignore¶
Some files in a project should not be versioned: engine caches, build output, logs, and personal editor settings. They are generated automatically, can be very large, and change constantly. A .fxvignore file lists the files and folders FlexVault should leave alone, so they never become part of a revision.
Set up ignore rules before your first snapshot
Ignore rules only apply to files FlexVault is not tracking yet. Once a file is part of a snapshot, adding it to .fxvignore does not stop FlexVault from tracking it. Create .fxvignore, or install your engine's plugin, which creates it for you, before you take your first snapshot or publish. If files you meant to ignore are already tracked, see Files that are already tracked.
Create a .fxvignore file¶
Create a plain text file named .fxvignore in the root folder of your workspace, the folder you ran fxv init in. FlexVault only reads the .fxvignore at the workspace root. A .fxvignore in a subfolder has no effect.
Write one pattern per line. The format is the same as Git's .gitignore, so an existing .gitignore is a good starting point. For example, for a Unity project:
# Generated by Unity and rebuilt on every machine
Library/
Temp/
Logs/
obj/
# Build output
Build/
# Personal editor settings
UserSettings/
The patterns you will use most often:
| Pattern | Matches |
|---|---|
Library/ |
Any folder named Library, and everything inside it |
/Build/ |
Only the Build folder at the workspace root |
*.log |
Any file ending in .log |
!keep.log |
Makes an exception for keep.log, even though *.log matches it |
# note |
A comment, which is ignored |
For the complete syntax, see Git's pattern format.
.fxvignore is an ordinary file in your workspace. Snapshot and publish it along with your project, so that everyone working in the repository uses the same rules.
Engine plugins add rules for you¶
The Unity, Godot, and Unreal Engine plugins add their engine's generated folders to .fxvignore the first time they start in a project. The Unity plugin, for example, adds Library/, Temp/, Logs/, and obj/. If .fxvignore does not exist yet, the plugin creates it.
Because ignore rules only apply to files that are not tracked yet, install the plugin before you take your first snapshot or publish from the command line. If you snapshot first and install the plugin afterward, the engine's generated folders are already tracked, and the rules the plugin adds have no effect on them.
Files that are already tracked¶
As with Git, adding a pattern to .fxvignore does not stop FlexVault from tracking a file that is already part of a revision. FlexVault keeps recording changes to it. This usually happens when a project is snapshotted before its ignore rules are in place, for example when a plugin is installed after the first publish.
Today, the only way to stop tracking a file is to delete it from the workspace and publish that deletion. When teammates sync, the file is deleted from their workspaces too. For generated folders, which the engine rebuilds, this works but costs everyone a rebuild:
- Make sure
.fxvignorelists the files or folders you want to stop tracking. - Close your editor or engine, so it is not using the files.
- Delete the files or folders from the workspace.
- Take a snapshot and publish it with
fxv snapshotandfxv publish. - Reopen your editor or engine, which rebuilds the generated folders.
.fxvignorenow covers them, so FlexVault leaves them alone.
Like every change in FlexVault, the deletion can be undone: the deleted files are still in the published revisions before it.
Planned: fxv untrack and fxv track¶
Not yet available
The commands described in this section are planned but not yet part of FlexVault. Until they are available, use the steps above.
fxv untrack will stop tracking files without deleting them, from your workspace or anyone else's. When teammates sync, their copies stay on disk and are simply no longer tracked.
# Stop tracking specific files or folders
fxv untrack Library/ Temp/
# Stop tracking every tracked file that now matches .fxvignore
fxv untrack --ignored
fxv track will do the opposite, and track files even though .fxvignore matches them:
fxv status will also warn when tracked files match .fxvignore, and suggest fxv untrack --ignored.