Професионална програма
Loading...
n.velchev95 avatar n.velchev95 79 Точки

Source Control Systems на сървъра поддържащ сайта ни

Здравейте, по повод отборните проекти и запознанството ни с source control системите ми хрумна да ви попитам следното. Има ли възможност да свържем сървърът на който е хостнат сайта ни със source control система. За да не се налага постоянно при всяка промяна да ъпдейтваме на ръка прз FTP променените файлове.  

1
PHP Web Development Basics
LinAdmin avatar LinAdmin 78 Точки

По принцип версионирам кода на почти всичките си проекти и клиети (почти, защо още не съм успял да го направя с всички, поради липса на време). Обикновено слагам сорсовете и конфигуранционните файлове (apache, php). Така, че ако имате някакви питания за SVN Питайте шще помагам.

0
LinAdmin avatar LinAdmin 78 Точки
Ако обещаете да не правите глупости може да ви дам една виртуалка с Дебиан с един apache/svn да чупите.
0
n.velchev95 avatar n.velchev95 79 Точки

Ами мен ме интересува как да си инсталирам сорс контрол система на хостинга защото не искам постоянно през FTP на ръка да подменям файлове. Пиша темата за да може въпросът да бъде разгледан и обсъден от всички.  Някой  който  е използвал някаква система и е доволен от нея, да сподели неща които са хубави да ги знаем - инсталации, проблеми които можем да срещнем.  Иначе и аз ще направя питанка в гугъл. 

0
n.velchev95 avatar n.velchev95 79 Точки

Ако желаеш дай да разцъкаме да се научим. :) 

0
RoYaL avatar RoYaL Trainer 6847 Точки

Ако имаш достъп до сървъра, инсталираш SVN Server както инсталираш всеки друг софтуер за съответната операционна система. Ако нямаш достъп до сървъра - няма вариант :)

1
LinAdmin avatar LinAdmin 78 Точки

Инсталираш apache и после активираш модул dav_svn и след това е лесно. Няма нужда да инстралираш svn като stand alone. Апаш модула върши цялата работа. И не ти прави проблеми с разни корпоративни FW, които те орязват, защото работи по http/https

 

Ето ви един реален пример с блога ми: все се чудех хога ще го направя, ето сега бил момента :)

1. Създаваме репото:

root@repo01:~# cd /REPOS/

root@repo01:/REPOS# svnadmin create oldzhay-blog

1.1. SVN създава съответната структъра:

root@repo01:~# ll /REPOS/oldzhay-blog/
total 32
drwxrwsr-x 6 root root 4096 Jul 4 17:03 ./
drwxr-xr-x 6 root root 4096 Jul 4 17:03 ../
drwxrwsr-x 2 root root 4096 Jul 4 17:03 conf/
drwxrwsr-x 6 root root 4096 Jul 4 17:03 db/
-r--rwSr-- 1 root root 2 Jul 4 17:03 format
drwxrwsr-x 2 root root 4096 Jul 4 17:03 hooks/
drwxrwsr-x 2 root root 4096 Jul 4 17:03 locks/
-rw-rwSr-- 1 root root 229 Jul 4 17:03 README.txt

2. Конфигваме модула на апаха. Изглежда нещо такова: (Location-a е името, което ще се появи после в URL адреса. Аз лично си възприех /svn/ преди всяко име на репо като собствена номенклатура и всичките ми репота ги слагам на /svn/проект1, /svn/проект2, т.н. Въпрос на вкус :)

root@repo01:/REPOS# tail -12 /etc/apache2/mods-enabled/dav_svn.conf
<Location /svn/oldzhay-blog>

DAV svn

SVNPath /REPOS/oldzhay-blog
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd

Require valid-user

</Location>
root@repo01:/REPOS#

3. Сега отиваме на клиента:

3.1. Правим начален checkout на празно репо в папката на проекта ( това в случай, че ще версионираме вече съществуващо съдържание:

root@frontend01:/var/www/oldzhay.saroolu.me# svn co http://svn-server.int/svn/oldzhay-blog/ .
Authentication realm: <http://svn-server.int:80> Subversion Repository
Password for 'ol':
Checked out revision 0.
root@frontend01:/var/www/oldzhay.saroolu.me#

3.3. Проверяваме, че е станало както трябва: (Optional)

root@frontend01:/var/www/oldzhay.saroolu.me# svn status

? index.php
? други-файлове
....
root@frontend01:/var/www/oldzhay.saroolu.me#

? означава, че файловете не са част от репото. Ако потърсите в Google  "SVN status codes" показва какси са сдругите кодове (A; D; U; G; C; и т.н.)

3.3. След това правим начален checkin/commit

- Първо svn add *

root@frontend01:/var/www/oldzhay.saroolu.me# svn add *
...
A (bin) wp-includes/js/crop/marqueeHoriz.gif  <-Котаго файла е бинарен (картинка, видеио, ppt, ...) си казва
...
A index.php
...
root@frontend01:/var/www/oldzhay.saroolu.me#

- После commit и си даваш сметка, че нещо си омазал по пътя:

root@frontend01:/var/www/oldzhay.saroolu.me# svn ci -m "Initial/first commit"
Authentication realm: <http://svn-server.int:80> Subversion Repository
Password for 'ol':
svn: Commit failed (details follow):
svn: Can't open file '/REPOS/oldzhay-blog/db/txn-current-lock': Permission denied
root@frontend01:/var/www/oldzhay.saroolu.me#

 

Сещаш се, че си забравил да оправиш пермишъните на репото, като си го създавал. Поправяш грешката:

root@repo01:~# chmod -R g+rws /REPOS/oldzhay-blog/

root@repo01:~# chown -R www-data:svn /REPOS/oldzhay-blog/

Потребителя и групата зависят от операционната система и как си решил да ги кръстиш. Пермишъните са така, както пише.

 

Като оправиш този проблем, вече commit-а работи:

root@frontend01:/var/www/oldzhay.saroolu.me# svn ci -m "Initial/first commit"

Authentication realm: <http://svn-server.int:80> Subversion Repository

Password for 'ol':
...

Adding index.php
Transmitting file data ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Committed revision 1.
root@frontend01:/var/www/oldzhay.saroolu.me#

 

 

Готово! Вече си имаме код който е в репото. Може да отидете на http://svn-server.int/svn/oldzhay-blog и ще ви пита за име и парола. Разбирасе в случая нищо няма да стане, защото адреса под името е 10.x.y.z и трябват връзки (ssh или vpn) за да видиш нещо :)

Надявам се, че съм помогнал.

Айде

 

 

2