mirror of
https://github.com/jj-vcs/jj.git
synced 2026-07-03 14:02:54 +08:00
Previously, we created a new unique working copy for each invocation named after the commit ID. This works but can be very slow to rebuild the working copy and any ignored build artifacts between each invocation. Workspaces used for `jj run` are now named `1`, `2`, ..., `N`, where `N` comes from either `--jobs N`, the config value `run.jobs`, or defaults to 1. Remove the single global lock that prevented multiple `jj run` instances from executing concurrently. Multiple processes wait for each workspace individually. Workspaces persist between command invocations so build artifacts are reused. The `tree_state` file in each is used to check out the next revision while leaving ignored files in place. The previous "fresh workspace" behavior will be restored in a future commit that adds a `--clean` flag.