Hacker News new | ask | show | jobs
by 7kmph 2085 days ago
Would like to see a SCM that:

- handles large files effectively (build artifacts, 10-40GiBs each, and other binary dependencies)

- partial checkout of the repo/view

- git style operations (have stage area, can stage parts of a file, can stash changes and reapply later, cherry pick)

- can view the history of an individual file (support file relocation)

- access control on individual files, and partial review of the repository (views are "granted" to developers)

- good tooling

- immutable when it makes sense (e.g. you cannot changed a published commit)

- works offline (if possible)

- large mono repo

I evaluated git annex and git lfs, and finally chosen Perforce, mainly for its large file handling, view for each developer and ACL, but the lack of flexibility makes me don't want to commit, and every time I do a merge, I say to myself, "uuh, this again". The other thing it lacks is the "ease of mind", with git, everything is checksummed, if the content changes, it will be noticed by git, with Perforce, you have to tell it you want to edit it. (Not nit-picking on Perforce, I actually think Perforce is a good software, its server runs flawlessly, and have a good p4v (if you don't mind the friction), I think it just lacks good tooling and git style operations)

4 comments

Partial clone is currently support at least by both GitHub and GitLab. While still maturing, you could filter for example all large blobs for local development, or only fetch certain sub trees. See also the Git docs: https://git-scm.com/docs/partial-clone, or GitLabs docs: https://docs.gitlab.com/ee/topics/git/partial_clone.html

GitLab will continue to make investments in it for at least the next year as it's a big issue especially for gaming companies.

Full disclosure, currently a GitLab employee.

Have a look at Bitkeeper, it's my main SCM (if i don't have to use git).

http://www.bitkeeper.org/

EDIT: But Perforce is nice too, and free for up to 5 devs.

good summary of areas of where git falls short.

i'm curious if the above are compatible with a patch-based VCS. if so, maybe good areas for would-be future VCSs to focus on, to establish a niche...

Did you compare Subversion and PlasticSCM?