tools: Abgleich - Publish-, Sync-Hilfe und Log-Vorlage nennen den reinen Log-Zusatz (#223 close); 10.1.1-beta.2
CI / verify (push) Successful in 8m12s
CI / pwsh (push) Successful in 2m42s
Release / converters (push) Successful in 26s
Release / release (push) Successful in 37s
Release / wiki-mirror (push) Skipped

Files changed:
- CHANGES.md
- VERSION
- docs/reference/commands/git.md
- tools/CONTRACT.md
- tools/chemenu/commands/git_publish.py
- tools/chemenu/dist_templates/log.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
This commit is contained in:
torbenandClaude Opus 5.5 committed 2026-10-16 20:13:53 +02:00
1 parent 05c6697d3d
commit 55ddf652cb
6 files changed
+13 -9

No files matched your search

+2 -2
View File
@@ -2110,7 +2110,7 @@ Fetch `<remote>/<branch>` and bring the local branch up to date with it.
- effect: write
- idempotent: yes
- atomic: No - fetch, then at most one merge/rebase attempt, aborted cleanly on failure with the working tree restored; a success that merged generated files then rewrites the catalog
- atomic: No - fetch, then at most one merge/rebase attempt, aborted cleanly on failure with the working tree restored; a success that merged generated files then rewrites the catalog, unless `kb/log.md` was the only one
- budget: counted
- network: yes
- gates: rebase-review
@@ -2221,7 +2221,7 @@ Reconcile with `<remote>/<branch>`, then stage all changes, commit, and push.
- Order: branch check and Publish-Remote Gate, then the reconcile with `<remote>/<branch>`, then the Mass-Update Gate, then `git add -A`, commit and push. `--no-push` skips all but the Mass-Update Gate and the commit.
- Without `--no-push`, a remote that is not configured or cannot be reached ends the call with exit 1 at the reconcile - before the gate, `git add` and the commit, and also on a clean tree. Nothing is committed, the index and the working tree are unchanged, and the message names `--no-push` as the way to a local commit. The next `publish` that reaches the remote pushes that commit along with whatever is new. A remote that answers but has no `<branch>` yet (a new, empty repository) is not this case: the first publish of an instance commits and pushes as before.
- Reconcile: fetches `<remote>/<branch>`, fast-forwards when only the remote moved, rebases the local commits on top when both sides moved but touched disjoint files, and exits 42 (Rebase-Review Gate) when both sides touched the same file. A refused reconcile performs no rebase attempt. The `--confirm-rebase` token covers the exact upstream state and the set of files touched on both sides.
- Generated files are never an overlap: where they are all that stops the reconcile, it merges them as `sync` does (both sides' log entries kept, the catalog and `kb/provenance.md` regenerated) and carries uncommitted changes no incoming commit touches through the rebase. The proactive reconcile runs before staging, so this publish commits the regenerated files - with `--path` too, see there; on the retry after a rejected push they get a commit of their own before the second push.
- Generated files are never an overlap: where they are all that stops the reconcile, it merges them as `sync` does (both sides' log entries kept, the catalog and `kb/provenance.md` regenerated unless the log alone stood in the way) and carries uncommitted changes no incoming commit touches through the rebase. The proactive reconcile runs before staging, so this publish commits the regenerated files - with `--path` too, see there; on the retry after a rejected push they get a commit of their own before the second push.
- The push target must be the checked-out branch; this is checked before anything is staged. The unborn branch of a fresh `git init -b main` counts as checked out, so the first publish of a new instance works; a real detached HEAD is refused.
- With nothing new to stage, a local commit the remote lacks is still pushed: one left behind by an earlier publish whose push failed, or every commit when the remote answers but does not have the branch yet (a new, empty remote repository).
- A rejected push that finds the remote unreachable on its one retry reports the original push error.
+2 -2
View File
@@ -1426,7 +1426,7 @@ def apply_reconcile(outcome: ReconcileOutcome, remote: str, branch: str, command
idempotent=cli_contract.Idempotent.YES,
atomic="No - fetch, then at most one merge/rebase attempt, aborted cleanly on failure "
"with the working tree restored; a success that merged generated files then rewrites "
"the catalog",
"the catalog, unless `kb/log.md` was the only one",
budget=cli_contract.Budget.COUNTED,
network=cli_contract.Network.YES,
gates=("rebase-review",),
@@ -1624,7 +1624,7 @@ def commit_regenerated(remote: str, branch: str) -> None:
"upstream state and the set of files touched on both sides.",
"Generated files are never an overlap: where they are all that stops the reconcile, it "
"merges them as `sync` does (both sides' log entries kept, the catalog and "
"`kb/provenance.md` regenerated) and carries uncommitted changes no incoming commit "
"`kb/provenance.md` regenerated unless the log alone stood in the way) and carries uncommitted changes no incoming commit "
"touches through the rebase. The proactive reconcile runs before staging, so this "
"publish commits the regenerated files - with `--path` too, see there; on the retry "
"after a rejected push they get a commit of their own before the second push.",
+1 -1
View File
@@ -1,6 +1,6 @@
# Wiki Log
This is the chronological audit log of all operations on the wiki.
This is the audit log of the operations on the wiki, in the order the entries arrived.
Each entry records what happened, when, and with what result.
## Entry Format