Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider adding section about VCS #69

Open
RedwanFox opened this issue Jul 17, 2022 · 2 comments
Open

Consider adding section about VCS #69

RedwanFox opened this issue Jul 17, 2022 · 2 comments
Labels
content Improvements or additions to content

Comments

@RedwanFox
Copy link

Monorepos tend to become very large and optionally have large binary blobs in them (for example art content in gamedev). So different VCS should be considered. For example git as-is is not suitable for large binary objects, etc. Also, it would be great to talk about integration of VCS and build system such as to be able only to checkout folder of particular projects and all of their dependencies.

@RedwanFox RedwanFox added the content Improvements or additions to content label Jul 17, 2022
@RedwanFox RedwanFox changed the title Consider adding sesction about VCS Consider adding section about VCS Jul 17, 2022
@juristr
Copy link
Member

juristr commented Jul 19, 2022

@RedwanFox Interesting idea.

optionally have large binary blobs in them (for example art content in gamedev)

Storing large blobs, in general, doesn't work very well with Git. Though it is more a VCS thing than strictly related to monorepos. Ofc, If you combine it with a monorepo the problem becomes more apparent, and quicker. Let me think about how to potentially wire this into the page. We want to keep it as lean as possible but still informative.

Also, it would be great to talk about integration of VCS and build system such as to be able only to checkout folder of particular projects and all of their dependencies.

I was actually planning to have some content around this. Git allows you to do sparse-checkouts, and with Nx in particular, you have programmatic access to its project graph. As such you can easily create a script which would allow you to say something like my-customscript checkout proj1 and it would be able to leverage the project graph to checkout proj1 and all the other projects it depends on. Could be an interesting use case for very large repos.
Although truth be told, as part of the the consulting activity I have seen some massive repos, and Git was usually the last issue. It is pretty powerful 😃

@RedwanFox
Copy link
Author

RedwanFox commented Jul 19, 2022

Storing large blobs, in general, doesn't work very well with Git.

It's should be mentioned in context of Git LFS or microsoft git fork with patches especially for monorepos.

Though it is more a VCS thing than strictly related to monorepos.

Without working VCS you won't get successfully working monorepo and with rising repo size execution times of default commands such as status increase dramatically. https://github.blog/2022-06-29-improve-git-monorepo-performance-with-a-file-system-monitor/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
content Improvements or additions to content
Projects
None yet
Development

No branches or pull requests

2 participants