About Blog PGP Key

All articles, tagged with “scm”

Mercurial hooks

Разобрался с hook-ами в сабже… Написал хук, который перед коммитом смотрит на измененные файлы, запускает для них astyle (по сути можно подсунуть другой форматировщик кода, но я более вменяемого с CLI не нашел). Если есть недоформатированные файлы, то коммит отклоняется.

Должна ли VCS конвертировать имена файлов

Вот уже почти три месяца как в mailing-list-е Mercurial тянется флейм по поводу того, должна ли VCS конвертировать имена файлов в кодировку пользователя и обратно.

Тот же SVN хранит имена файлов в “своей” кодировке (UTF-8?). При чекауте имена всех файлов конвертируются в кодировку системы. При коммите соответственно наоборот. Таким образом можно счекаутить репозиторий на машине с любой локалью, поддерживающей кириллицу, и имена файлов останутся читаемыми.

Mercurial же понимает имена файлов как набор байт (подобно UNIX-овым файловым системам). То есть, репозиторий, созданный в другой локали (или на венде), будет чекаутиться криво. Аргументируется это поведение тем, что “make” сможет собрать такой проект, так как имена файлов будут в той же кодировке, что и Makefile.

Мне вот поведение SVN-а нравится больше… Исходники мало кто обзывает нелатинскими буквами. А вот хранить файлы, имена которые будут читаться только пользователем (например документы OpenOffice) вполне себе удобно.

Надо будет посмотреть, как ведут себя другие VCS (как минимум — git, darcs).

UPD: В Mailing list-е кинули ссылку на git-версию треда :)

Mercurial Eclipse

Посмотрел на сабж… Завелось сразу. Умеет в workspace отмечать значками измененные файлы. Плюс достаточно удобно выглядит annotate (aka blame).

Добавлять/удалять файлы все равно удобней руками с помощью команды hg addremove, которая с ключем -s умеет угадывать перемещения файлов.

2.6.26: проблемный коммит

Собственно вот

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 за то, что не пришлось полностью перезагружать машину после каждой сборки :)

git-bisect

Bisecting: 5243 revisions left to test after this

Не так уж и много….