From aac1ef420005ad77f467a641d9139e77839d0469 Mon Sep 17 00:00:00 2001 From: Eric Defore Date: Wed, 26 Aug 2026 09:05:35 -0400 Subject: [PATCH 1/2] Bring over what the standalone commits after the absorb --- docs/configuration.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/configuration.md b/docs/configuration.md index 7d6e24f..534f553 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -185,6 +185,28 @@ line to the author who wrote it in the standalone. Path-filtered `git log -- sub-plugins/give-recurring` is the exception and stops at the move, since that is where the directory begins. +### Later commits to the standalone + +The standalone may get more commits before it is archived. Keep the `old-repo` remote instead of +removing it, and merge each batch with `-X subtree`, which tells git where the standalone's root now +lives: + +```bash +git fetch --no-tags old-repo +git merge -X subtree=sub-plugins/give-recurring old-repo/main +``` + +Host-only edits under the prefix survive, new files arrive nested, and blame still names the author +who wrote each line in the standalone. Repeat it for each batch, then remove the remote once the +standalone is archived. A conflict here is a real one — both sides changed the same lines — not a +path mix-up. + +**Do not run the first import again.** A second nested branch shares history with the first, so git +picks a merge base in which the standalone's files were still at its own root, and reads the new +nesting as a rename away from that root. A file the host plugin keeps at *its* root under one of the +same names — `README.md`, most often — is deleted as part of that rename, and the merge reports no +conflict. + ## What changes for the bundled plugin This library includes bundled plugins from inside a method, not at global scope, so variables From 19676de8381f9c66ba21b6775187d4d56258cd7b Mon Sep 17 00:00:00 2001 From: Eric Defore Date: Wed, 26 Aug 2026 09:13:31 -0400 Subject: [PATCH 2/2] Name the conflict shapes the follow-up merge can hit --- docs/configuration.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index 534f553..5060e3a 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -198,8 +198,9 @@ git merge -X subtree=sub-plugins/give-recurring old-repo/main Host-only edits under the prefix survive, new files arrive nested, and blame still names the author who wrote each line in the standalone. Repeat it for each batch, then remove the remote once the -standalone is archived. A conflict here is a real one — both sides changed the same lines — not a -path mix-up. +standalone is archived. A conflict here is genuine — both sides edited the same path, or one edited +what the other deleted, or both added it — rather than a sign the prefix is wrong. Read the unmerged +paths out of `git status` and resolve each by its type. **Do not run the first import again.** A second nested branch shares history with the first, so git picks a merge base in which the standalone's files were still at its own root, and reads the new