Skip to main content
Jakub Mazurek3 min read

Rev-dep 3.2.0 release

This minor version bump brings:

  • a fix for .gitignore lookup in git worktrees and submodules
  • a new failOnEmptyWorkspace config option
  • improvements to telemetry reporting

GitHub Release

This release exists thanks to a community contribution. Big thanks for reporting issue #46 - it came with a minimal reproduction, the root cause, and a suggestion for how to prevent this kind of problem in the future. Both the fix and the suggestion are part of this release.

Gitignore lookup in worktrees and submodules​

Rev-dep reads .gitignore files from parent folders, up to the repository root. Previously, it recognized the root only by a .git directory. Linked git worktrees and submodules use a .git file instead, so the lookup continued into the enclosing checkout and applied its ignore rules.

When a worktree was nested in a folder ignored by the main checkout - for example .agent/worktrees/, where an AI agent creates its worktrees - every source file was excluded. config run reported zero files and still passed.

Now the lookup stops at a .git file the same way it stops at a .git directory, which is how git itself treats repository boundaries.

Fail on empty workspace​

The issue also pointed out a bigger problem: a check that runs on zero files proves nothing, but it still passes. That is easy to miss in CI or in AI agent runs, where nobody reads the warnings.

The new failOnEmptyWorkspace option makes such a workspace fail the run:

{
"configVersion": "2.1",
"failOnEmptyWorkspace": true,
"workspaces": [
{ "path": "packages/app" },
{ "path": "packages/placeholder", "failOnEmptyWorkspace": false }
]
}

The option is set at the config root and can be overridden per workspace. It is opt-in, so existing configs behave the same unless you enable it.

New configs generated by rev-dep config init enable it by default.

Without the option, an empty workspace is still reported as a warning - and it is now also listed in the summary at the end of config run, so it doesn't get lost in the output.

The option requires config version 2.1. Read more in the config file structure docs.

Telemetry improvements​

The anonymized repository identifier is now resolved correctly in worktrees and submodules, and it falls back to the repository field from package.json when no git remote is available. Events also report where the identifier came from. Read more about telemetry.


That's it for this update. See you in the next one 👋

Jakub Mazurek
Software Engineer