Pull to refresh

Comments 67

а бинарный родной от фри нельзя было поставить?
Родное ставить, похоже, некошерно.

ЗЫ. Говорите «свой svn», а приводите только фряху в качестве примера.
ЗЫЫ: в Debian ставится так:
aptitude install svn mod_dav

Дальше аптитуд рулит все зависимости. В файле конфигурации mod_dav конфигурируем web-доступ, делаем svnadmin create…

Вот реп и готов :=)
вы наверно не прочитали где это было поднято и при каких ограничениях
нельзя, в основном по причине того что родной бинарный от фри предназначен для размещения в системных каталогах типа /usr/bin, /usr/sbin, /usr/lib/… Попытка просто закинуть его в свой домашний каталог завершилась неудачей. При запуске бинарники ругались. Конкретных ошибок уже не вспомню, но точно помню что такой вариант мы пробовали, и ничего не вышло.
UFO landed and left these words here
UFO landed and left these words here
Вот ничего себе, не думал, что если собрать бинарник на другой тачке пусть даже с той же версией оси, всё будет работать… Надо поэкспериментировать… :) А вы молодцы, всё таки выкрутились для решения задачи.
а как вы думали работают бинарные rpm,deb? :)
еще можно почитать про кросс-платформенную сборку…
Конечно будет, а куда оно денется? Это ж не винда, в которой вместе с софтом надо ставить ещё кучу ключей в реестр.
В винде есть portable apps в отличие от линукса. Молчали бы если не знаете.
в линуксе все apps portable. «Молчали бы если не знаете.»
Ага, подходит ллинуксоид, вставляет флешку и давай свои portable apps компилировать)))

Не вводит людей в заблуждение. Без компилятора, make, +100 извратов, чтобы просто заставить программу работать в нестандартной папке, большинство программ не пойдет. Ставить программы без прав админа —сплошной геморрой, никаких тебе менджеров пакетов и прочее, сам ищи и компилируй зависимости, да еще и нужной версии.
почему у меня частенько получается скачать тарболл с бинарниками (именно с бинарниками), тупо распаковать куданить в ~, добавить в PATH и всё? с десяток прог у меня установлены именно так.
КДЕ-шные? ГТК-шные? И им пофиг, какие версии библиотек используются?
UFO landed and left these words here
хватит судить о юникс-системах по примеру всевозможных убунт. тогда странности пропадут и всё будет работать именно так, как надо.
Собирать можно с ключём типа -all-static тогда все зависимости будут уже скомпилированы в этот бинарник, размер получится, конечно, намного больше, но зато и больше уверенности что приложение запустится на другой машине даже с разными версиями зависимых библиотек
pkg_add -r subversion
или как-то в том же духе — давно фряху не трогал.

Svn имеет замечательную тулзу — svnserve. И после «svnadmin create /pub/home/megauser/myrepo» можно подправить внутри созданой папки конфиги, описав там пользователей и права. После чего сделать
svnserve -d --listen-port=PORT_YOU_WANT -r /pub/home/megauser/myrepo
1) pkg_add требует прав рута, мы же поднимали всё это дело на шаред-хостинге с одним единственным ssh-аккаунтом без всяких прав кроме записи в свой домашний каталог.

2) svnserve — замечательная тулза, никто не спорит :) Но постоянно висящий в процессах демон, которого быть не должно — рано или поздно будет замечен админами и прибит.
кстати, если есть доступ по ssh, то можно устроить mercurial-репозиторий и ничего больше на сервере не ставить.
Не слышал раньше ничего про mercurial-репозиторий, но:
1) не уверен что его очень легко устроить, учитывая отсутствие питона и всяких прав кроме как на запись в свой дом
2) нам нужен был именно SVN — привычка и экономия времени. Нас он полностью устраивает.
Вам хостер разрешает на шареде использовать свои бинарники?
Если Вы имеете в виду всякие параноидальные ограничения хостеров в виде патчей ядра, которые перед запуском любого бинарника проверяют «свой» он или нет — то таких извращений у нашего хостера нет. Сами понимаете, если Вам нужно что-то ужасное сделать, то вы сможете в итоге это сделать на том же php/perl/python/shell (смотря что есть у хостера в списке «своих» бинарников), и тогда вся это параноидальность теряет смысл.
Банально монтируется раздел с noexec и ничего выполнить там нельзя.
А, понял. Нет, такого ограничения нет… Помоему из-за того что там включена поддержка «cgi-bin», а может по другим причинам… Но согласитесь, даже имея раздел с noexec, я могу разместить на нём тот же php/perl/python/shell скрипт, который потом смогу запустить например так: /usr/bin/perl ./my-mega-script. Поэтому такое ограничение — не панацея.
Не очень люблю SVN для web проектов. Папки проекта по сравнению с CVS раза в 2-3 больше по размеру.
Мы уже привыкли :) Даже уже не помню как перешли с CVS на SVN, это было давно. А размер не парит в нашем случае. Вдобавок лично нам было легче настроить всё что нам было нужно для SVN чем для CVS:
— права доступа к различным проектам в репозитории
— commit-email
— ту самую возможность ходить под разными юзерами в репозиторий имея только один SSH-аккаунт.
Как это делать в случае CVS мы даже примерно не знаем, и пришлось бы много читать.
Не очень люблю CVS для web проектов. Там все через одно место и не удобно.
А какой же софт для разработки в веб использовать? Я как раз хотел начать с SVN работать. Пожскажите, пожалуйста.
Всяко не CVS. История отдельная для каждого файла (в смысле что нельзя посмотреть историю коммитов в папку, нет понятия текущей ревизии для дерева), переименовать файл нельзя, перенести в другую папку нельзя, все операции неатомарные, бранчинг и тэггинг при большом количестве файлов тормозит (а из-за того, что он не атомарный при обрыве связи половина файлов будет потагана, половина нет).
А знаете почему в SVN рабочая копия в 2 раза больше рабочей копии CVS? Потому что SVN хранит копии файлов, полученных при чекауте/апдейте, чтобы можно было не ходя на сервер определить что изменилось и посмотреть диффы.

А место экономить с сегодняшними ценами на носители данных это я даже не знаю…
За минусы всем спасибо. Объясню свою ситуацию. Работаю одинаково хорошо в SVN и CVS. Что касаемо веб разработок. У меня порядка 10 мелких VPS по 1 гигу на каждом. Ежедневный бекап по размеру у CVS меньше в 2 раза. Итого качать меньше. Конечно можно выкинуть .svn папку — но у CVS этого делать не нада.

Инет в регионах бывает по модему и тянуть бекап с сервака бывает натяжно. И работаю я в vim, а не в миднайт командоре. Для C++ проектов использую SVN.
Бэкапить рабочую копию это как-то идеологически неправильно. Бэкапить надо репозиторий.
Очень частая ситуация — это загрузка пользователем картинок, файловые базы данных. Бэкапить приходится именно рабочую версию — та что на сайта. Так же иногда приходится править код — делать хотфиксы.
Картинки и дампы баз данных же не лежат в SVN? Бэкапьте только их, а не всю рабочую копию. Ну и репозитарий само собой.
Когда куча движков, лень сидеть выбирать где картинки и базы данных. Скопировал все папку и спокоен.
Интересно, но я бы назвал статью «SVN на shared-хостинге», потому что VDS — это тоже виртуальный хостинг. Я вот пока не зашел на valuehost, не понял, в чем вообще проблема.
Ваша правда. Поправил немного название.
Беда в том, что нет общепринятой терминологии, и словом «виртуальный» называют всё подряд
Не сочтите за рекламу, но самый простой виртуальник, на firstvds.ru к примеру, в месяц стоит как одна кружка приличного пива, может ну его нафиг этот валуехост?
А если каждый не выпьет по две кружки пива то и тут tektonic.net/ поселится можно.
Дело в том, что аккаунт на валуехосте уже был, переезжать решили чуть позже, уже на нормальный vps. А в качестве временного решения решили остаться где и были, но прикрутить svn, который потом спокойно перенесём на новый vps. Вдобавок было интересно поднять svn именно там где нужен, а не прыгать к другому хостеру только из за наличия у него svn.
Ничесе =) На моем ЖК там так фон моргает забавно при скроле :)
Да, мы думали о таком варианте, но (как минимум на тот момент, когда мы искали) бесплатных svn-хостингов с приемлемым:
— максимальным размером репозитория
— скоростью работы с репозиторием
— аптаймом
— возможностью сделать столько юзеров, сколько нам нужно
мы не нашли. Поэтому и решили проблему таким образом, как описано в статье.

В любом случае, даже если устраивающий нас бесплатный svn-хостинг мы бы нашли — нам скорее всего нужен был бы svn на сервере хостера, чтобы получать туда последние ревизии проекта. Иначе процедура выкладывания последней ревизии в бой была бы неудобной.
UFO landed and left these words here
Угу, пришлось переехать на unfuddle и codespaces о чем в принципе и не жалею.
у обоих только 1 проект вести можно, 2 пользователя… скудно как-то… ассембла рулила раньше. Вы не в курсе, нет бесплатного метров на 100, 2-3 проекта и 3-4 пользователя?
за 9-10 у.е. в месяц (как у двоих вышеуказанных) можно подумать о впс уже)
Да, к сожалению везде маленькое кол-во пользователей. Как крайность — создать технического пользователя из под которого будут работать все.
Интересно, а trac заработает при тех же ограничениях?
Точно не знаю, но думаю особых проблем быть не должно. Нам он просто не был нужен, поэтому мы и не пробовали.
UFO landed and left these words here
Если у хостера в апаче включен mod_webdav и у вас есть права настроить его для себя — то получится. Иначе — пока не вижу вариантов :(
Не сочтите за рекламу на бесплатном хостинге Агавы то ли ЦВС, то ли СВН дается.
У меня такое чувство что можно обойтись без всего этого геммора с компиляцией пакетов. Достаточно создать репозиторий svnadmin create, на любой (домашней или рабочей) системе, перенести эту папку на хостинг и затем пользоваться subversion через svn+ssh
Чтобы пользоваться subversion через svn+ssh нужно чтобы на удалённой стороне (то есть как раз на сервере хостера) была как минимум svnserve, которая и будет в туннельном режиме (ключ -t) обрабатывать svn+ssh соединения. Сам SSH для этого не предназначен. Вдобавок для полноценной работы репозитория на этом же сервере нужна утилита svnlook, а возможно и другие. Поэтому так просто не получится.
А можно было бы настроить любую распределенную VCS и не заморачиваться. Например, для bzr нужен только sftp
Не понятен смысл некоторых комментариев: «Делай ..., не заморачивайся», «А на… уже всё есть.». Автор показал способ обхода ограничения хостинга, что довольно интересно и ново(по крайней мере для меня). Таким способом можно поставить не только SVN, я уверен. Человек заморочился, решил проблему, остался на привычном хостинге, не переплачивал за услуги и поделился опытом с нами, разве не для этого нужен хабр?
Спасибо, duncanf1.
Гм…
..." Свой SVN на виртуальном (shared) хостинге" (с) duncanf1…

Автор, а вам не кажеться что это звучит похоже с:
— все яйца в одну корзину
?

… со всеми вытекающими последствиями.
UFO landed and left these words here
Благодарю за статью.

duncanf1, пожалуйста, расскажите поподробнее для тупых :)

Вроде все настроил как описано. При подключении к svn+ssh://server.of.your.hoster.ru/ (где server.of.your.hoster.ru заменил на свой домен) через Tortosie TortosiePlink спрашивает какой-то пароль. Какой и как его указать?

Еще не уверен, что правильно сгенерировал ключи (никогда этого не делал), может расширите статью и расскажите как это сделать с помощью какой-нибудь конкретной программы?
Пароль, который запрашивает TortoisePlink при верных настройках — это может быть только пароль от Вашего публичного ключа. Если Вы генерировали ключ с пустым паролем — значит что-то настроено неверно.

Насчет генерации ключей, расскажу на примере PuttyGen:
— запускаете puttygen.exe, внизу окна выбираете (если оно не выбрано) SSH2-RSA, количество бит можете оставить 1024, можете сделать 2048 для пущей убедительности.
— нажимаете кнопку «Generate»
— елозите мышкой по окну программы для генерации рандомных чисел, нужных программе для создания ключа
— когда генерация ключа завершится, в поля Key passphrase и Confirm passphrase можете вбить пароль ключа, тогда при коннекте к репозиторию TortoisePlink будет запрашивать у Вас именно этот пароль. Если оставите эти поля пустыми — пароль запрашиваться не будет.
— нажимаете кнопку «Save private key» и сохраняете приватный ключ куда нибудь на свой компьютер.
— дальше зависит от операционки на сервере:
— в случае линукса: копипастите текст из поля «Public key for pasting into OpenSSH authorized_keys file:», и добавляете эту строку в ~/.ssh/authorized_keys на сервере. В начале этой строки дописываете: command="/pub/home/megauser/myroot/bin/svnserve -t -r /pub/home/megauser/myrepo -t --tunnel-user=virtual_user_name"
— в случае FreeBSD или другой ОС, где стоит ssh от ssh.com а не OpenSSH: нажимаете кнопку «Save public key», сохраняете файл куда нибудь, затем копируете его содержимое в файл ~/.ssh2/id_rsa_<virtual_user_name>.pub, а дальше в файле ~/.ssh2/authorization прописываете 2 строки как описано в статье (Key и Options)
— затем даете всем созданным в ~/.ssh или ~/.ssh2 файлам правильные права (0600)
— и наконецто создаёте в Putty копию сессии, через которую вы коннектитесь к своему хостеру, в ней в закладке SSH->Auth заменяете или прописываете путь к приватному ключу, который вы сохранили нажав «Save private key». Потом TortoisePlink-у говорите чтобы он использовал эту сессию (там есть соответствующий параметр командной строки).

Ну вот вроде бы и все, если будут проблемы — пишите.
Благодарю, видимо получилось, так как теперь Tortosie говорит: «Invalid Port Number». Наверно порт закрыт, можно ли как-то это обойти?
Мучаю я хостинг РБК (hc.ru) тариф большой. Все для СВНа там уже стояло, так что я как сказал автор сразу перешел к пункту 4. Репозиторий создался без проблем, а как достучаться до него…
Sign up to leave a comment.

Articles