The release that moved mvcc/ under server/¶
Claim — you can name the first release that shipped the server/storage/ path, and support it two independent ways: a commit sha from git log --follow, and a tag that contains that sha.
Rests on — exercise 1's clone, and technique 2 of the method. This is the first of the two moves that are yours this phase.
Topology — none. forge only; it is not part of any topology and is up regardless.
Do
- Follow the file backwards through the rename:
Read the bottom of that output first: the earliest commits are for a path that is not the one you asked about.
- Find the rename itself rather than eyeballing it. Ask git to show you the commit where the name changed:
git log --follow --name-status --diff-filter=R --format='%H %s' \
-- server/storage/mvcc/key_index.go | head -20
- Now date it. Given the sha
Sfrom step 2:
The first tag in that list is your answer to which release first shipped it.
- Cross-check from the other end, without using the answer you just got. Pick a release well before and one well after, and ask what the path was in each:
One of them has a top-level mvcc/; one has server/. That bracket is the check on step 3.
- Do the same for one more file so the technique is not a single lucky result:
server/storage/mvcc/revision.go, which module 2.1 reads next.
Expect — --follow crosses the rename and shows commits touching mvcc/key_index.go under its old path, and step 4's two ls-tree listings disagree about whether a top-level mvcc/ exists. If --follow shows nothing before the move, you cloned with --depth 1 after all — the technique needs the history exercise 1 told you to keep. Beware the trap in step 3: git tag --contains lists every tag containing the sha, including release candidates and later minors, so it must be sorted and read as "the earliest of these", not "the first line printed".
Write down — the Was → Is row for this move, with the sha and the release. Format it exactly as the checklist asks: a path, an arrow, a path, and the identifier a hostile reader would use to check you. One of the two archaeology rows is now done.
Teardown — nothing was created. The clone stays; exercise 3 uses the other one.