Search
Write a publication
Pull to refresh

Решаем проблему с svn: Revision range is not allowed

Reading time1 min
Views1.1K
Эта заметка будет интересна тем кто работает с subversion и должен переносить исходники из репозитория на сайт в «ручную», через консоль.
Не много предыстории.
Я достаточно часто обновляю файлы для нашего проекта Закладки на картинки (picfor.me) и для этого пользовался командой svn export …, но вот беда если мне надо закачать только изменения между ревизиями, то в консоли это сделать не так просто:
  1. $ svn export  -r1123:1167 . /tmp/export_dir
  2. svn: Revision range is not allowed



Есть конечно решений, если использовать клиента TortoiseSVN, вот статья с хабра где это описано.

Я же придумал решение для консоли.


Вот простой bash-скрипт который решает эту задачу в консоли и притом сохраняет структуру папок:
  1. #!/bin/bash
  2. srev=1180
  3. erev=HEAD
  4. list=`svn log -vqr$srev:$erev |egrep '^\ +[M|A]' | uniq | awk '{print "." $2 " \ "};' `
  5. tar -cjf /tmp/export.tar.gz $list



srev и erev — указываем номера ревизий между которыми хотим получить экспорт
list — это список файлов что для экспорта 
export.tar.gz — готовый архив для копирования на сервер.

Вот и все. Возможно есть и другие способы реализации. Делитесь!
Tags:
Hubs:
Total votes 7: ↑3 and ↓4-1
Comments14

Articles