Пещера программиста
24Март/100

Перенос проектов между SVN хранилищами

Так исторически сложилось, что многие мои проекты, в том числе и рабочие , раскиданы по нескольким разным svn хранилищам. Вчера было решено это всё дело сложить в один репозиторий, сохранив всю историю работы. Немного погуглив, нашел решение для переноса единичного проекта.

  1. делаем дамп репозитория, из которого будем переносить проект.
    svnadmin dump /var/svn/repositories/repoA > repoA.dump
  2. затем нужно выделить из дампа нужный нам проект с именем project2
    cat ./repoA.dump | svndumpfilter include project2 > project2.dump
  3. теперь заливаем дамп нашего проекта в новый репозиторий
    svnadmin load /var/svn/repositories/repoB < project2.dump

И вот вроде все прекрасно. Но, если открыть журнал репозитория, то там будет много пустых ревизий с комментарием «This is an empty revision for padding.». Т.е. из-за не совпадения номеров ревизий в новом репозитории и в старом, идет выравнивание за счет создание таких ревизий. Это меня очень не устраивало. Столько мусора в журнале. Гугл что то ничего внятного сказать не мог, кроме как сделать дамп нового репозитория, в текстовом редакторе убрать эти пустышки. Справка на офф сайте Subversion по svndumpfilter совсем никакая.
Как оказалось все есть в встроенной справке в svndumpfilter. Исправив команду из пункта 2 на 

cat ./repoA.dump | svndumpfilter include project2 --renumber-revs --drop-empty-revs > project2.dump

мы получим требуемый результат. Чистота, чисто дамп...

Кстати, особенность svnadmin dump в том, что её нужно запускать локально. А если вы хотите сделать дамп чужого репозитория, или просто удаленно, не заходя на сервер, то в этом вам поможет rsvndump . Только вот он распространяется только в исходниках. Пробовал вчера его собрать на mingw . Началось все мирно rsvndump, apr, subversion, apr-util. Но когда затем потребовался sqllite (или что то еще) я плюнул. Ну его нафиг.

27Фев/104

Всплыть по рубку ©

Давно что то не отписывался, забросил блог. Сегодня вот всплыл, как обычно пишет 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. вопрос снимается.

7Ноя/092

Проблемы с SVN

Столкнулся недавно с одной проблемой в моём svn репозитарии. Точнее  проблема была давно , а я обратил на неё внимание вот только что. Пытался просмотреть с помощью черепахи лог изменений в репозитарии, а он выдавал список ревизий, но без дат и описаний. Причем проблема возникала только на приватном репозитарии, а на публичном, там где colorer_se — все нормально.

В итоге появилась такая вот запись номером 3516 в баг-трекере Subversion. Если на русском, то суть вот в чем.
Имеем svn сервер с sasl. В нем два различных репозитария, один публичный, другой закрытый. Отличаются они записями в файле authz. Для публичного

[/]
*= r
master=rw

Для приватного  

[/]
*=
master=rw

Т.е. если ты не прошел аутентификацию , то тебе ничего нельзя.
Пробуем посмотреть лог обоих репозитариев. Для публичного он будет такой (это вывод в консоль, так что все нормально) 

r10 | sonar | 2009-03-16 09:21:53 +0300 (Mon, 16 Mar 2009) | 1 line

?\209?\131?\208?​180?\208?\176?\2​08?\187?\208?\181​?\208?\189?\209?​139 ?\208?
\191?\209?​128?\208?\190?\2​08?\181?\208?\186​?\209?\130?\209?​139 ?\208?\180?
\208?\187?\209?\143 ?\208?\188?\208?​184?\208?\179?\2​09?\128?\208?\176​?\209?
\134?\208?​184?\208?\184 ?\209?\129 ?\208?\190?\209?​135?\208?\181?\2​08?\189?
\209?\140​ ?\209?\129?\209?​130?\208?\176?\2​09?\128?\208?\190​?\208?\185 ?\208?
\178?\208?​181?\209?\128?\2​09?\129?\208?\184​?\208?\184 ?\208?\189?\208?\176 ?
\208?\189?\208?​190?\208?\178?\2​09?\131?\209?\142​.
--------------------​--------------------​--------------------​------------
r9 | sonar | 2009-03-16 09:06:05 +0300 (Mon, 16 Mar 2009) | 1 line

?\208?\161?\208?​190?\209?\133?\2​09?\128?\208?\176​?\208?\189?\208?​181?\208?
\189?\2​08?\184?\208?\181​ ?\208?\178?\208?​181?\209?\128?\2​09?\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  как у приватного. Следующий возникающий вопрос — а ты то под тем логином/паролем заходишь? Специально проверил такой командой 

svn log svn://address --username master --password pass

Результат прежний.

В итоге напрашивается такое объяснение. Команда log  не использует логин/пароль для чтения данных, а ломится на сервер под anonymous.

Будем надеяться, что исправят эту ошибку, либо укажут что я делаю не правильно. Жаль только, что аж с 27 октября к багу ни одного комментария.

Метки записи: , , 2 комментария
11Март/0918

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, и то в связи с ограничением на ресурсы сервера.