Installatie subversion

Installatie: Subversion met Apache

Eerst: installeren we de benodigde apache packages.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
apt-get install subversion libapache2-svn


Het aanmaken van een svn repository.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mkdir /home/users/projectname/svn/


De svn directories moeten eigendom zijn van de apache user:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
chown www-data:www-data -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)
PHP script in nieuw venster Selecteer het PHP script
1
2
chown projectname:www-data -R /home/users/projectname/svn/
chmod 770 -R /home/users/projectname/svn/



Configuratie van Apache
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>


En vervolgens maak ik een .htpasswd aan, zodat de svn niet publiekelijk toegankelijk is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
htpasswd -c /home/users/projectname/dav_svn.passwd jouwgebruikersnaam


Aanmaken svn project
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
svnadmin create /home/users/projectname/svn/projectname


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
/etc/init.d/apache2 restart


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)
PHP script in nieuw venster Selecteer het PHP script
1
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


/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)
PHP script in nieuw venster Selecteer het PHP script
1
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


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)
PHP script in nieuw venster Selecteer het PHP script
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.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Installatie subversion
  3. Optioneel: installatie trac
  4. Subversion workflow
  5. Tips, Links en bronvermelding

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.