There may not be a simple assembly method a la hg blame (or maybe there is, and I just don't know that!), But you should be able to use brute force to search for a set of changes by looking at the differences.
First, you need to enable git-style diffs because hg normal diff output does not show changes in file modes. To do this, add the following to hgrc :
[diff] git = True
Then you can look at all the differences for the file you are interested in and find the commit that changed the mode by running:
hg log -p file_of_interest
If you are on a * nix system, this helps connect to less or grep to easily find results. The mode changes should appear just below the beginning of the patch line, which starts with:
diff
So, for example, you can look for a mode change from 644 (no exec) to 755 (the exec bit is set), in which case you will see something like:
old mode 100644 new mode 100755
After you find out which diff you are after, change the mode you need, you can search back to get the commit hash code.
Not as simple as hg blame , but it should work to some extent. Hope this helps.
source share