Май 30

итак прожиточный минимум по SVN

так часто случается что нам в руки попадает проект а точнее два или уже три которые по своему хороши
а у нас макдук с мини диском 🙂
нам предстоит сравнить 3 сайта перенести все правки с боевого на тестовый, а потом обновить то что получится и не затереть все, что мы на переносили.
и так копия

1 тест = на нее легло обновление нормально
2 рабочая за год много изменений
3 тест до обнавлений

создаем на сервере svn
sudo mkdir /var/svn/
создаем наш проект
sudo svnadmin create /var/svn/name_project
загружаем в него копию 3
svn import /var/www/otkuda/ file:///var/svn/name_project -m «Comment: »

в файле
/var/svn/name_project/conf/svnserve.conf
раскоментируем строки
auth-access = write
и
password-db = passwd
!!! удаляем как # так и пробел после него

в файле
/var/svn/name_project/conf/passwd
в конце добавляем строку логин=пароль
login=password

запускаем сервер

svnserve -d -r /var/svn/name_project
в случае добавления или если нужно выключить сервер (а так стоит делать для безопастности и для того чтоб не грузить сервер)

killall -9 svnserve
svnserve -d -r /var/svn/name_project

создаем новую рабочую копию созданного проекта прямо на сервере

svn checkout svn://host.example.com/ /var/www/kuda/
или локально
можно без запуска сервера svn
svn checkout file:///var/svn/name_project /var/www/kuda/

после чего в рабочую копию заливаем версию №2
выполняем команду в рабочем каталоге
svn status
и видим разницу
у нас она очень велика
записываем разницу в файл
svn status > test2original.txt
добавляем ново созданые файлы
svn add --force ./*

записываем ревизию
svn commit -m "site original"
обновляем рабочую версию до последней ревизии
svn up

и заливаем по верх новой рабочей версии версию рабочую после обновления
это уже можно делать на компьютере чтоб посмотреть разницу в файлах

Декабрь 10

В копилку — борьба с SVN

http://alexhemp.livejournal.com/13817.html

Если svn up или svn status выдают ошибку похожую на:

svn: Valid UTF-8 data
(hex: 65 64 69 74 65 64)
followed by invalid UTF-8 sequence
(hex: ad 6c 69 73)

Это значит нерадивые юзеры залили файл с именем в UTF-8, но имя обрезано так что перестало быть корректной UTF-8 последовательностью. Такое бывает если сайт в однобайтной кодировке, а браузер юзера кривоват.

Ошибка эта не связана с репозиторием никак, тут проблема в том что svn не может прочитать рабочую копию из-за этого чтобы сравнить список файлов. Причем файл может быть так и в исключенном каталоге.

Для поиска такого файла берем пару байт из этой самой invalid sequence (valid может быть и пустым, если прямо с начала имени неправильные символы) делаем примерно так:

find /path/to/workingcopy | perl -n -e «print if /\xAD\x6C/» | less

Ну и переименовываем его правильно (или удаляем).