git - 基于文件扩展名的备用散列函数
问题描述
只要关联的播放列表,我想使用 git 来跟踪媒体文件。跟踪播放列表很容易,因为这些是文本文件。关于二进制文件,我已经看过 git-lfs 和 git-annex,但想探索以下方式:
Flac 文件提供内部 md5 哈希。这样的哈希可以通过
metaflac --show-md5sum filename.flac
考虑到性能,我想要求 git 使用“flac md5 hash”,而不是 git 内部哈希。
怎么可能做这样的事情?
我已经阅读了 gitattributes 文档,但没有找到答案。
PS:第一个目标是获得闪电般的快速性能。第二个目标是忽略对文件的任何元数据更改。
解决方案
无法使用自定义散列函数来识别 Git 中的对象。切换到 SHA-256 的工作正在进行,但它不是用于替换您自己的哈希函数的通用框架。
Git 中的 CPU 使用率不受散列控制;它以压缩为主。使用不同的散列函数,即使可能,也不会产生显着的性能优势。(我自己计算了这些数字,其他 Git 贡献者也是如此。)
此外,MD5 非常弱(甚至比 SHA-1 还弱),现在不应该用于任何目的。如果您需要快速哈希,BLAKE2b 比 MD5 更快,实际上是安全的,并且可以调整为任意长度。
推荐阅读
- javascript - 如何阻止用户访问 nodejs express 路由
- python-3.x - 我应该在哪里添加另一个等待 asyncio 正常工作?
- python - keras 中的小型 LSTM 模型不适合我的 GPU
- c# - 有没有办法让我只执行一次?
- android - 如何检查firebase中的路径是否存在(检查孩子是否存在)颤动
- python - 如何在远程计算机上运行 Python 脚本?
- python - 数据帧的 Pct_change
- react-native - 如何修复损坏的 TextInput 值更新程序
- sql-server - How to assign decimal value to string in SQL Server 2012
- vba - 显示来自 ConversationID 的电子邮件