Installatie subversion
Installatie: Subversion met Apache
Eerst: installeren we de benodigde apache packages.
Het aanmaken van een svn repository.
De svn directories moeten eigendom zijn van de apache user:
Code (php)
1
2
2
chown www-data:www-data -R /home/users/projectname/svn/
chmod 770 -R /home/users/projectname/svn/
chmod 770 -R /home/users/projectname/svn/
Alternatief kan je ook de bestanden eigendom laten zijn van user projectname, en eigendom van de group apache:
Code (php)
1
2
2
chown projectname:www-data -R /home/users/projectname/svn/
chmod 770 -R /home/users/projectname/svn/
chmod 770 -R /home/users/projectname/svn/
Configuratie van Apache
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<VirtualHost ip:80>
DocumentRoot "/home/users/projectname/html"
ServerName www.dev.yourdomain.ext
ServerAlias dev.yourdomain.ext
<Directory "/home/users/projectname/html">
Options FollowSymLinks ExecCGI Includes
AllowOverride all
#IndexIgnore .htaccess
Order allow,deny
Allow from all
</Directory>
<Location /svn>
DAV svn
# any "/svn/foo" URL will map to a repository /home/users/projectname/svn/foo
SVNParentPath /home/users/projectname/svn/
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/users/projectname/dav_svn.passwd
Require valid-user
</Location>
</VirtualHost>
DocumentRoot "/home/users/projectname/html"
ServerName www.dev.yourdomain.ext
ServerAlias dev.yourdomain.ext
<Directory "/home/users/projectname/html">
Options FollowSymLinks ExecCGI Includes
AllowOverride all
#IndexIgnore .htaccess
Order allow,deny
Allow from all
</Directory>
<Location /svn>
DAV svn
# any "/svn/foo" URL will map to a repository /home/users/projectname/svn/foo
SVNParentPath /home/users/projectname/svn/
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/users/projectname/dav_svn.passwd
Require valid-user
</Location>
</VirtualHost>
En vervolgens maak ik een .htpasswd aan, zodat de svn niet publiekelijk toegankelijk is:
Aanmaken svn project
Je repository is nu te bereiken vanaf: http://dev.yourdomain.ext/svn, maar we zullen eerst nog een project moeten importeren
Subversion structuur en initial import
Voor subversion is het handig om een bepaalde structuur aan te houden. De volgende mappen structuur word voor de meeste projecten aangehouden, en het is handig om je project in eerste instatie zo neer te zetten:
Dit is de meest aan te raden structuur, al zal je met kleine projecten dit niet volledig benutten. Als je deze structuur aanhoud zal je geen problemen in te toekomst krijgen wanneer je meerdere versies van je software gaat ontwikkelen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
/trunk
/tags
/release-myproject_v0.1-beta/
/release-myproject_v0.2/
/release-myproject_v0.3-rc/
/release-myproject_v0.3/
/stable/
/development/
/branches
/myproject_v1
/myproject_v2
/myproject_v3
/tags
/release-myproject_v0.1-beta/
/release-myproject_v0.2/
/release-myproject_v0.3-rc/
/release-myproject_v0.3/
/stable/
/development/
/branches
/myproject_v1
/myproject_v2
/myproject_v3
/trunk
De trunk gebruik je als werkmap. Dit is de allerlaatste versie van je project. En hier zal je het meeste in werken als ontwikkelaar. Alle veranderingen 'commit' je in feite naar de trunk.
tags
Tags zijn versies (snapshots) van je software die je uitgeeft. Deze kan je bijvoorbeeld stable, en elke versie apart neerzetten.
branches
Branches zijn verschillende 'takken', zo kan je bijvoorbeeld een v2.0 en versie v3.0 naast elkaar blijven ontwikkelen.
Meer informatie over het plannen van je repository
Nu ga ik mijn eerste project in mijn svn zetten.
Ik maak een werkdirectory, waar ik mijn project al heb staan, en zal deze importeren in svn:
Code (php)
1
2
3
2
3
mkdir -p /home/users/projectname/project-skel/trunk
mkdir -p /home/users/projectname/project-skel/tags
mkdir -p /home/users/projectname/project-skel/branches
mkdir -p /home/users/projectname/project-skel/tags
mkdir -p /home/users/projectname/project-skel/branches
Ik maak hier een submap www aan, zodat ook andere mappen mogelijk zijn voor bijvoorbeeld sql dumps in /trunk/sql, of documentatie in /trunk/doc
Initial import
De structuur voor mijn svn project is compleet, en we zijn klaar voor de eerste import:
Code (php)
1
svn import /home/users/projectname/project-skel/ file:///home/users/projectname/svn/projectname/ -m"initial import"
Dit zal de eerste structuur van je webroot importeren naar svn.
« vorige pagina | volgende pagina »
Inhoudsopgave
- Inleiding
- Installatie subversion
- Optioneel: installatie trac
- Subversion workflow
- Tips, Links en bronvermelding