Во-первых, обратите внимание, что, поскольку изменения в бите exec не влияют на файл содержимое , как и удаления, они не обязательно будут отображаться как «hg log filename».(Ботаники Unix могут сравнить правила ctime / mtime для файлов и каталогов по отношению к rm / chmod, чтобы понять это различие.) Поэтому вам нужно будет использовать что-то вроде:
$ hg log --deleted file
, чтобы показать все наборов изменений, которые касаются файла, включают в себя изменения exec, удаления и дубликаты.Это не включено по умолчанию по разным причинам, включая то, что это может быть на порядок медленнее.
Поиск битов exec при просмотре журнала также будет означать, что патчи в стиле git рассматриваются как стандартные, совместимые с patch (1)патчи не знают о битах exec.Таким образом, команда total может выглядеть примерно так:
$ hg log --removed -pg contrib/simplemerge | grep "^new mode" -B 10
+ import os
sys.exit(main(sys.argv))
changeset: 4363:2e3c54fb79a3
user: Alexis S. L. Carvalho <alexis@cecm.usp.br>
date: Mon Apr 16 20:17:39 2007 -0300
summary: actually port simplemerge to hg
diff --git a/contrib/simplemerge b/contrib/simplemerge
old mode 100644
new mode 100755
Это гласит: «искать все git-патчи на simplemerge для строк, начинающихся с« new mode »и показывать предыдущие 10 строк».
Другой альтернативой является использование bisect.Это может быть использовано для поиска практически любых изменений, которые вы можете проверить.Например, если вы ищете, где установлен бит X:
$ hg bisect -g 1000 # some past revision without the X bit
$ hg bisect -b tip # some recent revision with the X bit
Testing changeset 8114:ad3ba2de2cba (14179 changesets remaining, ~13 tests)
993 files updated, 0 files merged, 716 files removed, 0 files unresolved
$ hg bisect -c "[ ! -x contrib/simplemerge ]" # shell expression returns 0 (good) if no x bit
Changeset 8114:ad3ba2de2cba: bad
Changeset 4566:087b3ae4f08a: bad
Changeset 2797:a3c6e7888abf: good
Changeset 3678:7e622c9a9707: good
Changeset 4121:d250076824e3: good
Changeset 4345:ec64f263e49a: good
Changeset 4454:28778dc77a4b: bad
Changeset 4403:15289406f89c: bad
Changeset 4371:d7ad1e42a368: bad
Changeset 4355:10edaed7f909: good
Changeset 4366:390d110a57b8: bad
Changeset 4363:2e3c54fb79a3: bad
Changeset 4361:99c853a1408c: good
Changeset 4362:465b9ea02868: good
The first bad revision is:
changeset: 4363:2e3c54fb79a3
user: Alexis S. L. Carvalho <alexis@cecm.usp.br>
date: Mon Apr 16 20:17:39 2007 -0300
summary: actually port simplemerge to hg
Здесь мы автоматизировали тест со стандартным выражением оболочки Bourne для проверки бита exec файла, а затем Mercurial проходит проверкупроверок и тестирования для нас.