<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/src/lib/git, branch v2.2.1</title>
<subtitle>Personal mirror of DanConwayDev/ngit-cli on git.upleb.uk
</subtitle>
<id>https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/atom?h=v2.2.1</id>
<link rel='self' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/atom?h=v2.2.1'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/'/>
<updated>2026-02-25T12:27:56+00:00</updated>
<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/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/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: thread applied OID through patch chain correctly</title>
<updated>2026-02-18T21:17:41+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-18T21:17:41+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=09db17fd719ddd42c5afad24e1a8e71735374f8e'/>
<id>urn:sha1:09db17fd719ddd42c5afad24e1a8e71735374f8e</id>
<content type='text'>
When applying a chain of patches without parent-commit tags, each
patch's parent was resolved independently, meaning patch2 would not
parent off the OID patch1 actually produced. Thread next_parent_override
through the loop and guard the early-return in create_commit_from_patch
so the override is always honoured.
</content>
</entry>
<entry>
<title>fix: harden apply_patch_chain when optional patch tags absent</title>
<updated>2026-02-18T21:04:59+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-18T21:04:59+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=73d829b916d87626f33ea2adead0c48f1d9d737d'/>
<id>urn:sha1:73d829b916d87626f33ea2adead0c48f1d9d737d</id>
<content type='text'>
- Replace .unwrap() calls in filter closure with pattern-let guards
  so a missing/invalid mbox commit id conservatively includes the patch
- Use the OID returned by create_commit_from_patch as branch tip instead
  of the tag commit id, which may differ for GPG-signed commits
- Add module-level doc comment to mbox_parser explaining design rationale
  and known limitations around the mbox envelope SHA1
</content>
</entry>
<entry>
<title>feat: handle missing optional patch tags for pr/ flow</title>
<updated>2026-02-18T14:48:20+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-18T14:48:20+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=fcff4541e1f36b6575596c353637b25aeae9bdcf'/>
<id>urn:sha1:fcff4541e1f36b6575596c353637b25aeae9bdcf</id>
<content type='text'>
- Add mbox_parser module to extract metadata from patch content
- Extract author/committer from From: and Date: headers when tags missing
- Extract commit message body as fallback for description tag
- Implement best-guess parent commit logic using committer timestamps
- Update patch_supports_commit_ids to accept mbox-parseable patches
- Enable patches without optional tags to appear as pr/ branches
</content>
</entry>
<entry>
<title>fix: handle existing local branch that is behind when checking out PR</title>
<updated>2026-02-12T16:19:29+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-12T16:19:29+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=1be46b4fd7a78ce418765ef5467823b7ea5e60eb'/>
<id>urn:sha1:1be46b4fd7a78ce418765ef5467823b7ea5e60eb</id>
<content type='text'>
When a PR branch already exists locally, the previous code would silently
move the branch pointer without checking for tracking or fast-forward safety.

Now:
- If branch has tracking: checkout and warn user to git pull
- If no tracking and fast-forward: safely move pointer
- If no tracking and diverged: show copy-paste commands for reset/rebase
- If commit not found locally: suggest fetching

Uses console crate for yellow output instead of hardcoded ANSI codes.
</content>
</entry>
<entry>
<title>test: nostr git url with path</title>
<updated>2025-11-18T11:02:39+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-11-18T11:02:39+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=3cf8621541b81ec654d5af9bde8297be1916c5fc'/>
<id>urn:sha1:3cf8621541b81ec654d5af9bde8297be1916c5fc</id>
<content type='text'>
add additional test to cover this scenario
</content>
</entry>
<entry>
<title>chore: cargo update</title>
<updated>2025-10-17T14:16:03+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-10-17T14:02:53+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=709946c1b49114b71d3080bb8d97e63525f40fd9'/>
<id>urn:sha1:709946c1b49114b71d3080bb8d97e63525f40fd9</id>
<content type='text'>
update patches ahead of wider upgrade. clippy required some autofixes
</content>
</entry>
<entry>
<title>feat!(nostr_url): replace user with ssh_key_file</title>
<updated>2025-10-17T11:18:24+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-01-16T09:23:05+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=b126e5b7acfce55bd101b06cb5baf7f251cd0fda'/>
<id>urn:sha1:b126e5b7acfce55bd101b06cb5baf7f251cd0fda</id>
<content type='text'>
replaces the "user" in the nostr_url format with
"ssh_key_file", to support the original intent, which was to allow
users to specify different authentication credentials.

most git servers always expect the ssh user to be 'git'.

the idiumatic way of specifying logging in as a different user is to
specify a different ssh key.

the idiomatic way of storing non-default ssh keys is in the location
`~/.ssh/key_name`. "ssh_key_file" can be specified as `key_name`,
for keys in the default location, or as a relative or absolute custom
location eg. `/other_keys/.ssh/nym1` or `../.ssh/nym1`.

BREAKING CHANGE: in nostr git url nym1@ssh/npub123/identifer, nym1 is
now treated as ssh key file location rather than a ssh user. it can
be specified as a file within `~/.ssh` eg `~/.ssh/nym1` or a full or
relative path.
</content>
</entry>
<entry>
<title>feat(send): add `merge-base` tag to PR (Update)</title>
<updated>2025-10-17T09:20:43+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-10-17T08:30:35+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=2bf98e91e5b5a7d1b18557e65711b5ef3d1a54a3'/>
<id>urn:sha1:2bf98e91e5b5a7d1b18557e65711b5ef3d1a54a3</id>
<content type='text'>
following its inclusion in the NIP-34 spec
</content>
</entry>
<entry>
<title>refactor: move patch size evaluation fn to lib</title>
<updated>2025-08-01T08:39:36+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-08-01T08:39:36+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=a625be66cfbced5f96cb0123a286937543e7273c'/>
<id>urn:sha1:a625be66cfbced5f96cb0123a286937543e7273c</id>
<content type='text'>
so we can use it in ngit as well as remote helper
</content>
</entry>
</feed>
