···11---
22atroot: true
33template:
44-slug: fork-pulls
44+slug: pulls
55title: the lifecycle of a pull request
66subtitle: We shipped a bunch of PR features recently; here's how we built it
77date: 2025-04-15
···102102103103Great, we've got a fork on your knot now. You can now work on your
104104change safely here -- but how do you now propose a pull request from
105105-your fork? And before that, what exactly is a "pull request" anyway?
105105+your fork?
106106107107### ref comparisons across forks
108108···111111realised that so far, this only works *within* the same repository --
112112and not across forks, which is another git repository entirely.
113113114114-We'll admit: we ... omitted some sneaky bits in the forks section above.
115115-The idea is simple: we already have all the bits needed to compare two
114114+We'll admit: we ... omitted some sneaky bits about forks earlier. The
115115+idea is simple: we already have all the pieces needed to compare two
116116local refs, so why not just "localize" the remote ref?
117117118118That's where our hidden tracking refs come in. When you create a pull
···138138whenever you push new commits to your feature branch, ensuring that the
139139comparison -- and any potential merge conflicts -- are always based on
140140the latest target branch state.
141141+142142+143143+<figure class="max-w-[550px] m-auto flex flex-col items-center justify-center">
144144+ <img class="h-auto max-w-full" src="/static/img/hidden-ref.png">
145145+ <figcaption class="text-center">Hidden tracking ref.</figcaption>
146146+</figure>
147147+148148+