Разобрался с hook-ами в сабже… Написал хук, который перед коммитом смотрит на измененные файлы, запускает для них astyle (по сути можно подсунуть другой форматировщик кода, но я более вменяемого с CLI не нашел). Если есть недоформатированные файлы, то коммит отклоняется.
Вот уже почти три месяца как в mailing-list-е Mercurial тянется флейм по поводу того, должна ли VCS конвертировать имена файлов в кодировку пользователя и обратно.
Тот же SVN хранит имена файлов в “своей” кодировке (UTF-8?). При чекауте имена всех файлов конвертируются в кодировку системы. При коммите соответственно наоборот. Таким образом можно счекаутить репозиторий на машине с любой локалью, поддерживающей кириллицу, и имена файлов останутся читаемыми.
Mercurial же понимает имена файлов как набор байт (подобно UNIX-овым файловым системам). То есть, репозиторий, созданный в другой локали (или на венде), будет чекаутиться криво. Аргументируется это поведение тем, что “make” сможет собрать такой проект, так как имена файлов будут в той же кодировке, что и Makefile.
Мне вот поведение SVN-а нравится больше… Исходники мало кто обзывает нелатинскими буквами. А вот хранить файлы, имена которые будут читаться только пользователем (например документы OpenOffice) вполне себе удобно.
Надо будет посмотреть, как ведут себя другие VCS (как минимум — git, darcs).
UPD: В Mailing list-е кинули ссылку на git-версию треда :)
Посмотрел на сабж… Завелось сразу. Умеет в workspace отмечать значками измененные файлы. Плюс достаточно удобно выглядит annotate (aka blame).
Добавлять/удалять файлы все равно удобней руками с помощью команды hg addremove, которая с ключем -s умеет угадывать перемещения файлов.
Собственно вот
9713277607f9eac7d655c6854dd92bc2ce1b6f02 is first bad commit
commit 9713277607f9eac7d655c6854dd92bc2ce1b6f02
Author: Glauber de Oliveira Costa <gcosta @redhat.com>
Date: Wed Mar 19 14:25:43 2008 -0300
x86: boot cpus from cpu_up, instead of prepare_cpus
After all the infrastructure work, we're now prepared
to boot the cpus from cpu_up, and not from prepare_cpus.
So the difference between cold boot and hotplug is effectively
over, and the functions are used to the purposes they're meant to.
Signed-off-by: Glauber Costa <gcosta @redhat.com>
Signed-off-by: Ingo Molnar <mingo @elte.hu>
:040000 040000 c191cf15825af14a8f4e2842105c33e19ad9df1d 3a6e4c6a5489a20722e83c98204f16d29bdc01fd M arch
bisect рулит. Достаточно быстро разгреб 10k коммитов. Спасибо TuxOnIce за то, что не пришлось полностью перезагружать машину после каждой сборки :)
Bisecting: 5243 revisions left to test after this
Не так уж и много….