···1---
2atroot: true
3template:
4-slug: fork-pulls
5title: the lifecycle of a pull request
6subtitle: We shipped a bunch of PR features recently; here's how we built it
7date: 2025-04-15
···102103Great, we've got a fork on your knot now. You can now work on your
104change safely here -- but how do you now propose a pull request from
105-your fork? And before that, what exactly is a "pull request" anyway?
106107### ref comparisons across forks
108···111realised that so far, this only works *within* the same repository --
112and not across forks, which is another git repository entirely.
113114-We'll admit: we ... omitted some sneaky bits in the forks section above.
115-The idea is simple: we already have all the bits needed to compare two
116local refs, so why not just "localize" the remote ref?
117118That's where our hidden tracking refs come in. When you create a pull
···138whenever you push new commits to your feature branch, ensuring that the
139comparison -- and any potential merge conflicts -- are always based on
140the latest target branch state.
00000000
···1---
2atroot: true
3template:
4+slug: pulls
5title: the lifecycle of a pull request
6subtitle: We shipped a bunch of PR features recently; here's how we built it
7date: 2025-04-15
···102103Great, we've got a fork on your knot now. You can now work on your
104change safely here -- but how do you now propose a pull request from
105+your fork?
106107### ref comparisons across forks
108···111realised that so far, this only works *within* the same repository --
112and not across forks, which is another git repository entirely.
113114+We'll admit: we ... omitted some sneaky bits about forks earlier. The
115+idea is simple: we already have all the pieces needed to compare two
116local refs, so why not just "localize" the remote ref?
117118That's where our hidden tracking refs come in. When you create a pull
···138whenever you push new commits to your feature branch, ensuring that the
139comparison -- and any potential merge conflicts -- are always based on
140the latest target branch state.
141+142+143+<figure class="max-w-[550px] m-auto flex flex-col items-center justify-center">
144+ <img class="h-auto max-w-full" src="/static/img/hidden-ref.png">
145+ <figcaption class="text-center">Hidden tracking ref.</figcaption>
146+</figure>
147+148+