是否可以像标识符一样使用GIT作为UUID?

时间:2011-01-17 10:01:01

标签: git sha1 uuid

我需要为我的存储库中的代码片段创建唯一的“不可变”ID - 它涵盖了给定对象/代码块的所有修订版。目标是,如果有人发送代码片段,我可以使用代码的sha1快速将其映射到对象(如果它或它的先前版本在发件人存储库中)。从那里我可以使用这个唯一的id来提取有关代码块的元数据。

git中的sha1似乎是构建UUID(版本5)的起点,可以从sha1开始搜索git存储库,然后在第一次提交时遍历树以查找文件的原始sha1 。在所有修订版中使用此编号作为代码块的唯一标识符是否有意义?

1 个答案:

答案 0 :(得分:1)

我不确定我是否正确理解了问题,但如果您的“代码块”总是在单独的文件中,那么如果您解决了这两个问题,您的概述方法可能会有效:

  1. 你需要确保“分叉”永远不会发生,也就是说,一个大块永远不会分成两个不同的块。否则两个块都将获得相同的UUID,这可能是您不想要的。

  2. 请记住,SHA1本质上对输入中的微小变化敏感,包括额外的换行等,因此在Git数据库中创建查找的哈希时必须小心。