+ {member === null ? (
+
+ Choose one checkout to edit its Git or Jujutsu configuration.
+
+ ) : configuration.error ? (
+ {configuration.error}
+ ) : !config ? (
+
+ Loading repository configuration...
+
+ ) : (
+ <>
+
+
+
+ >
+ )}
+
+ );
+}
diff --git a/docs/user/source-control.md b/docs/user/source-control.md
index 599a22e4e29f..02f3d4e59a61 100644
--- a/docs/user/source-control.md
+++ b/docs/user/source-control.md
@@ -164,6 +164,13 @@ For an existing Git repository, choose **Enable Jujutsu** from the repository ac
desktop, or mobile. It keeps the Git history, remotes, and working files while adding a colocated
Jujutsu workspace. Run it from the main checkout; Git worktrees continue to use Git.
+To configure one checkout on web or desktop, select it in **Settings → Source control → Repository
+configuration**. On mobile, open **Repository configuration** from the repository sheet.
+The guided controls set its commit author and email. For Jujutsu, the new-file snapshot limit
+determines which files enter T3 checkpoints; for Git, the large-file threshold controls when Git
+treats a file as binary in diffs. Git checkpoints include large files regardless of that threshold.
+Reset removes a repository override and returns to the user's Git or Jujutsu configuration.
+
### What is different under Jujutsu
- **Git hooks do not run** for commits made through T3 Code. Hooks that read the Git index, such as
@@ -172,8 +179,8 @@ Jujutsu workspace. Run it from the main checkout; Git worktrees continue to use
- A change with conflicts cannot be pushed until you resolve it, and its diff shows one side of each
conflicted file rather than the markers on disk.
- Jujutsu refuses to snapshot a new file above `snapshot.max-new-file-size`, 1 MiB by default. That
- file is outside checkpoints, so reverting a turn leaves it on disk. Raise the limit in your own
- Jujutsu config if you want those files tracked.
+ file is outside checkpoints, so reverting a turn leaves it on disk. Raise the limit in repository
+ configuration if you want those files tracked.
- A repository that is not colocated, a missing `jj`, or a version below 0.42.0 leaves source control
actions disabled with the reason, instead of silently falling back to Git. Install or upgrade
Jujutsu, or run `jj git init --colocate` in the repository.
diff --git a/packages/client-runtime/src/state/vcs.ts b/packages/client-runtime/src/state/vcs.ts
index bedcb751216f..39e05a8f3eeb 100644
--- a/packages/client-runtime/src/state/vcs.ts
+++ b/packages/client-runtime/src/state/vcs.ts
@@ -17,6 +17,7 @@ import { Atom, AtomRegistry } from "effect/unstable/reactivity";
import {
createEnvironmentRpcCommand,
+ createEnvironmentRpcQueryAtomFamily,
createEnvironmentRpcSubscriptionAtomFamily,
createEnvironmentSubscriptionAtomFamily,
} from "./runtime.ts";
@@ -279,6 +280,16 @@ export function createVcsEnvironmentAtoms