12 февраля 2013 г.

Infinality патчи на стабильной ветке

Как-то я пропустил тот факт, что похоже уже давно infinality патчи находятся на стабильной ветке в gentoo portage. До этого ставил их из lcd-filtering. Теперь все намного проще. Добавляем USE-флаг infinality в make.conf и пересобираем freetype:

emerge -1q freetype
eselect fontconfig enable 52-infinality.conf
eselect infinality set infinality
eselect lcdfilter set infinality

Как видим теперь необходимо несколько раз дополнительно запустить eselect. При этом вариантов для выбора eselect infinality и eselect lcdfilter предоставляют многовато. Я с ними не экспериментировал. Если кто пробовал, поделитесь впечатлениями.

5 февраля 2013 г.

Использование Gitolite вместе с Redmine

Появилась необходимость добавить git репозиторий в Redmine проект на домашнем сервере. Для управления git репозиториями использую Gitolite. Как оказалось по-умолчанию Gitolite запрещает доступ всем кроме пользователя, которым он обслуживается. В моем случае доступ есть только у пользователя git. Redmine же запускает пользователь redmine. В общем главная загвоздка — найти umask опцию в настройках Gitolite.

Решение со Stackoverflow:

  • Добавляем в Redmine путь к необходимому репозиторию. Например: /home/git/repositories/repo.git.
  • Добавить пользователя, который запускает веб-сервер с Redmine в git-группу:

      usermod -a -G git redmine
    
  • В файле .gitolite.rc (находится в домашней директории git) поменять значение UMASK с 0077 на 0027. Теперь новые файлы Gitolite будет создавать с правами на чтение для группы git.

  • Также необходимо поменять права доступа для всех существующих репозиториев. В директории с репозиториями запускаем следующее:

      chmod -R g+rX
    

Есть еще варианты решения этого вопроса?

3 февраля 2013 г.

Svn to Git

Краткая инструкция миграции с svn на git.

Руководство к действию

  • Найти всех авторов с помощью скрипта

    #!/usr/bin/env bash
    authors=$(svn log -q | grep -e '^r' | awk 'BEGIN { FS = "|" } ; { print $2 }' | sort | uniq)
    for author in ${authors}; do
        echo "${author} = NAME <EMAIL>";
    done
    

    Все записи NAME и EMAIL вручную заменяем на необходимые значения.

  • Склонировать svn репозиторий

    git svn clone [-s] --no-metadata --username=USER --authors-file=SVN-AUTHORS SVN_URL
    

    Пара слов про опции:

    • -s — необходима, если используются стандартные svn папки (trunk, tags, branches).
    • --no-metadata — удаление записей git-svn-id из логов.
    • --username — тут все понятно.
    • --author-file — список авторов в svn репозитории (см. пункт выше).
  • Импорт ignore файлов

    На каждой ветке необходимо сделать следующее:

    git checkout BRANCH
    git svn create-ignore
    git commit -a -m "Import svn:ignore."
    

Полезные ссылки

Весь этот небольшой материал основан на следующих статьях: