Оказывается, в SVN (subversion) атрибуты файла в репозитории сохраняются на момент первичного добавления файла (при svn add), а затем изменения в атрибутах не учитываются. То есть, например, есть скрипт с правами 644. Мы его изменили, добавив пару строк, сделали ему chmod +x, затем «svn ci». В результате в репозитории будет отражено только изменение содержимого файла, но не изменения в его атрибутах. Так что если надо, чтобы изменения в атрибутах тоже «закоммитились», то нужно сделать «svn del», «chmod», «svn add» и «svn ci».
А здесь вот есть мануал по mercurial.