Как стать автором
Обновить

Комментарии 67

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

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

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

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

Не вводит людей в заблуждение. Без компилятора, make, +100 извратов, чтобы просто заставить программу работать в нестандартной папке, большинство программ не пойдет. Ставить программы без прав админа —сплошной геморрой, никаких тебе менджеров пакетов и прочее, сам ищи и компилируй зависимости, да еще и нужной версии.
почему у меня частенько получается скачать тарболл с бинарниками (именно с бинарниками), тупо распаковать куданить в ~, добавить в PATH и всё? с десяток прог у меня установлены именно так.
КДЕ-шные? ГТК-шные? И им пофиг, какие версии библиотек используются?
НЛО прилетело и опубликовало эту надпись здесь
Странно.
хватит судить о юникс-системах по примеру всевозможных убунт. тогда странности пропадут и всё будет работать именно так, как надо.
Собирать можно с ключём типа -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.
Ничесе =) На моем ЖК там так фон моргает забавно при скроле :)
Для таких случаев есть специальные сервисы.
Подробнее можно почитать scrum.org.ua/kak-vybrat-besplatnyj-svn-xosting/
Правда бывший лидер assembla начал мутить воду с вводом платных аккаутнов
Да, мы думали о таком варианте, но (как минимум на тот момент, когда мы искали) бесплатных svn-хостингов с приемлемым:
— максимальным размером репозитория
— скоростью работы с репозиторием
— аптаймом
— возможностью сделать столько юзеров, сколько нам нужно
мы не нашли. Поэтому и решили проблему таким образом, как описано в статье.

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

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

… со всеми вытекающими последствиями.
НЛО прилетело и опубликовало эту надпись здесь
Благодарю за статью.

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. Репозиторий создался без проблем, а как достучаться до него…
По идее Вам нужно юзать TortoisePlink вместо putty для доступа к репозитарию и всё станет хорошо. Вот тут описывается: www.intelliot.com/blog/archives/2006/06/19/fix-invalid-port-number-error-with-tortoisesvn-and-putty/
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории