|
1 | 1 | # Plan: Get tui-integration-design onto upstream v1.5/main |
2 | 2 |
|
3 | | -This branch includes the web app, shared project, TUI, and reworked CLI using shared. Client/server apps will be removed (or are not needed from main). The goal is for **all branch changes to win**; conflicts against main have already been resolved recently, so conflicts with v1.5 should be minimal. |
| 3 | +This branch includes the web app, **core** (renamed from shared), TUI, and reworked CLI using core. Client/server have been removed. The goal is for **all branch changes to win**; conflicts against main have already been resolved recently, so conflicts with v1.5 should be minimal. |
4 | 4 |
|
5 | 5 | ## Steps |
6 | 6 |
|
7 | 7 | 1. **Rebase onto v1.5/main** |
8 | | - - `git fetch upstream` |
9 | | - - `git rebase upstream/v1.5/main` |
| 8 | + - **`git fetch upstream`** — Downloads the latest commits from the `upstream` remote (modelcontextprotocol/inspector) into your local repo. It does **not** change your current branch or working tree; it only updates your local copy of branches like `upstream/v1.5/main`. |
| 9 | + - **`git rebase upstream/v1.5/main`** — Replays your branch’s commits on top of `upstream/v1.5/main`. Git temporarily moves your branch pointer to the tip of v1.5/main, then applies each of your commits one by one. If a commit applies cleanly, it’s replayed; if it conflicts, rebase stops and waits for you to fix conflicts (see step 2) and run `git rebase --continue` (or `git rebase --abort` to cancel). |
| 10 | + - **If you hit a bunch of conflicts and want to undo:** Run **`git rebase --abort`**. That cancels the rebase and restores your branch and working tree to exactly how they were right before you ran `git rebase`. You can then fix things or try again later. |
10 | 11 |
|
11 | | -2. **Resolve any conflicts by keeping this branch’s version** |
12 | | - - For every conflict, keep the branch version (shared, TUI, reworked CLI, web app, and client/server removal). |
13 | | - - During a rebase, “your” content is in the commit being replayed (“theirs” in rebase terminology), so when resolving, keep that side. |
| 12 | +2. **If the rebase stops with conflicts, resolve them (keep this branch’s content)** |
| 13 | + - When rebase hits a conflict, Git will print something like `CONFLICT (content): Merge conflict in <file>` and stop. |
| 14 | + - In rebase, **“theirs” = the commit being replayed (your branch)** and **“ours” = the branch you rebased onto (v1.5/main)**. So to keep your version, keep “theirs.” |
| 15 | + - For each conflicted file, either: |
| 16 | + - **Option A:** `git checkout --theirs -- <path>` then `git add <path>`, or |
| 17 | + - **Option B:** Open the file, delete the conflict markers (`<<<<<<<`, `=======`, `>>>>>>>`), leave the code that came from **your** branch (the block after `=======` that was “theirs”), save, then `git add <path>`. |
| 18 | + - After all conflicts in that commit are fixed: `git add` any resolved files, then `git rebase --continue`. |
| 19 | + - If it stops again on a later commit, repeat: resolve (keep your branch’s version), `git add`, `git rebase --continue`. |
| 20 | + - To abort and go back to before the rebase: `git rebase --abort`. |
14 | 21 |
|
15 | 22 | 3. **Push and open the PR** |
16 | 23 | - `git push origin tui-integration-design --force-with-lease` |
17 | 24 | - Open PR: base = **modelcontextprotocol/inspector** branch **v1.5/main**, compare = **BobDickinson/inspector** branch **tui-integration-design**. |
18 | 25 |
|
19 | 26 | ## Notes |
20 | 27 |
|
21 | | -- Deleting client/server before the rebase is optional; it only affects how the history looks, not the outcome. |
22 | 28 | - No need to merge main’s changes into this branch—the rebase replays this branch on top of v1.5/main so the PR is a linear “v1.5/main + these commits.” |
0 commit comments