11 ポイント 投稿者 GN⁺ 2023-12-13 | 2件のコメント | WhatsAppで共有

バージョン管理システム(VCS)において、Gitが最終的な解決策なのか、それともより良いシステムがあり得るのかという問い

主な回答

  • Gitを学ぶことは、ほかのVCSを使ったり新しいVCSを作ったりするより、はるかに有益
  • Git CLIは使い勝手が良くなく、さまざまな場所でGit UIの問題を解決しようという取り組みが進んでいる
  • Jujutsuは、ほかの分散バージョン管理システム(DVCS)の長所を組み合わせ、革新的な概念を導入している
  • SQLiteの開発者が作ったFossilは、ファイルの履歴を前後にたどれる
  • Pijulも有望
  • Gitの内部は複雑ではないが、インターフェースが分かりにくい
  • 大規模なバイナリファイルについては、まだ不十分。LFSはぎこちない
  • Darcsも悪くない

2件のコメント

 
rapihara 2023-12-13

大容量ファイルを頻繁に扱うゲーム開発者の立場では、Git を使うにはどうしても限界があると思います。
Git はスナップショット方式で保存するため、ファイルが少し変わるだけでも保存容量が大きく増えざるを得ません。スナップショットではなく差分方式で保存すれば解決できますが、これは Git の基本的な設計思想を損なうことになりかねないので、むしろ同じ DVCS でありながら差分方式で保存する Mercurial を使うほうがよいのではないかと思います.

 
GN⁺ 2023-12-13
Hacker Newsの意見
  • 多くの人にとって、Gitは最初で唯一のバージョン管理システム(VCS)との出会いだった。

    • それ以前にRCS、CVS、SVNを使い、その後Gitへ移行した経験がある。
    • Gitは以前のシステムにあった根本的な構造上の欠陥を解決した。
    • Gitの限界は、ユーザーがGitをどう使うかを理解することにある。
    • Gitの複雑なUIを単純化しようとする試みは、Gitの強力さを損なう可能性がある。
    • Gitを学ぶことは、他のVCSを使ったり新しいVCSを作ったりすることより、はるかに有益である。
  • Gitが「より良い」VCSになるために、どの側面を改善すべきかという問い。

    • GitのCLIユーザーインターフェースは複雑である。
    • Gitは急速に成長できた一方で、CLIのユーザー体験を犠牲にした。
    • 複数の企業がGit UIの問題を解決するため、さまざまなソリューションを提供している。
  • Jujutsuバージョン管理システムは、他の分散バージョン管理システム(DVCS)の長所を組み合わせ、革新的な概念を導入している。

    • Hacker Newsでも何度か議論されている。
  • Sqliteの作者たちが作ったFossilというシステム。

    • FossilはGitと異なり、ファイルの履歴を前後どちらにもたどれる機能を提供する。
  • Gitは完璧ではないが、代替手段よりは優れているという意見。

    • Gitの機能の発見しやすさはわかりにくく、複雑である。
    • Gitを学ぶには多くの努力が必要だが、基本的なコマンドだけを使うぶんには問題ない。
  • Gitの内部動作は複雑ではないが、ユーザーインターフェースは混乱を招く。

    • 必要なのはGitそのものではなく、ユーザーインターフェースを単純化することだ。
  • FossilというシステムがGitの代替として挙げられている。

    • Fossilには、Gitリポジトリの中央集権化の問題を解決するforgeツールが含まれている。
  • Gitが標準で大きなファイルやバイナリアセットをもっと上手く扱えればよい、という希望。

    • LFS(Large File Storage)は悪くないが、完璧ではない。
    • CLIには問題がなく、多くの代替ツールも存在する。
  • SqliteのFossilとFacebookのSaplingがGitの代替として言及されている。

  • Gitのインターフェースを改善できる方法についての個人的な理論。

    • リポジトリを有向グラフとしてもっと重視し、グラフに近い用語で表現する。
    • 数学的な背景を持つ人にとって、Gitをより学びやすくできる。