Git Objects: per-object commit history
- Dominant language
- No language data
- Stars
- 328
- Forks
- 12
- PR merge metrics
- No merged PRs in 30d
Description
Git's object model has one commit tree history per repository. Commits point to commits and trees. Trees cannot point to commits. (See discussion on alternative here: #4 )
One thing that svn had over git ("svn had something over git? you're crazy.") is transparent subtree versioning. Each directory versioned itself. This was notoriously annoying as every directory had its own `.svn` directory, polluting your entire file system. Super annoying. BUT it was useful. In that model -- if svn hadn't made other design mistakes -- you could conceive of mixing subtrees between repositories seamlessly. E.g.
I'm talking about having the same subdirectory be within two different repos:
```
./
└── my_repo_a/
│ └── subtree_foo/
└── my_repo_b/
└── subtree_foo/
```
"Oh, that's a submodule!" Sure. In git-land, it's a submodule. And (also notoriously) annoying to work with. I don't want to manage an entire repo for this shared subtree. I want a _cheap submodule_. Git already does _cheap branching_. I want _cheap repos_.
This is easy to do if every object has (or can have) its own commit history. (and commits can be embedded into trees. See #4). this can be _really_ annoying to manage/manipulate manually. But it could be done automatically for you really nicely. Without littering `.` everywhere.
This will be a feature of IPFS.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.