За последние 24 часа нас посетили 20123 программиста и 1707 роботов. Сейчас ищут 1473 программиста ...

SVN

Тема в разделе "Прочее", создана пользователем Slavka, 2 ноя 2013.

  1. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    Кто работал - поделитесь опытом =)
    По работе приходится изучать - и с нуля все настраивать .. пока ток начал читать манулы и прочие вбиватели мозгов.. про контроль и работу впринципе все ясно - но вот что осталось загадкой

    имеем настроенный сервак на папку htdocs - ( на линухе ) в сетке светится web-srv
    на другом сервере - бекапере .. ставлю..настраиваю Svn
    ок.. все замечательно ..

    а теперь вопрос - как мне сидя за рабочим местом на винде с установленой тортилой обновить файлы на боевом серваке ? ведь если делать обновление - обновятся данные на бекапе.. а не на серваке - или же svn надо запускать и настраивать на веб- серваке ?

    если есть какая нить доступная ссылка по этому поводу - меня вполне устроит =) заранее спасибо
     
  2. Dmitriy427

    Dmitriy427 Новичок

    С нами с:
    30 окт 2013
    Сообщения:
    53
    Симпатии:
    0
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.119
    Симпатии:
    1.245
    Адрес:
    там-сям
    Slavka, перечитываю, но не могу понять твою схему. Где у тебя репозиторий и сервер SVN, где рабочая копия и какова цель. Нарисуй чтоли схемку в паинте :) Может чего подскажу.
     
  4. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Насколько я понял, есть
    1 - рабочее место
    2 - сервак свн
    3 - продакш сервер

    так вот, с 1 на 3 никак, только с 1 на 2 и потом зайдя на 3 попросить свн обновить состояние файла с 2 на 3.
     
  5. Dmitriy427

    Dmitriy427 Новичок

    С нами с:
    30 окт 2013
    Сообщения:
    53
    Симпатии:
    0
    Можно и без запроса, вроди бы, post-commit хуком на сервере. Тут вот немного есть - http://adw0rd.com/2009/6/25/subversion-hooks/#.UnSbvUCA-Lo. Но репозиторий нужно делать на сервере с проектом, действительно.
     
  6. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    artoodetoo сори писал поздно да еше после первых тестов с Svn =) поэтому написал так сумбурно
    именно так и есть ... ну предполагается что рабочих мест может быть до 5 шт .. поэтому и встает вопрос о контроле чтобы потом не спрашивать как есть сейчас - "эй ты чтото там правиш ?" =)
    пасиб - время появится попробую

    а вообше было бы идеально наверно так
    на свн есть 1 рабочая папка .. обзавем ее JOB - и как только ктото ее обновляет то сервер Svn автоматом кладет на веб сервак этот обновленный файл.
    захотел сделать копию с этого job себе стянул и все в шоколаде ...

    Добавлено спустя 3 минуты 49 секунд:
    или же правильнее будет вот так сделать - svn ставлю на веб сервер .. и к нему монтирую папку с сервера - бекапа ( он то и будет репозитарием) а папку с рабочей копией настраиваю на htdocs
     
  7. Dmitriy427

    Dmitriy427 Новичок

    С нами с:
    30 окт 2013
    Сообщения:
    53
    Симпатии:
    0
    Ну да, samba нас спасет.)
     
  8. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    веб сервер и бекап на линухе.. самбу на бекапе не подымал ..

    Добавлено спустя 5 минут 34 секунды:
    немного времени появилось .. шас попробую даже по настройке под дебианом чего то нашел =)
    http://debianworld.ru/articles/ustanovka-i-nastrojka-subver ... an-ubuntu/
     
  9. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    svn не модно.
    mercurial или git - наш выбор! )
     
  10. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    хз, в крон засунуть на продакшене git pull и забить )
     
  11. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    щас с свн наиграюсь потом на эти начну заглядываться все познается в сравнении
     
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.119
    Симпатии:
    1.245
    Адрес:
    там-сям
    Выбор svn vs. git vs. hg вообще слабо связан с процедурой деплоя.

    В простых случаях и незагруженных сайтах может быть достаточно сделать рабочую копию в DocumentRoot и апдейтить её.
    Но потом начинаются нюансы
    - миграция БД,
    - очистка кеша,
    - файлы тестов должны быть под VCS, но на продакшене они нафиг не нужны,
    - разнесение папок - часть в docroot, а приватная вне его и т.д.
    Ну и сама операция checkout или update она не уровне файловой системы не мгновенная, у тебя может порядка минуты быть раскоряка из старых и новых файлов - наживую это не очень хорошо.

    Поэтому должен быть скрипт деплоя, который выгружает рабочую копию куда-то в новую папку, затем производит все необходимые действия, вплоть до создания нового конфига вебсервера и затем reload. Это тебе под себя писать, нет универсального решения.

    Скрипт деплоя можно запускать по ssh. Не каждый commit или push обязательно приводит к деплою.

    Добавлено спустя 19 минут 12 секунд:
    Применительно к SVN. Популярный вид папок в репе (хотя необязательный) такой:
    /trunk
    /banches
    /tags
    Так вот, tags он какбы для релизов или релиз кандидатов. Поэтому и выгрузку на продакшн логично делать в одной процедуре с созданием нового тега. Опять большой простор для творческого написания шелл-скриптов :)
     
  13. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    кажется к концу дня у меня начинают мозги работать в правильную сторону .. я просто немного запутался с принципами работы свн.. но сейчас все становится ясно =) спасибо всем за советы.

    пришел к выводу что
    1. свн сервер и репозиторий обязаны быть на 1 сервере ( в моем случае это будет бекап) для уменьшения нагрузки по сети
    2. наконец то я понял как работают хуки .. это как раз то что надо в моем случае =)

    у меня просто долгое время был затык в том что я думал, что сервер хранит файлы в открытом виде и эту папку ( trunk) можно настроить непосредственно для вывода пользователю =)
    + еще дома сосредоточиться не давали .. жена дергала =)