Что такое Mercurial-эквивалент для git hash-object и как мне получить хэш определенного коммита? - PullRequest
1 голос
/ 22 августа 2011

Если я запускаю git hash-object для файла, я могу получить его SHA, а если посмотреть вокруг ls-tree, я могу увидеть, какую подпись имел объект при определенной ревизии. Если я выполню три коммита с файлом Mercurial, могу ли я узнать, какой хеш был у объекта при 2-м коммите?

Могу ли я увидеть, какой хэш у объекта сейчас? Даже если он модифицирован?

Ответы [ 2 ]

3 голосов
/ 22 августа 2011

Mercurial работает по-разному внутри.То, что вы видите, - это хеш « changeset » - в mercurial нет «дерева» объектов, просто множество файлов с последовательностью наборов изменений.позволяет увидеть хэш и соответствующие файлы.В вашем случае это будет hg log -r -2 (показать 2-й последний коммит) или hg log -r -2 -v, если вы тоже хотите список файлов.

2 голосов
/ 22 августа 2011

Вы ищете hg manifest --debug? Он печатает все файлы в текущей ревизии с соответствующими им идентификаторами узлов.

$ hg man --debug | head
9d2ea05fa708cb035dc716c071f0ad00c3449e1e 644   .hgignore
5199ce4ea50cd49c1757bf113c9239f4bf9e9de6 644   .hgsigs
6a6af229d3f6ce57cb7602f807069bf4f5febb32 644   .hgtags
7c8afb9501740a450c549b4b1f002c803c45193a 644   CONTRIBUTORS
02c5479e672e6a43116c48889101884f4b07ec25 644   COPYING
0fd39b23c59f01ef46a2805f1e9b8529246ea294 644   Makefile
780f5a706681ff4efab75c2beae6ee56f710a50b 644   README
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...