【发布时间】:2015-10-27 13:15:58
【问题描述】:
我有一个坚固的树对象,我想知道它的路径是什么(相对于根),以及编写该树时的提交 ID 是什么。例如:
tree = repo.lookup '7892eeee70c08fae4db63aef7000dea39f883b30' #sha/oid of tree
我应该在这个树对象上执行哪些操作才能获得它的路径和提交 ID?
【问题讨论】:
标签: ruby-on-rails ruby git rugged
我有一个坚固的树对象,我想知道它的路径是什么(相对于根),以及编写该树时的提交 ID 是什么。例如:
tree = repo.lookup '7892eeee70c08fae4db63aef7000dea39f883b30' #sha/oid of tree
我应该在这个树对象上执行哪些操作才能获得它的路径和提交 ID?
【问题讨论】:
标签: ruby-on-rails ruby git rugged
该信息根本不存储在树中。 Git 使用 Merkle 树,父母知道子树是什么,但每棵树都可以包含在多个提交中(这是典型的情况,因为一些子目录很少被触及)。
如果这些目录具有相同的内容,也可以通过许多不同的路径访问一棵树。
确定树所属位置的唯一方法是查看每个提交并从根递归地查看是否可以找到给定的树。这将是一项非常昂贵的操作。
我建议你退后一步,弄清楚为什么你认为你需要弄清楚从哪里可以到达一棵树。听起来您已经决定了很多步骤,并且您正在询问一个细节,什么时候应该从更高的层次来看待它。
【讨论】: