diff options
| author | Doan Luu Duc Tai <doan@luuduct.ai> | 2026-10-30 22:38:19 -0500 |
|---|---|---|
| committer | Doan Luu Duc Tai <doan@luuduct.ai> | 2026-10-30 22:38:19 -0500 |
| commit | dd1d5863ef865ebe29dc93d03ca6abc0aaf48bee (patch) | |
| tree | bb5a3c51eae1727d897b4817eebab65c3ec02094 /docs | |
| parent | 6933ec28be3dac0dc17cd634c663db3b4818caad (diff) | |
Document the signed history rewrite and clone recovery
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/GIT-HISTORY.txt | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/docs/GIT-HISTORY.txt b/docs/GIT-HISTORY.txt new file mode 100644 index 0000000..2dfc335 --- /dev/null +++ b/docs/GIT-HISTORY.txt @@ -0,0 +1,85 @@ +Copyright (C) 2026 Doan Luu Duc Tai <doan@luuduct.ai> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see <https://www.gnu.org/licenses/>. + +GIT IDENTITY AND SIGNATURE REWRITE + + Requested to replace the historical ops <ops@localhost> identity with + Doan Luu Duc Tai <doan@luuduct.ai> and sign the history with the canonical + RSA-2048 key 3346AA3150F8F16828BB0D14F8C66DF77AFECEA6. + + Ten historical author identities and their corresponding committer identities + were corrected. All 27 commits reachable from main and feature/private-chat + at the time of the rewrite were recreated and signed because rewritten + parents change descendant commit IDs. Every new signature was verified. + + Every corresponding tree, message, original author timestamp/time zone, and + original committer timestamp/time zone was preserved. Merge topology was + preserved. Signature creation times reflect the new signing operation. + main's file tree is unchanged. Configuration/chat development stays on + feature/private-chat; rewriting metadata does not deploy that code to main. + + Remote updates use an atomic push and exact force-with-lease expectations + for both branches, preventing overwrite of an unexpected remote update. + Existing objects and reflogs may still contain old IDs: this is an authorship + correction, not a claim of private-data removal or historical erasure. + +EXISTING CLONES + + The active development checkout is already aligned. Other clones must fetch + the new history instead of using an ordinary pull across divergent histories. + Preserve local-only commits and working changes first. A fresh development + clone is also possible; keep private .env and runtime data out of Git. + + For an existing clone with no local-only commits: + + git fetch origin + git switch main + git reset --keep origin/main + + For a feature checkout, use feature/private-chat in the final two commands. + --keep refuses updates that would overwrite conflicting working changes. + Do not blindly reset a clone with independent local work; use the mapping + below to identify the corresponding rewritten base before rebasing that work. + Git changes do not remove or replace ignored .env or var/ data. + +ORIGINAL TO REWRITTEN COMMITS + + 47fcc566884d7078c153cdce9fb62399fcca5d9e c4b2f892a1c6508360a683c90e8c4d596c521336 + 37d5e4a152df67d247349d2ed289bf65859ead53 020d3454cad6619bf25c6ecb0a293502f40364bd + 8a327a41cdce40933b977f7c6662929488bcf83e 64a1b484abb96c91da9aa23e0e45576749f6cdfe + 3a8956f9cb85184ae2b8202d7a733124a0d3f95f 9599590f67c24f70c400b967d162095c63f6af61 + 2f5c323be4a44b80cf9e39d51210776146a77cbd 1632c88ba08c62966c1f0b1578741d8af007e6fd + 118ba081389cfd80b38c9c691fd6d75f6497dcb5 274e70679b83bcac3dee3599bd9389a3332462ec + 38aa5d1f2a8dfc8ea97c0fdce8feae7e37795533 5317fa43b79e4251fcbcff2b4f1243a961ac00fe + 902cfd395fb03d6147813560ac5fcd7146702a1d 463c6f48a06730c29f89b2f376e68dc805df5cc9 + e373f154dbeacc5a0e83b4ec73c3aa316239c029 5386a63bfb2f14cab99874e7c414e1a418b01f67 + 006a1e94075e90fccfe248cd66bf7d0586a86279 84960925108eb2b5950d4c299b15b18893e0c0d0 + 19a0280d7dabd4ca637d8070cc7d3691a0e85bd1 909dce458d4bbef6710c2b4a67cd906902bb7f3f + c06e29dae4bb290fd2849f69da1bfa940c5a8222 5bed750baa5d782427e98550d34124f569e2fff8 + 714866be200b882be437375006180456284bab1c 9c7dd654512b8f51af15d50dd75a515566723be7 + 9f070f7ad0952c61b4ee66d2a01ff1bdf7ade0a8 cad7ab1e1ab1dde8ff4ba349cd5b1a05bbd32b05 + faaac8558431c80a6b8fbcf2c8f17f16d8602ab6 1386bd16b0fd796314d9ad70aede0946bd5c46bd + 92bf96961c09d7df6b1bfea72eb8a107bcf9e221 d546193ee543a5b1a0a097d0a7deca76e81b7de2 + 0a0cdc0c44dd8b4fb44d8a859962c40c593e98eb f196233257d247c94550cf822b91bc3c9d8a7f8f + 1206813d47e8602f08cbeaf27e73453e089e7c52 834a21a7cadce64889856a2a7521440a1519e244 + d611c869eb12e7fff5754be31775f82200ec958b b46ece18a424eaea3f396ddae7e45e91d1c0e742 + 436e217c7858888702d2b6d9e655597ccadb7281 f196c27faf265cd14d8d7accf58e87b4df3c8a91 + 7a0ce2805258e8ac061202904379692d53d5dc95 cf2f0e8c6752c401f152a8e534ba166839d4307e + 774074bb2bbd3bc07f7094cdce0935eca7520725 a0057b13fa4b6bed8aee3132001e79a245efabc8 + 143880db086c617b843340ca7023a879507761f8 0a4da3b86eb69f0f09b802a55e36fa9cf1bbf38c + 556eaa133e9cfe7f4c8e542708119fdfd311357e e6b350a1d48ca0490b7a3447bb8d0a4235514b76 + b7374fe09306c495131cf3673addb76a1dcf017d 3034705b6679bff1802c4180b7b4711b94fed7f9 + be16d00a8a4750028073e018ab2c58d54af192c4 c3b361c45ac8dd898d5c83a161abed5fc138b6c0 + 28a772cab50b1064e317aedbe4689aea286b1ec4 6933ec28be3dac0dc17cd634c663db3b4818caad |
