<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/tests, branch main</title>
<subtitle>Personal mirror of DanConwayDev/ngit-cli on git.upleb.uk
</subtitle>
<id>https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/atom?h=main</id>
<link rel='self' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/'/>
<updated>2026-03-05T22:12:07+00:00</updated>
<entry>
<title>fix(test_utils): suppress deprecated cargo_bin warning</title>
<updated>2026-03-05T22:12:07+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T21:40:48+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=ad3212941435aaf0d487615c21e8390d5cb97891'/>
<id>urn:sha1:ad3212941435aaf0d487615c21e8390d5cb97891</id>
<content type='text'>
use_ngit_pr_checkout uses assert_cmd::cargo::cargo_bin which is
deprecated in assert_cmd 2.1.0. Add #[allow(deprecated)] consistent
with the existing suppression on rexpect_with and other callers.
</content>
</entry>
<entry>
<title>fix(tests): update send tests to use --subject instead of --title</title>
<updated>2026-03-05T22:12:07+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T21:38:24+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=b1dc1fc39dcb01a850df7e31bb9438a195cf101e'/>
<id>urn:sha1:b1dc1fc39dcb01a850df7e31bb9438a195cf101e</id>
<content type='text'>
The send subcommand was updated to use --subject (with --title as an
alias) but the non_interactive_validation tests still checked for
--title in error messages and used --title as the CLI argument.
</content>
</entry>
<entry>
<title>test(pr-checkout): replace broken ngit_list tests with ngit_pr_checkout</title>
<updated>2026-03-05T21:31:17+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T19:57:28+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=83b0886b97e2e90e328f91fcfaeb59726c93308f'/>
<id>urn:sha1:83b0886b97e2e90e328f91fcfaeb59726c93308f</id>
<content type='text'>
tests/ngit_list.rs had 27 tests all failing because the interactive mode
they tested has been replaced by a non-interactive implementation. Replace
the file with a stub documenting the coverage gaps and add
tests/ngit_pr_checkout.rs covering the same proposal branch checkout logic
via `ngit pr checkout &lt;id&gt;`, starting with the fresh-checkout case.
</content>
</entry>
<entry>
<title>fix: correct merge-base in PR events from git push of pr/ branch</title>
<updated>2026-02-26T16:35:59+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-26T16:35:59+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=01aeb2a3265bcafa162987c85dd281981770bba7'/>
<id>urn:sha1:01aeb2a3265bcafa162987c85dd281981770bba7</id>
<content type='text'>
When pushing a pr/ branch, the ahead slice is reversed by callers before
being passed to generate_patches_or_pr_event_or_pr_updates, making it
oldest-first. The tip/first_commit assignments were backwards (using
first()/last() as if the slice were youngest-first), so the merge-base
was computed as the parent of the PR tip rather than the parent of the
oldest commit. Multi-commit PRs therefore showed only 1 commit when
applied via ngit apply.

Adds an integration test that pushes a two-commit large-file PR branch
and asserts the merge-base tag equals the main branch tip.
</content>
</entry>
<entry>
<title>fix: advertise only state events with resolvable git objects</title>
<updated>2026-02-26T15:26:20+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-26T14:00:12+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=d8b85cbce5cba9bfb8b15a8bd5c1b7200ff3e488'/>
<id>urn:sha1:d8b85cbce5cba9bfb8b15a8bd5c1b7200ff3e488</id>
<content type='text'>
git-remote-nostr now walks the per-relay state events captured in
FetchReport::state_per_relay (newest first) and advertises the first
one whose every OID is either present on at least one git server
(confirmed via list_refs) or already available locally.  If no such
state event exists it falls back to the raw git server state.

Previously the latest nostr state event was always used regardless of
whether its OIDs had been pushed to any server, causing catastrophic
missing-object errors during clone or fetch when a state event was
published ahead of the corresponding git push.
</content>
</entry>
<entry>
<title>fix: update hardcoded libgit2 version strings in tests to 1.9.2</title>
<updated>2026-02-25T12:27:56+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T12:27:56+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=ca2df272594a7b055c740ccda0b9c31b3b7e43cc'/>
<id>urn:sha1:ca2df272594a7b055c740ccda0b9c31b3b7e43cc</id>
<content type='text'>
The Nix environment provides libgit2 1.9.2 via nixpkgs, which
libgit2-sys picks up at build time instead of using its bundled version.
This caused test assertions that hardcode the libgit2 version string
(appended by libgit2 to patch output) to fail after commit 319bb7f
added new Cargo dependencies, though the exact mechanism by which those
dependencies triggered the switch from the bundled 1.9.1 to the system
1.9.2 remains unclear.

Also bump git2 from 0.20.2 to 0.20.4 in both Cargo.toml files so the
bundled libgit2-sys version (0.18.3+1.9.2) properly aligns with the
1.9.2 version in use.
</content>
</entry>
<entry>
<title>fix: apply push-options to patch series generation</title>
<updated>2026-02-17T15:09:03+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-17T12:44:13+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=4cbba068d1ddbd14ba41d75def3ae266989aced8'/>
<id>urn:sha1:4cbba068d1ddbd14ba41d75def3ae266989aced8</id>
<content type='text'>
The title and description push-options were previously only applied to PR
creation but not to patch series generation. When force-pushing to update
an existing patch series, the custom title and description were ignored.

This change passes the title_description parameter to the patch generation
function, allowing users to customize patch series cover letters via:
  git push --force --push-option=title="Title" \
    --push-option=description="Description" origin branch

Includes integration test for force-pushing patches with custom cover letter.
</content>
</entry>
<entry>
<title>feat: support multiline descriptions in push-options via \n escape</title>
<updated>2026-02-17T14:04:32+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-17T12:11:33+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=5cc8ae28cb462d2cb0b7f74dfa5238e62d17eb70'/>
<id>urn:sha1:5cc8ae28cb462d2cb0b7f74dfa5238e62d17eb70</id>
<content type='text'>
Git push-options are line-based so literal newlines cannot be sent.
Users can now write the two-character sequence \n which is decoded
into real newlines before publishing. Use \\n for a literal backslash-n.

Includes unit tests, integration test, help text, and changelog entry.
</content>
</entry>
<entry>
<title>feat: add push-options for title and description to git-remote-nostr</title>
<updated>2026-02-17T11:38:26+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-17T10:42:33+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=fe5addc2a61022824e83c3523a83fce7690ca8e8'/>
<id>urn:sha1:fe5addc2a61022824e83c3523a83fce7690ca8e8</id>
<content type='text'>
Allows setting PR title and description via git push options:
  git push --push-option=title="My PR" \
    --push-option=description="Details" origin pr/branch
</content>
</entry>
<entry>
<title>fix: report wording `fetching` ~&gt; `checking`</title>
<updated>2026-02-16T10:57:39+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-16T10:57:39+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=1d08d2e77dec6dc2c5a8df8776b74f4ba5405e8d'/>
<id>urn:sha1:1d08d2e77dec6dc2c5a8df8776b74f4ba5405e8d</id>
<content type='text'>
to be consistent with the summary version
</content>
</entry>
</feed>
