news.volyx.in

Git Notes: Git's coolest, most unloved­ feature (2022) (tylercipriani.com)

579 points by Delgan · 403 days ago · 145 comments on HN

Article summary

The article discusses Git notes, a feature that allows users to add metadata to commits, and how they can be used to store information such as code review comments and testing results. Git notes are not well-known and are often difficult to use due to their poor usability. The article suggests that Git notes could be a powerful tool for storing metadata, but their adoption is limited by their lack of support from major Git forges like GitHub. The article also explores the potential use of Git notes for distributed code review and issue tracking.

Main themes

  • Git notes
  • code review
  • distributed version control
  • commit history
  • rebase and rewrite
  • Git usability
  • forge support

What commenters say

  • Some commenters argue that Git notes are not useful because they can be replaced by other features, such as commit messages or external issue trackers.
  • Others see potential in Git notes for distributed code review and issue tracking, but are hindered by their poor usability and lack of support from major Git forges.
  • There is disagreement about the implications of rebasing and rewriting commit history, with some arguing that it destroys history and others seeing it as a necessary part of maintaining a clean and organized codebase.
  • Some commenters suggest that Git needs to improve its handling of history rewriting, including providing better automation and mapping concepts to accommodate changed commit histories.
  • Others argue that Git's design is not flawed, but rather its UI is terrible, and that users have the freedom to use Git in a way that works for them.
  • The use of Git notes for code review is seen as problematic due to the potential loss of notes during rebasing or squashing commits.
  • Some commenters propose using Git notes to exclude certain files or blobs from being downloaded by default, which could help solve issues like large binary files being added and then deleted from a project.