The Seven-Year Commute to Merge a Pull Request
Why is this VersionControl meme funny?
Level 1: Waiting by the Door
Imagine you asked your friend to help you with a project or play a game together. Your friend says, “Sure, I’ll come over after I get home!” You get all excited and wait by the door for them. You wait that evening... but they don’t show up. You think, “Maybe tomorrow.” Tomorrow comes and goes, then a week, then a month. Your friend still hasn’t come. Now imagine seven years go by! By then, you might have grown taller, changed hobbies, maybe even moved away, and you’re still technically waiting for that friend to arrive. At some point it becomes kind of funny because it’s so ridiculous – surely they’re not really coming after all that time. That’s exactly what this meme is about. In the coding world, someone made a change and the project’s leader said they’d review and add it “when I get home,” which usually means later that day. But he never did it, even after years and years. People started joking, like the person who asked “Got home yet?” seven years later – which is like nudging and saying, “Hey, you said you’d do it when you got home... you home yet buddy? It’s been ages!” The humor here is in the absurdly long wait. It’s funny in the same way as if a parent said, “I’ll be right back,” and then comes back when you’re already an adult. It makes you laugh because normally nobody would wait that long for something so simple. The poor code change is just like that kid waiting by the door, forever. The meme is poking fun at how sometimes things that should be quick (like checking and approving a friend’s idea, or a piece of code) end up taking forever because someone got busy or forgot. So, it’s basically joking, “Wow, this must be the longest wait ever!” and everyone who sees it can chuckle at how silly and extreme the situation is.
Level 2: Pull Request Patience
So what exactly are we looking at here? It’s a screenshot of a GitHub pull request timeline in dark theme, showing a conversation between developers that spans years. Let’s break it down in simpler terms. A pull request (PR) is a way for a developer to propose changes to a codebase using Git, a popular version control system. Think of a PR as saying, “Hey, I’ve got some code changes I’d like to add. Can someone review and merge them into the project?” Here, the user kofalt created a pull request back on March 19, 2013. They even made two commits that day (a commit is like a saved checkpoint of code changes, with a message describing what was done). The commit messages were humorously titled “Javascript is hard” and “Forgot a global”. This hints that kofalt probably struggled a bit with the code (hence “JavaScript is hard”), and then realized they made a small mistake (they “forgot a global” variable) and fixed it in the second commit. In JavaScript, especially back in 2013, if you forgot to declare a variable properly, you might accidentally create a global variable (a variable that exists everywhere in the code, which can cause bugs). So that second commit likely patches up that oversight.
After kofalt’s commits, the project maintainer gkoberger left a comment on the PR saying: “Okay this is awesome. I'll test it out and merge when I get home. Thanks!” At that moment in 2013, it looked promising – the maintainer liked the contribution and intended to merge it once they had a chance to test it on their home computer or in a proper environment. Maybe they were away from their main machine and couldn’t fully test right then. It’s common for a reviewer to say “I’ll check this later” if they’re on the go or busy. Everyone expected that “when I get home” meant later that day or that week.
But here’s where the CodeReviewPainPoints start. Time passed... and nothing happened. Days turned into weeks, weeks into months, and eventually years. The pull request remained open, meaning the code was never merged into the project’s main code. It became an abandoned pull request, stuck in review purgatory. This is an extreme case of a slow code review process. Usually, good practice is to respond to PRs in a timely manner (within a few days or maybe a few weeks at most), because leaving a contributor hanging can be discouraging and the code can become outdated. When a PR is left open for too long, the project’s code may have moved on – other changes might conflict with it, so the PR might need updates or become hard to merge. A branch that lives apart from the main code for a long time is called a long-lived branch, and merging it later can be tricky (imagine trying to combine two pieces of a puzzle after the picture on one piece has changed). In fact, GitHub now has features and bots to mark long-inactive PRs as stale to prompt maintainers to do something (either close it or merge it) before it rots.
Now fast forward seven years: it’s December 17, 2020. Another user v1993 comments: “Sorry for rushing this a bit, but got home yet?” This comment is tongue-in-cheek, basically poking fun at how the maintainer said they’d merge it when they got home, and obviously that “home-coming” never happened. It’s like a gentle prod saying, “Umm, it’s been 7 years... have you made it home by now to merge this?” By this time, the original code might be very out-of-date or the project may have changed significantly. But people in the developer community found this scenario both funny and painfully relatable – hence the emoji reactions on the maintainer’s old comment (154 people reacted with a laugh, 35 with a sad face). Those reactions came later as others stumbled on this PR and realized how ridiculous and comical the situation was. It’s a bit of developer humor and frustration rolled into one. Many developers have experienced waiting a few days or weeks for a code review approval, maybe even had a PR forgotten for a month, but seven years is next-level. It highlights a real open-source challenge: maintainers are often very busy (they might maintain the project in their free time) or can lose track of issues and PRs, especially if a project is no longer active or they moved on to other things. So a PR can slip through the cracks and be left hanging indefinitely.
From a newbie perspective, a few key takeaways and definitions:
- Git: a version control tool that tracks changes in code. GitHub is a platform that hosts Git repositories and makes it easy to collaborate, review code, and merge contributions.
- Pull Request (PR): a request to merge code changes from one branch or fork into another (usually into the main branch of a project). It’s where code review happens; team members or project maintainers comment on the changes, ask for improvements, and eventually approve and merge them if all is good.
- Code Review: the practice of having others look over your code changes before they become part of the official project. It’s meant to catch bugs, ensure quality, and share knowledge. But as we see, it can introduce delays if reviewers aren’t responsive.
- Maintainer: in open source, this is a person (or group) in charge of managing the project, merging PRs, and making releases. They often have the final say on whether a PR gets merged. Here, gkoberger was the maintainer who needed to merge kofalt’s code.
- Commit: an individual set of changes with a message. Commits are the building blocks of PRs. Kofalt’s commits “Javascript is hard” and “Forgot a global” show two separate changes or steps in their work on that day.
- Global (variable): usually something to avoid in programming unless needed, especially in JavaScript. If you don’t declare a variable properly (with
var,let, orconstin JS), it can end up in the global scope, meaning it’s accessible everywhere and can accidentally overwrite other things or persist when you don’t want it. It’s a newbie mistake that even experienced devs can make when moving fast. Kofalt likely caught this mistake (hence “Forgot a global”) and fixed it, which is why there are two commits.
All in all, this meme resonates with developers because it shows an exaggerated example of code review latency. It’s basically the world record for “PR waiting time.” It teaches an implicit lesson: staying on top of code reviews is important. Leaving someone’s contribution hanging not only risks annoying the contributor, but also can make the contribution impossible to merge later without extra work. And for contributors, it’s a caution that sometimes you might need to politely ping maintainers or accept that a project may be inactive. The last comment by v1993 is a community member doing just that – poking the maintainer, but in a humorous way. This situation also underlines the difference between theory and reality in software development workflows: we preach about agile processes and fast iteration, but in reality, DeveloperProcrastination or simply life events can lead to something practical like a pull request sitting unloved for years. The title “Seven-year-old pull request still waiting for maintainer to get home” says it all: it’s absurd, a bit sad, but mostly played for laughs. It’s a slice of developer life that both frustrates and amuses.
Level 3: Longest Commute Ever
In the annals of CodeReviewHorrorStories, this pull request is practically legendary. The screenshot shows a GitHub PR timeline stretching from 2013 to 2020 – a seven-year PR that became a monument to slow_code_review and open-source neglect. The maintainer (tagged as "Owner") chirped back on 19 Mar 2013: “Okay this is awesome. I'll test it out and merge when I get home. Thanks!” – famous last words in the world of GitHub. That casual promise to merge later has aged like an unrefrigerated container of milk. The humor here is bone-dry: apparently the maintainer’s trip home was the Longest Commute Ever, spanning seven years and counting. Maybe he got lost on the way, or perhaps his home is on a server orbiting Alpha Centauri. Meanwhile, 154 people reacted with a 😄 laugh emoji, recognizing the absurdity and shared pain. Thirty-five others reacted with 🙁 – a mix of genuine sympathy and developer frustration – because who among us hasn’t waited on a code review that felt eternal? A handful of 👀 eyes are just watching this saga unfold like it’s the season finale of “Merge Wars.”
Let’s unpack the tech context: A pull request (PR) is when someone proposes changes to a codebase, asking maintainers to review and merge it. Here, user kofalt contributed two commits on that fateful day in 2013. The commit titles tell a mini-story of their own: “Javascript is hard” and “Forgot a global”. In these messages, you can hear a coder’s weary voice – likely fixing a tricky bug or adding a feature, then immediately patching a slip-up (forgetting to declare a global variable, a classic JavaScript oops from the era before let/const). These succinct commit notes are dripping with the kind of self-deprecating humor developers use to cope with tricky code. And indeed, JavaScript back in 2013 was hard – no fancy ES6+ syntax, transpilers or widespread TypeScript yet – just the wild west of dynamic typing and function spaghetti. Git lets you make incremental commits like this to a branch, which the PR then bundles for review. Our contributor diligently pushed their changes and waited for the maintainer’s approval.
But then... silence. The PR sat in limbo, unmerged and presumably forgotten. For seven years no one hit that green “Merge” button. This is beyond mere DeadlinePressure – any project timeline or deadline tied to these changes expired sometime around when Windows 8 was still supported. 😜 By the time someone finally commented again, the world had moved on: JavaScript had evolved, the project’s codebase likely diverged massively, and this poor branch was basically a fossil. Seasoned developers see the dark humor: a long_lived_branch like this is a merge nightmare. Over years, the main branch inevitably changes (new features added, files moved, maybe the whole project refactored). Merging a 2013 branch in 2020 would probably produce epic merge conflicts or break things left and right. The PR is effectively abandoned_pull_request at this point – merging it would require resurrection-level effort. It’s common knowledge in version control that the longer a PR stays open, the more it rots. We have even coined terms like “stale branch” or “stale PR”. Usually teams try to avoid this by keeping PRs small and reviewing promptly. But here, whether by extreme DeveloperProcrastination or life getting in the way, the maintainer never circled back. It’s a perfect storm of CodeReviewPainPoints: an enthusiastic contributor, an overstretched (or absent) maintainer, and an open_source_maintenance_gap big enough to drive a truck through.
The comment at the bottom from user v1993 on 17 Dec 2020 finally breaks the silence with first-degree sarcasm: “Sorry for rushing this a bit, but got home yet?” 😂 This single line pokes the sleeping bear. It’s the ultimate gentle jibe, basically asking “Hey, remember that merge you promised? Have you maybe reached your computer in the last seven years?” The fact that an outsider popped in after so long to crack that joke means this PR had become a bit of an internet legend. It highlights a truth every senior dev knows: sometimes the only way to stay sane about these CodeReviewPainPoints is to laugh. We’ve all seen PRs languish (though rarely this long) and features postponed indefinitely due to shifting priorities or maintainer burnout. In corporate projects, a PR waiting more than a few days can cause DeveloperFrustration; in open source, contributors might wait weeks or months because maintainers juggle day jobs and limited volunteer time. But seven years is an extreme outlier that satirizes the situation. It’s a reminder of how human factors in software (like forgetfulness, procrastination, or understaffed projects) can sideline even “awesome” contributions. “I’ll merge when I get home” has since become an inside joke (a meme tag here is literally merge_when_i_get_home): it translates roughly to “don’t hold your breath.” This post mortem of a PR is hilarious precisely because it exaggerates a real workflow problem to absurdity. The version control humor shines through: Git tracks every commit and comment, so the evidence of this long wait is preserved in the timeline for all to see. It’s both a horror story and a comedy. Seasoned developers chuckle and cringe at the same time – laughing because it’s not their PR, and cringing because they know there but for the grace of Git go I.
In summary, this meme takes a mundane developer frustration – waiting on code review – and blows it up to mythic proportions. It jabs at the sometimes glacial pace of code reviews, especially in overworked open-source communities. It’s the kind of scenario you joke about: “Remember that PR from 2013? It’s still open!” – like a campfire tale for programmers. Under the humor, there’s a real caution: pullRequest processes are only as fast as the people behind them. Leave a PR unattended and it might linger forever, accumulating 😄 emoji reactions and dust. This post has transcended from being just a stalled piece of code to a piece of developer humor lore. Every reaction on that comment is a nod from someone who’s been there, waiting... and waiting... and then finally just laughing at the absurdity. After all, sometimes in software, “later” can slip into “never” before you know it. 🚀
Description
A screenshot of a GitHub conversation on a pull request. The top comment from repository owner 'gkoberger' on March 19, 2013, reads: 'Okay this is awesome. I'll test it out and merge when I get home. Thanks!'. Below this are two commit messages from the contributor 'kofalt': 'Javascript is hard' and 'Forgot a global'. The punchline is the final comment from user 'v1993' on December 17, 2020, almost eight years later, which asks: 'Sorry for rushing this a bit, but got home yet?'. The humor lies in the massive time gap between the promise to merge the PR and the follow-up, highlighting the phenomenon of abandoned or long-forgotten pull requests in open-source projects. It's a relatable scenario for any developer who has contributed to or maintained a project, where life and other priorities get in the way
Comments
10Comment deleted
Some PRs are like a TCP connection with a massive retransmission timeout; you send the SYN, get the SYN-ACK, and then wait seven years for the final ACK to establish the merge
Seven-year-old PR: at this point “merge when I get home” needs a master→main rename, three LTS bumps, and a paleontologist to resolve the merge conflicts
This PR has been in review longer than most startups survive. At this point, the original JavaScript framework it was written for has been deprecated, rewritten in TypeScript, abandoned for a new paradigm, and is now making a nostalgic comeback as 'classic mode'
This PR perfectly captures the open source maintainer experience: enthusiastically approving a contribution with genuine intent to merge 'when I get home,' only to have a contributor politely check in seven years later asking if you've made it back yet. It's the software equivalent of saying 'let's grab coffee sometime' and someone actually following up. The commit messages 'Javascript is hard' and 'Forgot a global' are just chef's kiss - we've all been there, debugging scope issues at 2 AM. The real tragedy? Those 154 laugh reactions suggest this resonated with an entire generation of maintainers who have their own graveyard of 'will merge tomorrow' PRs from 2013
2013: “I’ll test and merge when I get home.” 2020: “Home yet?” Turns out our CI had a single point of failure and we forgot a global: commute_time
Turns out “I’ll merge when I get home” was a DNS CNAME to Glacier Deep Archive - DORA lead time measured in presidential administrations
Fixed the global leak, but the merge promise is still hoisted in eternal limbo
oof 🗣 Comment deleted
r/ihavereddit Comment deleted
me in a nutshell :/ Comment deleted