BeatstackBlog

One ahead, twenty behind

Ten pull requests went into 0.13.1 today, between 3:39 in the afternoon and 8:01 at night. The release went out at 9:20. One line each:

  • 105: an 80px gap between a record list and its detail column, and a question mark for the undecided canon glyph, so the four states read as four shapes in greyscale. The stylesheet was one line from its cap, so the new line was paid for by deleting a rule.
  • 106: a scene at a location already used, with a cast already met, opened on a blank page. Its summary is now the third offered paragraph. Sequences badge where a thread opens and where it closes.
  • 107: the square-up. Thirteen commits and 144 files before the next feature. The in-app logo had been loading the 1024px dock icon, 861KB, to draw a mark 28 pixels tall.
  • 108: the Script rail said Written 1 and the board said 0.5 written for the same project, and both were right. One counts sheets, one sums lengths. The rail now says which.
  • 109: the one this post is about.
  • 110: the store, 1,415 lines in one file, is now a file per slice with 65 lines holding them together.
  • 111: an untitled sequence had a different number on every screen. Under a canon filter, "Sequence 2" in the export was Sequence 3 in the app. One rule now, and a number never moves when a sibling is archived.
  • 112: the concrete lines went back into the briefs, as prohibitions. "She confronts her past" is nothing. "She recognises the coat" is a scene.
  • 113: Fountain export. The app already knows what every line is, so it refuses Fountain's guess-by-shape and forces the marks instead.
  • 114: the release script can never wipe this Mac's Keychain again, because the step that could is gone.

Now 109. Two sessions were working at once this afternoon. The square-up could see a commit sitting in a peer's checkout, one that rewrote the planned-gap strip, so it stepped around every file that commit touched and wrote in its ledger: wait, then read it as one thing after it lands. The peer had made that commit at 3:56, seventeen minutes after its own pull request merged, and pushed it to that pull request's branch.

So it landed nowhere. For three hours it sat one commit ahead of main and twenty behind, on a branch nobody would look at again, while the ledger on main kept recommending everyone wait for it.

A third session found it by reading the ledger, cherry-picked it across with its author and date intact, and merged it at 7:11. Over the next forty minutes, four pull requests opened against that merge, and all four closed inside a single minute, 7:52:10 to 7:52:38. One of them was the three consolidations the ledger had queued behind it.

The commit was never lost. It was filed under a pull request that had already closed, which, for a commit, is the same thing.