Skip to content

fix(remote): send named tag refspecs instead of refs/tags/* - #35

Open
noyobo wants to merge 1 commit into
cheat2001:mainfrom
noyobo:fix-34-push-with-tags
Open

noyobo wants to merge 1 commit into
cheat2001:mainfrom
noyobo:fix-34-push-with-tags

Conversation

@noyobo

@noyobo noyobo commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

What & why

Fixes #34.

Push with tags sends refs/tags/*:refs/tags/*. libgit2 Remote::push does not expand that glob — it looks up a literal ref named refs/tags/* and fails with class=Invalid (3). git push --tags expands the glob locally first. Single-tag push_tag already uses a named spec and works.

The engine now lists local tags and pushes refs/tags/{name}:refs/tags/{name} next to the branch spec. Force still prefixes only the branch. Regression: push_with_tags_sends_named_tag_refs against a local bare remote.

Screenshots

N/A — engine behavior only.

Checklist

  • New engine coverage in tests/git_engine.rs
  • push_refspecs unit tests name tags instead of the glob
  • No UI / design-token / undo changes
  • cargo fmt --check && cargo clippy --all-targets -- -D warnings && cargo test (Rust CI)

Made with Cursor

@noyobo
noyobo force-pushed the fix-34-push-with-tags branch from 4844421 to f13bb7d Compare September 20, 2026 14:13
libgit2 Remote::push looks up the glob as a literal ref. Enumerate local tags
and push refs/tags/{name}:refs/tags/{name} so Push with tags works.
@noyobo
noyobo force-pushed the fix-34-push-with-tags branch from f13bb7d to b36deb6 Compare September 20, 2026 14:20
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.

Remote::push rejects the refs/tags/* glob used by Push with tags

1 participant