Перенос проектов между SVN хранилищами
Так исторически сложилось, что многие мои проекты, в том числе и рабочие , раскиданы по нескольким разным svn хранилищам. Вчера было решено это всё дело сложить в один репозиторий, сохранив всю историю работы. Немного погуглив, нашел решение для переноса единичного проекта.
- делаем дамп репозитория, из которого будем переносить проект.
svnadmin dump /var/svn/repositories/repoA > repoA.dump
- затем нужно выделить из дампа нужный нам проект с именем project2
cat ./repoA.dump | svndumpfilter include project2 > project2.dump
- теперь заливаем дамп нашего проекта в новый репозиторий
svnadmin load /var/svn/repositories/repoB < project2.dump
И вот вроде все прекрасно. Но, если открыть журнал репозитория, то там будет много пустых ревизий с комментарием «This is an empty revision for padding.». Т.е. из-за не совпадения номеров ревизий в новом репозитории и в старом, идет выравнивание за счет создание таких ревизий. Это меня очень не устраивало. Столько мусора в журнале. Гугл что то ничего внятного сказать не мог, кроме как сделать дамп нового репозитория, в текстовом редакторе убрать эти пустышки. Справка на офф сайте Subversion по svndumpfilter совсем никакая.
Как оказалось все есть в встроенной справке в svndumpfilter. Исправив команду из пункта 2 на
мы получим требуемый результат. Чистота, чисто дамп...
Кстати, особенность svnadmin dump в том, что её нужно запускать локально. А если вы хотите сделать дамп чужого репозитория, или просто удаленно, не заходя на сервер, то в этом вам поможет rsvndump . Только вот он распространяется только в исходниках. Пробовал вчера его собрать на mingw . Началось все мирно rsvndump, apr, subversion, apr-util. Но когда затем потребовался sqllite (или что то еще) я плюнул. Ну его нафиг.
Всплыть по рубку ©
Давно что то не отписывался, забросил блог. Сегодня вот всплыл, как обычно пишет Goblin.
Первым делом подкрутил настройки блога.
- обновил тему Lightword Theme . Правда допиливать пришлось её — слева, в окошке с датой, не влазит месяц июнь или июль. Пришлось расширять картинку. Моих скуднейших знаний Photoshop хватило на это, удивительно. Да и подписи с количеством комментариев привести к великому и могучему пришлось.
- подправил mime type , теперь при скачке rar или 7z архивов не происходит открытие страницы
- поглядел статистику поиска — смешно, поиск в гугле или яндексе bill.8mkr (это биллинговый сайт местного провайдера) первой ссылкой ведет ко мне, а ссылок на провайдера вроде нет
- статистика скачиваний ColorerSE с redmine просто бъет рекорды. Я в шоке. То ли народ по недоглядению скачивает старую версию, не видя новых, то ли поисковики накручивают. В общем принял решение прикрыть( оставить только для истории) проект ColorerSE т.к. я давно уже вхожу в группу разработчиков оригинального Colorer
- моего «всплытия» не выдержал сайт. стал тупить сильно, до ошибок в логах. Обратился в саппорт 1gb.ru, проблема видимо оказалась в загруженности mysql сервера. Перенесли базу на другой сервер, и все стало нормально. За что огромное спасибо тех поддержке хостинга.
Стал осваивать Git. Интересная штука по сравнению с SVN. Счас вот думаю надо поднять сервер Git на projects.dobrih.net . Только вот выдержит Боливар или нет, не понятно. Хотя там уже давно пора обновится, ruby-ee вышел новый, обещают рост скорости. да и редмайн тоже не отстает.
В последние месяца 3 почти не программировал на Delphi. Упала мотивация на работе, простые исправления багов и все. Сидел и программировал на C++. И вот сейчас как то возвращаться к Delphi не очень охота. Чем то он стал меня раздражать, чем пока понять не могу. Вот открою окно и строчки кода не хотят идти. Хотя наверное все дело в мотивации.
Да, кстати, кто-нибудь в курсе, что с блогом Andy’s Blog and Tools ? что то не открывается который день.
UPD: ожил блог Andy. вопрос снимается.
Проблемы с SVN
Столкнулся недавно с одной проблемой в моём svn репозитарии. Точнее проблема была давно , а я обратил на неё внимание вот только что. Пытался просмотреть с помощью черепахи лог изменений в репозитарии, а он выдавал список ревизий, но без дат и описаний. Причем проблема возникала только на приватном репозитарии, а на публичном, там где colorer_se — все нормально.
В итоге появилась такая вот запись номером 3516 в баг-трекере Subversion. Если на русском, то суть вот в чем.
Имеем svn сервер с sasl. В нем два различных репозитария, один публичный, другой закрытый. Отличаются они записями в файле authz. Для публичного
*= r
master=rw
Для приватного
*=
master=rw
Т.е. если ты не прошел аутентификацию , то тебе ничего нельзя.
Пробуем посмотреть лог обоих репозитариев. Для публичного он будет такой (это вывод в консоль, так что все нормально)
?\209?\131?\208?180?\208?\176?\208?\187?\208?\181?\208?\189?\209?139 ?\208?
\191?\209?128?\208?\190?\208?\181?\208?\186?\209?\130?\209?139 ?\208?\180?
\208?\187?\209?\143 ?\208?\188?\208?184?\208?\179?\209?\128?\208?\176?\209?
\134?\208?184?\208?\184 ?\209?\129 ?\208?\190?\209?135?\208?\181?\208?\189?
\209?\140 ?\209?\129?\209?130?\208?\176?\209?\128?\208?\190?\208?\185 ?\208?
\178?\208?181?\209?\128?\209?\129?\208?\184?\208?\184 ?\208?\189?\208?\176 ?
\208?\189?\208?190?\208?\178?\209?\131?\209?\142.
------------------------------------------------------------------------
r9 | sonar | 2009-03-16 09:06:05 +0300 (Mon, 16 Mar 2009) | 1 line
?\208?\161?\208?190?\209?\133?\209?\128?\208?\176?\208?\189?\208?181?\208?
\189?\208?\184?\208?\181 ?\208?\178?\208?181?\209?\128?\209?\129?\208?\184?
\208?\184 0.9
------------------------------------------------------------------------
Тут мы видим и дату , и пользователя, и сообщение ревизии. Для приватного вывод будет следующим
r10 | (no author) | (no date) | 1 line
------------------------------------------------------------------------
r9 | (no author) | (no date) | 1 line
------------------------------------------------------------------------
r8 | (no author) | (no date) | 1 line
Тут мы видим «ничего».
Может возникнуть мнение, что ошибка в самом хранилище. Но я объясняю на двух разных для наглядности. Тоже самое будет, если для публичного отредактировать файл authz как у приватного. Следующий возникающий вопрос — а ты то под тем логином/паролем заходишь? Специально проверил такой командой
Результат прежний.
В итоге напрашивается такое объяснение. Команда log не использует логин/пароль для чтения данных, а ломится на сервер под anonymous.
Будем надеяться, что исправят эту ошибку, либо укажут что я делаю не правильно. Жаль только, что аж с 27 октября к багу ни одного комментария.
Redmine + Apache + Passenger + Subversion на примере Gentoo
Как ранее писал, решил я настроить себе subversion сервер с багтрекером Redmine. Для этого обзавёлся виртуальным выделенным сервером на 1GB.ru . В качестве операционной системы там установлен Gentoo 2008. Для запуска сайта на Ruby on Rails существует много возможных комбинаций серверов. Например, я пробовал Apache + proxy_balancer + Mongrel , просто Mongrel. Так же всевозможные замены Apache на альтернативные веб-сервера. Но посоветовавшись с админом форума http://rubyclub.com.ua/, пришел к тому, что буду использовать Apache + Passenger. Кстати, в сети не нашел какого-либо мануала про Redmine и эту связку, с чем связаны многие часы раздумий. Ну и для полного счастья, точнее для более быстрой работы Passenger устанавливал Ruby Enterprise Edition. Я не рассматриваю установку и настройку базы данных, т.к. у меня она стоит на мощностях хостинга, а не на моем vds.
Цель поста — систематизировать свои знания, оставить себе шпаргалку, ну и показать некоторые нетривиальные места. Практически все собиралось из исходников, так что привязки конкретно к Gentoo практически нет. Ну и как некоторый показатель — после изучения всех граблей, настройка сервера заняла часа 3-4, и то в связи с ограничением на ресурсы сервера.