Эта заметка будет интересна тем кто работает с subversion и должен переносить исходники из репозитория на сайт в «ручную», через консоль.
Не много предыстории.
Я достаточно часто обновляю файлы для нашего проекта Закладки на картинки (picfor.me) и для этого пользовался командой svn export …, но вот беда если мне надо закачать только изменения между ревизиями, то в консоли это сделать не так просто:
Есть конечно решений, если использовать клиента TortoiseSVN, вот статья с хабра где это описано.
Я же придумал решение для консоли.
Вот простой bash-скрипт который решает эту задачу в консоли и притом сохраняет структуру папок:
srev и erev — указываем номера ревизий между которыми хотим получить экспорт
list — это список файлов что для экспорта
export.tar.gz — готовый архив для копирования на сервер.
Вот и все. Возможно есть и другие способы реализации. Делитесь!
Не много предыстории.
Я достаточно часто обновляю файлы для нашего проекта Закладки на картинки (picfor.me) и для этого пользовался командой svn export …, но вот беда если мне надо закачать только изменения между ревизиями, то в консоли это сделать не так просто:
- $ svn export -r1123:1167 . /tmp/export_dir
- svn: Revision range is not allowed
Есть конечно решений, если использовать клиента TortoiseSVN, вот статья с хабра где это описано.
Я же придумал решение для консоли.
Вот простой bash-скрипт который решает эту задачу в консоли и притом сохраняет структуру папок:
- #!/bin/bash
- srev=1180
- erev=HEAD
- list=`svn log -vqr$srev:$erev |egrep '^\ +[M|A]' | uniq | awk '{print "." $2 " \ "};' `
- tar -cjf /tmp/export.tar.gz $list
srev и erev — указываем номера ревизий между которыми хотим получить экспорт
list — это список файлов что для экспорта
export.tar.gz — готовый архив для копирования на сервер.
Вот и все. Возможно есть и другие способы реализации. Делитесь!