坚固耐用:树的路径和 commit_id
Rugged: Path and commit_id of tree
我有一个坚固的树对象,我想知道它的路径是什么(相对于根目录)以及写入该树时的提交 ID 是什么。例如:
tree = repo.lookup '7892eeee70c08fae4db63aef7000dea39f883b30' #sha/oid of tree
我应该对该树对象执行什么操作才能获得它的路径和提交 ID?
该信息根本没有存储在树中。 Git 使用 Merkle 树,父树知道子树是什么,但每棵树可以包含在多个提交中(这是典型情况,因为一些子目录很少被触及)。
树也可以通过许多不同的路径访问,如果这些目录具有相同的内容。
找出树所属位置的唯一方法是查看每个提交并从根递归查看是否可以找到给定的树。这将是一个非常昂贵的操作。
我建议您退后一步,弄清楚为什么您认为需要弄清楚从哪里可以到达树。听起来你已经决定了很多步骤,你问的是一个细节,当你应该从更高的层次看它的时候。
我有一个坚固的树对象,我想知道它的路径是什么(相对于根目录)以及写入该树时的提交 ID 是什么。例如:
tree = repo.lookup '7892eeee70c08fae4db63aef7000dea39f883b30' #sha/oid of tree
我应该对该树对象执行什么操作才能获得它的路径和提交 ID?
该信息根本没有存储在树中。 Git 使用 Merkle 树,父树知道子树是什么,但每棵树可以包含在多个提交中(这是典型情况,因为一些子目录很少被触及)。
树也可以通过许多不同的路径访问,如果这些目录具有相同的内容。
找出树所属位置的唯一方法是查看每个提交并从根递归查看是否可以找到给定的树。这将是一个非常昂贵的操作。
我建议您退后一步,弄清楚为什么您认为需要弄清楚从哪里可以到达树。听起来你已经决定了很多步骤,你问的是一个细节,当你应该从更高的层次看它的时候。