Repository navigation
fix: a conflicted pull --pin records the pin on commit - #174
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #174 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 45 45
Lines 2119 2122 +3
=========================================
+ Hits 2119 2122 +3
|
4 tasks done
thorsten-klein
added a commit
that referenced
this pull request
Oct 23, 2026
## What this changes `uv.lock` takes the newest versions of the packages pip-audit flags, and of what they need: | Package | From | To | |---|---|---| | certifi | 2026.7.22 | 2026.10.23 | | virtualenv | 21.14.5 | 21.14.13 | | packaging | 26.0 | 26.3 | | typing-extensions | 4.15.0 | 4.16.0 | virtualenv 21.14.13 needs packaging >= 26.3 and, on Python 3.10, typing-extensions >= 4.16. Without those two bumps, uv keeps virtualenv 21.14.5 for Python 3.10, and pip-audit still fails there. ## Why Every `test` job fails at `pip-audit`, before the tests run (e.g. on #174 and #175): - certifi 2026.7.22: PYSEC-2026-4320 (fixed in 2026.10.19) - virtualenv 21.14.5: CVE-2026-113725 (fixed in 21.14.7), CVE-2026-113722 (fixed in 21.14.9) ## Checklist - [x] `uv run poe all` passes (ruff, mypy, pyright, bandit, complexipy, and the tests at 100% coverage) — locally pip-audit reports "No known vulnerabilities found"; 737 passed, 100% coverage; `test_gpg_sign_signs_the_commit_and_the_nested_commits` fails with git 2.34 only, fixed by #175 - [x] New behaviour has a test (no behaviour change) - [x] README / `--help` / the man page updated, if the change is visible to users (not visible) - [x] The PR title reads as a [Conventional Commit](https://www.conventionalcommits.org) (`feat:`, `fix:`, `docs:`, …) — it becomes the squash-merge commit message and the changelog line 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The pin of a pull that stops on a conflict was lost: `git nested commit` had no `--pin`, so `.gitnested` kept the old pin, and the next pull followed the newest commit of the branch. `commit` takes `--pin` now, and the steps the pull prints pass it on. Fixes #173 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
thorsten-klein
force-pushed
the
fix/pull-conflict-pin
branch
from
October 23, 2026 17:27
b0c9aec to
67aad70
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What this changes
git nested committakes--pin. When apull --pin <commit>stops on a conflict, step 7 of the printed help isgit nested commit --pin=<commit> <subdir>, so the pin goes into.gitnestedlike it does for a pull without conflicts. This follows how--fileis already passed on.Why
The pin was lost:
.gitnestedkept the old pin (or none), and the next plain pull moved past it to the newest commit of the branch. Fixes #173Checklist
uv run poe allpasses (ruff, mypy, pyright, bandit, complexipy, and thetests at 100% coverage) — locally
pip-auditreports CVEs in certifi/virtualenv (unrelated, also onmain) andtest_gpg_sign_signs_the_commit_and_the_nested_commitsfails without a gpg agent (also onmain); all else passes, coverage 100%test_pull_conflict_keeps_the_pin, runs the printed step 7)--help/ the man page updated, if the change is visible to users (doc/cli/commit.md,doc/guides/conflicts.md;--helpcomes from the spec)(
feat:,fix:,docs:, …) — it becomes the squash-merge commit messageand the changelog line
🤖 Generated with Claude Code