In 1648, Europe was exhausted.
The Thirty Years’ War had destroyed everything.
Kingdoms wanted to govern their own territories without asking permission from the Pope or the Holy Roman Emperor.
They needed a principle:
“You control your borders. I control mine. We explicitly agree to interact.”
This became the Peace of Westphalia.
Sovereignty through explicit treaties.
Three centuries later, I brought the same principle to Git:
git submodule add https://github.com/project/dependency.git ./lib/dependencyThis declares:
“Dependency is a sovereign repository. It lives in its own history. I will pin my project to a specific commit (a treaty). When I want to upgrade, I do so explicitly.”
It is not:
npm install react@latestwhich means:
“Give me the latest version. I don’t care if it breaks.”
It is:
git submodule add <url> <path># Pin to commit abc1234# Upgrade only when I explicitly say: git submodule update --remote