news.volyx.in

The future of large files in Git is Git (tylercipriani.com)

557 points by thcipriani · 346 days ago · 290 comments on HN

Article summary

The Git project is working on improving its handling of large files, which can cause problems with storage and cloning. Git LFS, a current solution, has its own set of issues, including vendor lock-in and additional costs. The Git project has introduced partial clones and is working on large object promisors, which aim to provide a more native and efficient solution for handling large files. This new approach is still in development, but it promises to simplify the process of working with large files in Git.

Main themes

  • Git and large files
  • Git LFS limitations
  • Partial clones
  • Large object promisors
  • Version control systems
  • Binary file handling

What commenters say

  • Git LFS is not a suitable long-term solution due to its proprietary nature and vendor lock-in.
  • The new approach of using partial clones and large object promisors is a step in the right direction, but its effectiveness remains to be seen.
  • Some argue that Git is not the right tool for tracking large files and that alternative version control systems like SVN or Perforce might be more suitable.
  • Others believe that Git can be improved to handle large files efficiently and that it is not a fundamental flaw of the system.
  • The use of binary diffs is not always effective for large files like images or MP3s, and alternative approaches like block-level deduplication might be more efficient.
  • The new solution should aim to eliminate the need for separate tools and workflows for handling large files, providing a more seamless experience for users.
  • There are concerns about the potential issues with the new approach, such as errors when objects are missing from cloud storage or when storage has been migrated multiple times.
  • Some argue that storing large files separately from code is a better approach, while others see value in keeping them together in the same repository for versioning and tracking purposes.