|
| 1 | += Pro Git, 3rd Edition — Progress |
| 2 | +:toc: |
| 3 | + |
| 4 | +Working task list for the third edition, derived from the chapter-by-chapter |
| 5 | +inventory in `REVISION_PLAN.md`. This file is edited by hand: mark a task done by |
| 6 | +changing `[ ]` to `[x]`, and add new tasks — or whole new sections — as they come |
| 7 | +up. The site's progress page renders this file directly, so keep the format: |
| 8 | +`== Section title` headings with `* [ ]` checklist items under them. |
| 9 | + |
| 10 | +== Project setup |
| 11 | + |
| 12 | +* [x] Import the 2nd-edition sources as the starting point |
| 13 | +* [x] Write the revision plan (`REVISION_PLAN.md`) |
| 14 | +* [x] Build the line-level `master` -> `main` inventory (`book_master_to_main_inventory.md`) |
| 15 | +* [x] Launch the project site — book reader, blog, history |
| 16 | +* [x] Set up the cloud build/test environment for agents |
| 17 | + |
| 18 | +== Policy decisions |
| 19 | + |
| 20 | +These gate the cross-cutting sweeps; decide them first. |
| 21 | + |
| 22 | +* [ ] Decide the `master` -> `main` rename policy (gates X1, ~602 renames) |
| 23 | +* [ ] Decide how to represent example hashes: regenerate everything at SHA-256, or keep labeled SHA-1 legacy examples (gates X2) |
| 24 | + |
| 25 | +== Cross-cutting sweeps |
| 26 | + |
| 27 | +* [ ] X1 — `master` -> `main` across the book (see the inventory for the per-line breakdown) |
| 28 | +* [ ] X1 — regenerate diagrams and screenshots that show a `master` branch |
| 29 | +* [ ] X2 — SHA-1 -> SHA-256 default-hash pass (~31 files reference hashes) |
| 30 | +* [ ] X3 — version framing: bump "written using Git version 2" to 3.x; reframe "since Git 2.23/2.27/2.28" notes as baseline behavior |
| 31 | +* [ ] X4 — cover the `safe.bareRepository` and `safe.directory` security defaults |
| 32 | +* [ ] X5 — forge/IDE screenshot refresh (Ch 4, Ch 6, Appendix A) |
| 33 | + |
| 34 | +== Chapter 1 — Getting Started |
| 35 | + |
| 36 | +* [ ] Update the headline SHA-1 passage in `what-is-git.asc` (X2) |
| 37 | +* [ ] Refresh per-platform install steps in `installing.asc` |
| 38 | +* [ ] Add the Rust toolchain requirement to "compile from source" |
| 39 | +* [ ] Rewrite the default-branch subsection of `first-time-setup.asc` for a main-default world |
| 40 | +* [ ] Note Git's maturation and the 3.0 transition in the history section |
| 41 | + |
| 42 | +== Chapter 2 — Git Basics |
| 43 | + |
| 44 | +* [ ] Normalize `restore`/`switch` as standard commands (drop the "new in 2.23" framing) |
| 45 | +* [ ] Decide whether to teach `restore`/`switch` before `checkout`/`reset` |
| 46 | +* [ ] Update the `pull.rebase` warning framing in `remotes.asc` |
| 47 | +* [ ] Regenerate example hashes per the X2 policy |
| 48 | +* [ ] Note the `main` and reftable defaults in `getting-a-repository.asc` |
| 49 | + |
| 50 | +== Chapter 3 — Git Branching |
| 51 | + |
| 52 | +* [ ] X1 sweep (101 renames — the heaviest concentration) |
| 53 | +* [ ] Regenerate the branch diagrams in `diagram-source/` |
| 54 | +* [ ] Revisit the branch-renaming discussion in `branch-management.asc` for a main-default world |
| 55 | + |
| 56 | +== Chapter 4 — Git on the Server |
| 57 | + |
| 58 | +* [ ] Demote Gitweb and `git daemon`; lead with modern self-hosting |
| 59 | +* [ ] Add Gitea/Forgejo coverage |
| 60 | +* [ ] Cover protocol v2; retire dumb HTTP |
| 61 | +* [ ] Recommend Ed25519 keys in `generating-ssh-key.asc` |
| 62 | +* [ ] Add a sidebar on reftable and SHA-256 hosting/interop implications |
| 63 | +* [ ] Refresh screenshots (X5) |
| 64 | + |
| 65 | +== Chapter 5 — Distributed Git |
| 66 | + |
| 67 | +* [ ] X1 sweep (`contributing` 48 renames, `maintaining` 39) |
| 68 | +* [ ] Contextualize the email-based workflow against PR-based norms |
| 69 | + |
| 70 | +== Chapter 6 — GitHub |
| 71 | + |
| 72 | +* [ ] Re-capture all screenshots (X5) |
| 73 | +* [ ] Text pass for the current PR review UI, org settings, and account setup flows |
| 74 | +* [ ] Scope decision on Actions, Codespaces, and the current review experience |
| 75 | +* [ ] Default-branch language in examples (26 renames in `2-contributing`) |
| 76 | + |
| 77 | +== Chapter 7 — Git Tools |
| 78 | + |
| 79 | +* [ ] Add SSH commit/tag signing to `signing.asc` (plus `gpgsm` for X.509) |
| 80 | +* [ ] Rework `replace.asc` — grafts are removed in 3.0 |
| 81 | +* [ ] Add the new `git history` command to `rewriting-history.asc` |
| 82 | +* [ ] Lead `rewriting-history.asc` with `git filter-repo`; mark `filter-branch` deprecated |
| 83 | +* [ ] Update `credentials.asc` for Git Credential Manager |
| 84 | +* [ ] Add `git worktree` coverage |
| 85 | +* [ ] Add `git sparse-checkout` coverage |
| 86 | +* [ ] Evaluate `git range-diff`, `git replay`, `git bugreport`, `git diagnose` for coverage |
| 87 | +* [ ] X1 sweep (147 renames — the highest chapter total) |
| 88 | + |
| 89 | +== Chapter 8 — Customizing Git |
| 90 | + |
| 91 | +* [ ] Add `safe.bareRepository` and `safe.directory` to `config.asc` (X4) |
| 92 | +* [ ] Rewrite `init.defaultBranch` as default-is-main |
| 93 | +* [ ] Note `--object-format` (SHA-256) and `extensions.refStorage` (reftable) |
| 94 | +* [ ] Note removed config: `core.commentString=auto`, `core.preferSymlinkRefs=true` |
| 95 | +* [ ] Consider `git for-each-repo` in the scripting material |
| 96 | +* [ ] X1 sweep (`policy.asc` enforced-workflow example, 8 renames) |
| 97 | + |
| 98 | +== Chapter 9 — Git and Other Systems |
| 99 | + |
| 100 | +* [ ] Trim `git svn` coverage |
| 101 | +* [ ] Demote the Mercurial and Perforce bridges to a short "bridges exist" section |
| 102 | +* [ ] Verify the bridge tooling runs on modern Python |
| 103 | +* [ ] X1 sweep (23+ renames in the Hg sections, 37 in `git-p4`) |
| 104 | + |
| 105 | +== Chapter 10 — Git Internals |
| 106 | + |
| 107 | +* [ ] Rewrite `objects`/`packfiles` with the object-format framing and the SHA-256 interop story |
| 108 | +* [ ] Add reftable to `refs.asc` — the new default, and the why (case-collision, performance) |
| 109 | +* [ ] Fold protocol v2 into `transfer-protocols.asc` |
| 110 | +* [ ] Verify `maintenance.asc` against current `git maintenance` |
| 111 | +* [ ] Add `commit-graph` and `multi-pack-index` to the performance story |
| 112 | +* [ ] X1 sweep (70 renames) |
| 113 | + |
| 114 | +== Appendices |
| 115 | + |
| 116 | +* [ ] Appendix A: version/screenshot refresh for Sublime Text, Visual Studio, VS Code, JetBrains IDEs |
| 117 | +* [ ] Appendix A: version-check the shell completion sections |
| 118 | +* [ ] Appendix B: refresh binding versions (`libgit2`, `jgit`, `go-git`, `dulwich`) |
| 119 | +* [ ] Appendix B: promote `go-git`; add per-library SHA-256 support notes |
| 120 | +* [ ] Appendix C: add post-2.1 commands to the command index; note the 3.0 removals |
| 121 | + |
| 122 | +== New material |
| 123 | + |
| 124 | +* [ ] Dedicated "Git 3.0 / migrating to SHA-256" section |
| 125 | +* [ ] Reftable explainer (pairs with the Ch 10 refs rewrite) |
| 126 | +* [ ] Monorepo-scale material: sparse-checkout, partial clone, `scalar`, `git backfill` |
| 127 | +* [ ] `git maintenance` + commit-graph as a first-class performance story |
| 128 | + |
| 129 | +== Publication |
| 130 | + |
| 131 | +* [ ] Redo the contributors list and dedication |
| 132 | +* [ ] Final pass on the appendices (fastest to rot; do near publication) |
| 133 | +* [ ] Watch for the LTS tag (the last 2.x before 3.0) and time the release to it |
0 commit comments