LINUX.ORG.RU

Копия SVN через WEBSVN

 , ,


0

1

Уважаемые, подскажите, можно ли сделать копию svn-а имея доступ только через web svn? Хотя бы текущий срез. Пока что придумал только просматривать каждую страницу и руками копировать.

При помощи curl/wget и bash можно написать простенький парсер, который сольёт файлы.

Deleted ()
Ответ на: комментарий от Deleted

В общем решение понятно, но по моим знаниям это будет не совсем простенько :(. Может кто-то реализовывал? Или где-то в глобалах встречал готовое решение?

first-leon ()
Ответ на: комментарий от first-leon

Реализация зависит от того, как и на чём сделан web-доступ к svn. Я как-то писал костыльный скрипт для скачивания среза git через trac:

#!/bin/sh

BASE_URL="http://trac.example.org"
BROWSER_URL="${BASE_URL}/example/browser"

die()
{
       echo "ERROR!"
       exit 666
}

getdir()
{
       mkdir -p "${2}"

       html=$( wget -q -O - "${1}" )

       for i in $( echo "${html}" | sed -n "s,^ *<a class=\"file\" *[^>]*>\([^<]*\)</a>,\1,p" ); do
               echo "${2}/${i}"
               url=$( wget -q -O - "${1}/${i}" | sed -n "s,^ *<a *.* *href=\"\([^\"]*\)\" *[^>]*>Original Format</a>,\1,p" )
               wget -q -O "${2}/${i}" "${BASE_URL}/${url}" || die
       done

       for i in $( echo "${html}" | sed -n "s,^ *<a class=\"dir\" *[^>]*>\([^<]*\)</a>,\1,p" ); do
               getdir "${1}/${i}" "${2}/${i}"
       done
}

getdir "${BROWSER_URL}" "example"
Тебе нужно что-то подобное.

Deleted ()
Ответ на: комментарий от Deleted

mironov_ivan

exit 666

это зря - диапазон ошибок лучше брать 64..127

mironov_ivan

for i in $( echo «${html}»

не страшно, что в $html будет какая-то НЁХ?

drBatty ★★ ()
Ответ на: комментарий от drBatty

Говорю же - костыльный скрипт. Он на один раз писался.

Deleted ()
Ответ на: комментарий от tazhate

websvn это типа «PHP based web interface of Subversion repositories».
Т.е скорее всего ТС нашел чужую репу с доступным интерфейсом, и хочет выкачать оттуда сорцы. :)

winddos ★★★ ()
Ответ на: комментарий от winddos

Именно так ). Но это реп хулиганов, которые стали прикрывать исходники. А вот WebSVN забыли прикрыть. Нужную мелочь выдернул руками. Чтобы распарсить скрипт не простой получится...

first-leon ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.