Jared Palmer Profile picture
Oct 21 2 tweets 1 min read Read on X
RE: Stacked Diffs on @GitHub

After discussion w @ttaylorr_b, we can implement stacked PRs/PR groups already (in fact we kind of do with Copilot) but restacking (automatically fanning out changes from the bottom of the the stack upwards) would be wildly inefficient. To do it right, we need to migrate @GitHub to use git reftables instead of packed-refs so that multi-ref updates / restacking will be O(n) instead of ngmi.

This will take some time but has been greenlit.
To be clear, packed-refs doesn't make restacking impossible by itself, and we already can/do batch reference updates together into a single transaction. Any individual transaction only rewrites the packed-refs file at most once.

The thing that @ttaylorr_b et al is more worried about is having many more references in general as a result of stacked PRs (e.g., refs/pull/NNN/v1, refs/pull/NNN/upstack, etc.) and the slowdown that would cause when doing deletions (outside of stacked PRs) in general.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Jared Palmer

Jared Palmer Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @jaredpalmer

Jan 27, 2023
Turbopack is adding support for webpack loaders.

This should be available in Next.js canaries starting next week Image
@turborepo This means Turbopack will work with babel, less, scss, postcss, svgr, mdx, and more. @wSokra + team are mad scientists. To get this to work, they built a custom IPC layer to talk with child node.js processes from Rust. The same layer is also used to read next.config.js 🤯
@turborepo @wSokra If you're interested in how this works, have a look at the turbopack-node crate. All sorts of goodies from @alexkirsz in here: github.com/vercel/turbo/t…
Read 4 tweets
Oct 25, 2022
After joining @vercel and launching @turborepo, @wSokra presented me with a vision of what a next gen bundler and build system could be. What if there was no distinction? What if you could parallelize and cache work all the way at down to the function level?

🧵
There are two ways to make a process faster: do less work or do work in parallel. We knew if we wanted to make the fastest bundler possible, we’d need to pull hard on both levers.

So we created a new low-level Turbo engine for incremental (and soon distributed) computation.
The Turbo engine works like a scheduler for function calls, allowing calls to be parallelized across all available cores.

The engine also caches the result of all the functions it schedules. It never needs to do the same work twice. It does the minimum work at maximum speed.
Read 9 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(