Налаштування SVN з двома клієнтами та одним сервером для живого сайту


0

Я працюю з клієнтом, який має виділений сервер Plesk на базі Linux. Веб-сайт (скажімо example.com) працює в реальному часі, і оскільки зазвичай потрібні величезні модифікації, дуже важко змусити їх працювати безпосередньо в прямому ефірі. На сервері не було SVN, лише FTP.

Я створив піддомен staging.example.comі розмістив там файли через FTP, щоб клієнт міг бачити модифікації перед тим, як зробити їх живими. Потрібно сказати, що мені болісно запам’ятовувати кожен файл, пов'язаний з кожним завданням, завантажувати та перевіряти тестування, а потім знову згадувати, що це за файли, і робити це знову для живого сервера. Я кілька разів «успішно провалювався» в цьому бездоганно.

Я хочу зараз використовувати SVN. Мені вдалося встановити SVN за допомогою SSH (у мене є повний доступ до нього) та сховища (in /var/www/vhosts/example.com/svn/repos), але подальші налаштування здаються мені неоднозначними. Я хочу, щоб установка була такою:

  1. SVN-сервер (працює на svn.example.com- вже зроблено)
  2. "master" копія at staging.example.com, at /var/www/vhosts/example.com/staging(Не впевнений, чи має "master" певні значення у SVN. Я маю на увазі основну копію)
  3. Робочий каталог в www.example.com, на, /var/www/vhosts/example.com/httpdocsщоб я міг оновити svn, щоб зміни вносилися в реальність
  4. Ще один робочий каталог на моєму комп’ютері, де я би робив фактичну роботу.

Мій план полягає в тому, що я буду працювати на своєму комп’ютері, виконувати його, щоб він міг бути перевірений на інсценізації, і якщо все в порядку, то оновіть з веб-сайту, щоб змінити зміни.

Підкажіть, будь ласка, як я можу цього досягти. Також зауважте, що я програміст, а не системний адміністратор, тому мій план може мати деякі проблеми. Якщо ви так вважаєте, будь ласка, вкажіть альтернативне рішення. Я використовую SVN вже давно, але це була лише перевірка-фіксація-оновлення-вирішення, не налаштування. Ось чому мені зараз потрібна допомога.

Відповіді:


0

Найпростіше рішення - це, мабуть, просто перевірити код (лише стовбур, без гілок тощо) у трьох місцях. Тоді вам просто потрібно переконатися, що ви робите "svn up" у потрібних папках у потрібний час.

Отже, спробуйте наступне (коментарі описують кожен біт).

#SSH to the server as a user who can modify /var/www/vhosts/...
...

cd /var/www/vhosts/ # Since this is a live server, we need to make the
                    # changeover fast, so work in a new folder. 
mkdir example.com_svn # Make the new folder
cd example.com_svn
svn co http://example.com/svn/repos/website staging # Check out the repository 
                                                    # into a new folder called
                                                    # "staging".(Change "website"
                                                    # to your folder name)
svn co http://example.com/svn/repos httpdocs # Ditto, but "httpdocs"

# At this point you need to make the file permissions and ownership the same as
# the folders within the /var/www/vhosts/example.com.
# Once you've done that continue...

cd ..
mkdir example.com_old
mv example.com/staging example.com_old/. && mv example.com_svn/staging example.com/.   
 # This will make the svn version of the staging site live. Check that it works
 # then do the same with the httpdocs folders.

Складнішим рішенням буде використання двох гілок коду, однієї для постановки та іншої для прямої трансляції. Але це, мабуть, буде зайвим для цього ...


0

Розширена версія відповіді на Ед

Передмова

Ви повинні отримати деякі навички адміністрування для Subversion, щоб правильно працювати і зрозуміти процеси під кришкою

Обличчя

Ви повинні мати:

  • Одне сховище
  • Дві гілки (принаймні) у сховищі (fe STAGINGта LIVE)
  • Гак після завершення з вбудованою бізнес-логікою "опублікувати на ЕТАПІ або ЖИВІЙ цілі"
  • Три чотири робочих копії: DEV (місцеве робоче місце, прив’язане до гілки STAGING), MERGE (місцеве робоче місце, прив’язане до відділення LIVE), STAGING (на сервері STAGING, прив’язане до гілки STAGING), LIVE (на сервері LIVE, прив’язаний до LIVE відділення)
  • Клієнт SVN встановлений у режимі STAGING та LIVE

Робочий процес:

  • Редагувати код у програмі DEV
  • Команда - гачок після фіксації оновить туалет у STAGING
  • Перевірте зміни на STAGING
  • Об'єднайтеся в MERGE WC (випробувано) зміни від гілки STAGING / злиття з гілки STAGING ефективно на LIVE /
  • Здійснити зміни гілки LIVE - гак після фіксації оновить WC on LIVE з об'єднаними змінами (гак може виявити такий тип фіксації за ключовим словом у команді повідомлення / svnlook log | grep KEYWORD/ або за змінами у гілці LIVE / svnlook dirs-changed/)

Примітка :

Замість туалетів на серверах, і ssh & svn upви можете використовувати FTP або scp - менше Subversion, більше головного болю з оновленнями сайтів (видалені файли не будуть видалятися FTP | scp і загальний процес здається складнішим / для мене /)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.