Fix upstream fixture-backed level setups
This commit is contained in:
@@ -22,7 +22,7 @@ This file records the upstream Ruby setup and validation intent beside the Andro
|
||||
| `number_of_files_committed` | Initializes repo with committed modified files plus staged/untracked files, leaving exactly two files staged for commit. | Initializes equivalent file states with two staged files. | Equivalent. |
|
||||
| `rm` | Initializes repo, commits `deleteme.rb`, then deletes it from the working tree. | Initializes repo with tracked deleted `deleteme.rb`. | Equivalent. |
|
||||
| `rm_cached` | Initializes repo, stages `.gitignore` and `deleteme.rb`. | Initializes repo with both files staged. | Equivalent. |
|
||||
| `stash` | Copies upstream fixture containing committed `lyrics.txt` plus local modifications. | Initializes repo with tracked modified `lyrics.txt` and matching native fixture. | Equivalent. |
|
||||
| `stash` | Copies upstream fixture containing committed `lyrics.txt` plus local modifications. | Native setup creates the same committed lyrics text and the same trailing `Hey!` working-tree modification. | Equivalent. |
|
||||
| `rename` | Initializes repo, commits `oldfile.txt`. | Initializes repo with tracked `oldfile.txt` and commit. | Equivalent. |
|
||||
| `restructure` | Initializes repo with tracked `about.html`, `contact.html`, `index.html`. | Same tracked HTML files. | Equivalent. |
|
||||
| `log` | Initializes repo with one commit whose message identifies the target. | Same one modeled commit. | Equivalent. |
|
||||
@@ -38,32 +38,32 @@ This file records the upstream Ruby setup and validation intent beside the Andro
|
||||
| `pull` | Initializes repo and adds remote URL `https://github.com/pull-this/thing-to-pull`. | Native setup creates local synthetic remote with a remote commit. | Deliberate offline equivalent to upstream network remote. |
|
||||
| `remote_add` | Initializes repo with no origin remote. | Same. | Equivalent. |
|
||||
| `push` | Creates divergent local and remote master histories: local has `file3`, remote has `file4`. | Native setup creates synthetic divergent origin with the same file/commit shape. | Equivalent. |
|
||||
| `diff` | Copies upstream fixture with committed `app.rb` and one changed line. | Native setup creates committed then modified `app.rb`. | Equivalent. |
|
||||
| `blame` | Copies upstream fixture where password line is authored by Spider Man. | Native setup creates deterministic author history for `config.rb`. | Equivalent. |
|
||||
| `diff` | Copies upstream fixture with committed `app.rb` and one changed line. | Native setup creates the same committed `app.rb` and the same line 26 working-tree modification. | Equivalent. |
|
||||
| `blame` | Copies upstream fixture where password line is authored by Spider Man. | Native setup creates the same `config.rb` content with the password line authored by Spider Man. | Equivalent. |
|
||||
| `branch` | Initializes repo with one `README` commit. | Same. | Equivalent. |
|
||||
| `checkout` | Initializes repo with one `README` commit. | Same. | Equivalent. |
|
||||
| `checkout_tag` | Creates five commits and tags `v1.0`, `v1.2`, `v1.5`. | Same commit/tag shape. | Equivalent. |
|
||||
| `checkout_tag_over_branch` | Creates same tags and also a branch named `v1.2`. | Same tag-plus-branch ambiguity. | Equivalent. |
|
||||
| `branch_at` | Creates three commits on `file1`. | Same three modeled commits and native setup. | Equivalent. |
|
||||
| `delete_branch` | Copies fixture with `delete_me` branch. | Initializes repo with `delete_me` branch. | Equivalent. |
|
||||
| `delete_branch` | Copies fixture with committed `readme` and `delete_me` branch at the same commit as `master`. | Native setup creates committed `readme` with `master` and `delete_me` pointing at it. | Equivalent. |
|
||||
| `push_branch` | Creates local and remote repos with multiple branches and target `test_branch`. | Native setup creates synthetic remote and same branch intent. | Equivalent state projection. |
|
||||
| `merge` | Copies fixture with `file1` on master and `file2` on feature. | Native setup creates master `file1` and feature `file2`. | Equivalent. |
|
||||
| `fetch` | Creates local master tracking origin/master; remote later gains `new_branch` with `file1`. | Native setup creates the same synthetic remote branch scenario; model starts with one fetched head. | Equivalent after latest update. |
|
||||
| `rebase` | Copies fixture with divergent `master` and `feature`. | Native setup creates matching divergent `master` and `feature`. | Equivalent. |
|
||||
| `rebase_onto` | Creates `authors.md`, bad `wrong_branch`, and `readme-update` branch needing `--onto`. | Native setup creates the same branch graph and files. | Equivalent setup. |
|
||||
| `repack` | Initializes repo with one committed `foo`. | Same. | Equivalent. |
|
||||
| `cherry-pick` | Copies fixture with `master` and `new-feature` commits. | Native setup creates equivalent branches/files. | Equivalent. |
|
||||
| `grep` | Copies fixture with four TODO entries. | Initializes `app.rb` with four TODO entries. | Equivalent. |
|
||||
| `cherry-pick` | Copies fixture with `master` and `new-feature`; the desired README commit is not the branch tip. | Native setup creates the same branch shape: learner must cherry-pick the earlier README commit from `new-feature`. | Equivalent. |
|
||||
| `grep` | Copies fixture with four TODO entries across `app.rb` and `config.rb`. | Native setup creates both source files with the same four TODO entries. | Equivalent. |
|
||||
| `rename_commit` | Creates commits `Initial commit`, `First coommit`, `Second commit`. | Same typo commit sequence. | Equivalent. |
|
||||
| `squash` | Creates initial hidden commit plus README and three squash-target README updates. | Same commit sequence. | Equivalent. |
|
||||
| `merge_squash` | Creates master and `long-feature-branch` with multiple feature changes. | Native setup creates the same branch and `file3` feature effect. | Mostly equivalent; Android currently validates less detail. |
|
||||
| `reorder` | Creates commits `Initial Setup`, `First commit`, `Third commit`, `Second commit`. | Same order. | Equivalent. |
|
||||
| `bisect` | Copies upstream Ruby fixture where `ruby prog.rb 5` or `make test` identifies bad hash `18ed2ac`. | Creates a native Git history with `balance.txt`, `test-balance.sh`, and `known-good` tag. | Intentional Android adaptation: no Ruby or make dependency, but real `git bisect` remains playable. |
|
||||
| `stage_lines` | Commits initial `feature.rb`, then leaves two unstaged feature lines. | Initializes tracked `feature.rb` containing both feature lines. | Setup is close, but Android does not yet model partial staged vs unstaged hunks. |
|
||||
| `find_old_branch` | Copies fixture with recoverable `solve_world_hunger` branch. | Initializes branch map with `solve_world_hunger`. | Equivalent for visible exercise state. |
|
||||
| `find_old_branch` | Copies fixture whose active distractor branch is renamed to `master`, with other distractor branches and recoverable `solve_world_hunger`. | Native setup creates `master`, `solve_world_hunger`, `cure_common_cold`, and `blowup_sun_for_ransom` branches with matching working-tree files. | Equivalent. |
|
||||
| `revert` | Creates commits `First commit`, `Bad commit`, `Second commit`. | Same commit messages. | Equivalent. |
|
||||
| `restore` | Creates `file1`, `file2`, then creates and removes `file3` so it is recoverable from reflog/history. | Native setup creates matching history and removes `file3`; model starts without `file3`. | Equivalent. |
|
||||
| `conflict` | Copies fixture with `master` and `mybranch` conflict in `poem.txt`. | Initializes equivalent branch/file conflict fixture. | Equivalent setup. |
|
||||
| `conflict` | Copies fixture with `master` and `mybranch` conflict in non-empty `poem.txt`. | Native setup creates the conflicting poem history, leaving `master` with `Categorized shoes by color` and `mybranch` with the correct `Sat on a wall` line. | Equivalent setup. |
|
||||
| `submodule` | Initializes empty repo. | Same. | Equivalent; network submodule operation is modeled. |
|
||||
| `contribute` | No local setup; solution clones upstream externally. | Empty state. | Deliberate simplification for mobile/offline final prompt. |
|
||||
|
||||
@@ -124,7 +124,7 @@ This file records the upstream Ruby setup and validation intent beside the Andro
|
||||
| `find_old_branch` | Current branch is `solve_world_hunger`. | Same. | Equivalent. |
|
||||
| `revert` | More than three commits and a revert of "Bad commit" exists. | A commit message starts with `Revert`. | Slightly looser; sufficient for current fixture. |
|
||||
| `restore` | `file3` exists. | `file3` is tracked. | Equivalent. |
|
||||
| `conflict` | On `master`, merge commit has two parents, conflict markers removed, both poem lines preserved. | `poem.txt` contains expected merged poem text. | Known gap: Android does not model merge-parent count for conflict resolution. |
|
||||
| `conflict` | On `master`, merge commit has two parents, conflict markers removed, both poem lines preserved. | Requires a merge action on `master`, conflict markers removed, and the correct `Sat on a wall` poem line preserved. | Known gap: Android does not expose merge-parent count in `RepoState`, so it tracks the merge command instead. |
|
||||
| `submodule` | `githug-include-me` directory exists, has README, and is a gitlink/submodule. | `submodules` contains `githug-include-me` URL. | Equivalent state projection. |
|
||||
| `contribute` | Clones upstream and checks for a commit authored by configured user. | Any nonblank command. | Deliberate mobile/offline simplification for the final contribution prompt. |
|
||||
|
||||
@@ -159,6 +159,6 @@ These are the remaining known non-parity items that need additional model suppor
|
||||
|
||||
- `stage_lines`: model partial staged vs unstaged hunks.
|
||||
- `merge_squash`: verify the exact squashed file/content effects.
|
||||
- `conflict`: model merge parent count or inspect merge commit parents.
|
||||
- `conflict`: expose merge parent count in `RepoState` instead of relying on tracked merge-command evidence.
|
||||
- `rebase_onto`: verify final commit count/content and removal of "Wrong changes".
|
||||
- `contribute`, `clone`, `clone_to_folder`: current Android behavior intentionally avoids real network-dependent validation.
|
||||
|
||||
Reference in New Issue
Block a user