Skip to content

git: show without a path, and client-relative --repo - #26

Closed
mgasner wants to merge 1 commit into
fix/git-diff-index-worktreefrom
fix/git-show-repo-paths
Closed

mgasner wants to merge 1 commit into
fix/git-diff-index-worktreefrom
fix/git-show-repo-paths

Conversation

@mgasner

@mgasner mgasner commented Sep 28, 2026

Copy link
Copy Markdown

Stacked on #25. The diff shows only this change.

What was wrong

  • yas git show REV always sent a BLOB query, so asking for a commit failed with Invalid.
  • --repo and yas git discover PATH were sent as given, so relative paths, including the default ., resolved against the server's cwd instead of the client's. From outside the server's cwd, yas git status failed with "request 0x0031/0x0000 failed with Invalid".

Fix

  • show REV prints the commit in git cat-file commit layout, rebuilt from the LOG record. REV:DIR and REV: list the tree the way ls-tree does. REV:file still prints the file's bytes.
  • A raw tree or blob ID as REV is still rejected, because the server's RESOLVE accepts only commit-like revisions. The help now says "REV names a commit; reach trees and blobs by PATH."
  • --repo and the discover path resolve against the client's cwd, the same as the fs and lsp --root. The help text for all 10 git --repo flags and learn.md are updated to match.

Testing

  • New tests: commit_object_uses_cat_file_layout and relative_repository_paths_resolve_against_client_cwd.
  • Full yas-cli bin tests pass (147).
  • Checked by hand with a scratch repo.

View in Indent
Tag @indent to continue the conversation here.

@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Coverage

Crate Lines Functions Regions
alacritty-driver 85.6% (1081/1263) 89.4% (84/94) 89.3% (1746/1955)
browser 25.5% (309/1212) 30.4% (34/112) 27.7% (605/2183)
cli 34.2% (6797/19877) 36.3% (644/1776) 35.3% (10102/28593)
client 68.3% (5800/8497) 68.5% (708/1033) 66.4% (7526/11331)
composite-transport 96.3% (526/546) 98.4% (60/61) 96.2% (884/919)
compositor 55.0% (11459/20820) 66.2% (837/1265) 54.9% (15876/28909)
desktop 78.4% (4460/5691) 71.6% (393/549) 75.1% (6211/8267)
edge 63.1% (800/1268) 50.9% (82/161) 58.0% (1043/1799)
fonts 77.3% (1257/1626) 82.7% (129/156) 78.9% (2424/3071)
fssync 86.0% (1610/1872) 85.8% (182/212) 87.1% (2834/3255)
git 73.1% (4635/6344) 70.5% (347/492) 70.2% (6608/9407)
guest 67.3% (6829/10148) 67.0% (488/728) 66.6% (8935/13416)
lsp 78.7% (3573/4542) 80.8% (336/416) 76.7% (5408/7054)
proxy 63.1% (1902/3012) 56.3% (184/327) 63.4% (2931/4626)
runtime-dir 93.6% (117/125) 100.0% (14/14) 94.8% (218/230)
sd-notify 73.9% (68/92) 100.0% (6/6) 83.2% (109/131)
server 71.5% (86252/120636) 74.1% (6258/8447) 69.5% (115561/166368)
ssh 66.9% (705/1054) 75.9% (85/112) 66.8% (1099/1645)
terminal-model 49.9% (314/629) 62.3% (38/61) 50.3% (505/1004)
uplink 94.2% (582/618) 92.6% (50/54) 93.1% (1062/1141)
webrtc-forwarder 33.6% (1321/3932) 44.9% (146/325) 36.0% (2279/6336)
webserver 80.7% (1490/1846) 81.1% (193/238) 83.2% (2551/3067)
website 35.1% (355/1012) 34.4% (53/154) 35.8% (607/1694)
xtask 0.0% (0/5149) 0.0% (0/131) 0.0% (0/9157)
yas 89.0% (28042/31522) 94.1% (2152/2286) 84.1% (44044/52388)
Total 67.2% (170284/253333) 70.3% (13503/19210) 65.5% (241168/367946)

@indent
indent Bot force-pushed the fix/git-diff-index-worktree branch from 4301d9c to e715560 Compare October 14, 2026 19:08
@indent
indent Bot force-pushed the fix/git-show-repo-paths branch from 697c73a to 2f03c4d Compare October 14, 2026 19:08
@indent
indent Bot force-pushed the fix/git-diff-index-worktree branch from e715560 to b5a47b0 Compare October 14, 2026 19:32
@indent
indent Bot force-pushed the fix/git-show-repo-paths branch 2 times, most recently from 710aa95 to 0ba0155 Compare October 14, 2026 19:54
`yas git show REV` sent a BLOB query for the commit and failed with
Invalid. It now prints the commit in `git cat-file commit` layout (from
the LOG record), and lists a directory for REV:DIR and REV:.

--repo and `git discover PATH` were sent verbatim, so relative paths
(including the default `.`) resolved against the server's cwd. They now
resolve against the client's cwd, like fs and lsp --root.
@indent
indent Bot force-pushed the fix/git-diff-index-worktree branch from b5a47b0 to 9009342 Compare October 15, 2026 01:43
@indent
indent Bot force-pushed the fix/git-show-repo-paths branch from 0ba0155 to 00305f6 Compare October 15, 2026 01:43
@indent
indent Bot deleted the branch fix/git-diff-index-worktree October 15, 2026 13:07
@indent indent Bot closed this Oct 15, 2026
@indent
indent Bot deleted the fix/git-show-repo-paths branch October 15, 2026 13:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant