Deforking the World of Code: A Project-Provenance Map that Recovers Cross-Forge Fork Families that Platform Graphs Cannot See
This paper introduces a curated "deforking" map for the World of Code that reconstructs cross-forge project families by collapsing shared git histories into unified clusters, thereby correcting popularity inflation and revealing thousands of fork relationships—including multi-forge families and non-GitHub roots—that are invisible to platform-specific graphs.
Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer
Imagine the entire history of software development as a massive, chaotic library. In this library, there are millions of books (repositories). But here's the catch: many of these books are just photocopies of the same original story.
In the world of coding, this is called forking. A developer takes an existing project, copies it, and starts their own version. They might tweak a few lines here or there, but the core history is identical.
The problem the paper addresses is that if you try to count how "popular" a piece of code is by just counting every single book in the library, you get a wildly inflated number. If one popular story has been copied 10,000 times, it looks like 10,000 different stories are being read, when really, it's just one story being read in 10,000 different places.
This paper introduces a new map (a tool) that cleans up this library. It groups all the photocopies back together with their original source, so researchers can see the real story, not the noise of the copies.
Here is how they did it, using simple analogies:
1. The "Shared Page" Detective
The authors realized that in the digital world, you can't easily fake a history. If two books share the exact same page (a specific "commit" or change in code), they must be related.
- The Old Way: They tried to link every book that shared a page. But this was like saying, "If two books both have a page that says 'Copyright 2024', they are the same story." That's wrong! Many unrelated books have the same copyright page. This caused the map to glue together completely different stories into one giant, messy blob.
- The New Way: They built a smarter map. They looked for many shared pages, not just one. If two books share a whole chapter, they are definitely related.
2. The "Size Limit" Filter (The Cap)
Even with the smarter map, some giant, boring pages (like standard license agreements or empty starter templates) were still acting as bridges, connecting unrelated stories.
- The Fix: The authors put a size limit on these bridges. If a shared page appears in more than 250 books, they assume it's just a generic template (like a standard "Terms of Service" page) and ignore it.
- The Result: This broke the giant, messy blobs apart. Suddenly, the map showed distinct families of stories instead of one giant, confusing super-cluster. It didn't break up real families; it just removed the glue that was sticking unrelated things together.
3. The "Real History" Check
The authors worried that by cutting these giant blobs, they might have accidentally chopped up a real, complex story that naturally had many parts (like a story that was translated into many languages and then recombined).
- The Test: They looked at the biggest remaining group on their map. They found it wasn't a mistake; it was a real, complex story where one big project had genuinely absorbed parts of other famous projects (like a major operating system incorporating code from a web browser).
- The Decision: Because this "residual" group was made of real, deep history and not just cheap glue, they decided not to cut it further. They left it intact because it represents a true, complex relationship in the software world.
4. Checking Against the "Official List"
To make sure their map was accurate, they compared it against GitHub's official "Fork List" (a list where users manually click a "Fork" button).
- The Match: When they looked at projects that existed on both their map and GitHub's list, they matched up 99% of the time.
- The Surprise: Their map found things GitHub's list missed!
- Cross-Forge Families: They found families of projects that started on GitHub but were copied to GitLab, Bitbucket, and other sites. GitHub's list only sees the GitHub side; this map sees the whole family tree across the internet.
- Detached Forks: They found projects that started as copies but then completely rewrote their history, so they are no longer connected to the original. The map correctly identified these as separate entities, whereas the official list might still think they are connected.
5. Why This Matters
Before this map, if you wanted to know how many different projects a single programmer worked on, you might get a fake number like "5,000 projects" just because they worked on one popular project that had 5,000 copies.
- The Correction: This map fixes that. It tells you the programmer actually worked on 5 distinct projects, not 5,000.
- The Outcome: It provides a clean, accurate view of the software world, separating the original stories from the photocopies, and even spotting stories that span across different websites.
In short: The authors built a tool that untangles the messy web of copied code. They used a "size limit" to stop unrelated projects from sticking together, verified their work against official records, and discovered that the software world is even more interconnected across different websites than we previously knew. They released this map for anyone to use, ensuring that future studies of software history aren't fooled by the sheer volume of copies.
Drowning in papers in your field?
Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.