Ruby on rails 崎岖不平:树的路径和提交id

Ruby on rails 崎岖不平:树的路径和提交id,ruby-on-rails,ruby,git,rugged,Ruby On Rails,Ruby,Git,Rugged,我有一个粗糙的tree对象,我想知道它的路径(相对于根)是什么,写树时提交id是什么。例如: tree = repo.lookup '7892eeee70c08fae4db63aef7000dea39f883b30' #sha/oid of tree 我应该对此树对象执行哪些操作,以便获取其路径和提交id 该信息根本不存储在树中。Git使用Merkle树,父树知道子树是什么,但是每个树都可以包含在多个提交中(这是典型的情况,因为一些子树很少被触及) 如果目录具有相同的内容,则也可以通过许多不

我有一个粗糙的tree对象,我想知道它的路径(相对于根)是什么,写树时提交id是什么。例如:

tree  = repo.lookup '7892eeee70c08fae4db63aef7000dea39f883b30' #sha/oid of tree

我应该对此树对象执行哪些操作,以便获取其路径和提交id

该信息根本不存储在树中。Git使用Merkle树,父树知道子树是什么,但是每个树都可以包含在多个提交中(这是典型的情况,因为一些子树很少被触及)

如果目录具有相同的内容,则也可以通过许多不同的路径访问树

找出一棵树所属位置的唯一方法是查看每个提交,并从根递归地查看是否可以找到给定的树。这将是一个非常昂贵的手术

我建议你退一步,弄清楚为什么你认为你需要弄清楚从哪里可以到达一棵树。听起来你已经决定了很多步骤,你在问一个细节,而你应该从更高的层次来看待它