Old:Installing SVN: Difference between revisions
Upazixorys (talk | contribs) No edit summary |
Upazixorys (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
>This guide will show you how to install a Subversion (SVN) server with Uniform Server. This guide assumes that you have a clean installation of Uniform Server running currently and do not have another version of Apache installed on your PC. | >>This guide will show you how to install a Subversion (SVN) server with Uniform Server. This guide assumes that you have a clean installation of Uniform Server running currently and do not have another version of Apache installed on your PC. | ||
== Installing SVN == | == Installing SVN == | ||
Line 7: | Line 7: | ||
== Apache Module Configuration == | == Apache Module Configuration == | ||
# Edit Apache's configuration files (W:\usr\local\Apache2\conf\httpd.conf) and uncomment (remove the # from) this line if it is commented: <pre>LoadModule dav_module modules/mod_dav.so</pre> | # Edit Apache's configuration files (W:\usr\local\Apache2\conf\httpd.conf) and uncomment (remove the # from) this line if it is commented: &lt;pre&gt;LoadModule dav_module modules/mod_dav.so&lt;/pre&gt; | ||
# Next find: <pre>LoadModule dav_fs_module modules/mod_dav_fs.so</pre> and add this below it: <pre><nowiki>LoadModule dav_svn_module modules/mod_dav_svn.so | # Next find: &lt;pre&gt;LoadModule dav_fs_module modules/mod_dav_fs.so&lt;/pre&gt; and add this below it: &lt;pre&gt;&lt;nowiki&gt;LoadModule dav_svn_module modules/mod_dav_svn.so | ||
LoadModule authz_svn_module modules/mod_authz_svn.so</nowiki></pre> | LoadModule authz_svn_module modules/mod_authz_svn.so&lt;/nowiki&gt;&lt;/pre&gt; | ||
== Configuring SVN == | == Configuring SVN == | ||
# Create an empty folder (I used W:\svn), which will used as repository root. | # Create an empty folder (I used W:\svn), which will used as repository root. | ||
# Create another empty folder (for example W:\svn\test) in your repository root. | # Create another empty folder (for example W:\svn\test) in your repository root. | ||
# Open the Command Prompt (or MS-DOS Prompt in Win 9x), cd into your repository root. Execute:<pre>svnadmin create --fs-type bdb test</pre>or<pre>svnadmin create --fs-type fsfs test</pre> ''Note: test is the folder you created (under your repository root) earlier in Step #2; for more info on which fs-type to choose, read [http://svnbook.red-bean.com/en/1.1/ch05.html#svn-ch-5-sect-1.2.A Chapter 5, Repository Data-Stores] in the SVN book for more information '' | # Open the Command Prompt (or MS-DOS Prompt in Win 9x), cd into your repository root. Execute:&lt;pre&gt;svnadmin create --fs-type bdb test&lt;/pre&gt;or&lt;pre&gt;svnadmin create --fs-type fsfs test&lt;/pre&gt; ''Note: test is the folder you created (under your repository root) earlier in Step #2; for more info on which fs-type to choose, read [http://svnbook.red-bean.com/en/1.1/ch05.html#svn-ch-5-sect-1.2.A Chapter 5, Repository Data-Stores] in the SVN book for more information '' | ||
== Integrating Apache + SVN == | == Integrating Apache + SVN == | ||
First, you should add this anywhere in your configuration file (preferably between "<IfModule mod_dav.c>" and "</IfModule>"): | First, you should add this anywhere in your configuration file (preferably between &quot;&lt;IfModule mod_dav.c&gt;&quot; and &quot;&lt;/IfModule&gt;&quot;): | ||
<pre><nowiki><Location /svn> | &lt;pre&gt;&lt;nowiki&gt;&lt;Location /svn&gt; | ||
Dav svn | Dav svn | ||
SVNParentPath /svn | SVNParentPath /svn | ||
AuthType Basic | AuthType Basic | ||
AuthName "Subversion Repositories" | AuthName &quot;Subversion Repositories&quot; | ||
AuthUserFile /htpasswd/svn/.htpasswd | AuthUserFile /htpasswd/svn/.htpasswd | ||
<LimitExcept GET PROPFIND OPTIONS REPORT> | &lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt; | ||
Require valid-user | Require valid-user | ||
</LimitExcept> | &lt;/LimitExcept&gt; | ||
</Location></nowiki></pre> ''Note #1: If you do not want your repository to have read access for everyone (even those who do not have the password) remove the <LimitExcept>'' | &lt;/Location&gt;&lt;/nowiki&gt;&lt;/pre&gt; ''Note #1: If you do not want your repository to have read access for everyone (even those who do not have the password) remove the &lt;LimitExcept&gt;'' | ||
''Note #2: /svn is the path to your repository root, if you used any drive other than what Apache is on (Uniform Server default = W:\) for your repository root, you'll have to put the drive letter in front of the / (for example, C:\SVN becomes C:/SVN)'' | ''Note #2: /svn is the path to your repository root, if you used any drive other than what Apache is on (Uniform Server default = W:\) for your repository root, you'll have to put the drive letter in front of the / (for example, C:\SVN becomes C:/SVN)'' | ||
Next, create the .htpasswd file which will store the username & password needed to modify your repositories. Open the Command Prompt again, cd into Apache's bin directory (W:\usr\local\Apache2\bin). Execute:<pre>htpasswd -c .htpasswd <username></pre> To add more usernames & passwords, execute:<pre><nowiki>htpasswd .htpasswd <username></nowiki></pre> ''Note: Replace <nowiki><username></nowiki> with the username of your choice.'' | Next, create the .htpasswd file which will store the username &amp; password needed to modify your repositories. Open the Command Prompt again, cd into Apache's bin directory (W:\usr\local\Apache2\bin). Execute:&lt;pre&gt;htpasswd -c .htpasswd &lt;username&gt;&lt;/pre&gt; To add more usernames &amp; passwords, execute:&lt;pre&gt;&lt;nowiki&gt;htpasswd .htpasswd &lt;username&gt;&lt;/nowiki&gt;&lt;/pre&gt; ''Note: Replace &lt;nowiki&gt;&lt;username&gt;&lt;/nowiki&gt; with the username of your choice.'' | ||
For more advanced configurations (not needed by many) view [http://tortoisesvn.tigris.org/docs/TortoiseSVN_en/ch03.html Setting Up an SVN Server]. | For more advanced configurations (not needed by many) view [http://tortoisesvn.tigris.org/docs/TortoiseSVN_en/ch03.html Setting Up an SVN Server]. | ||
== Last Steps == | == Last Steps == | ||
# If you are using version 3.3, please skip to step 4. | # If you are using version 3.3, please skip to step 4. | ||
# Create a "htpasswd" directory in the W:/ drive if you are using version 3.2 or less. | # Create a &quot;htpasswd&quot; directory in the W:/ drive if you are using version 3.2 or less. | ||
# Create a "svn" directory under the "htpasswd" directory. | # Create a &quot;svn&quot; directory under the &quot;htpasswd&quot; directory. | ||
# Copy the .htpasswd file into the "svn" directory. | # Copy the .htpasswd file into the &quot;svn&quot; directory. | ||
# Now, the time you've all been for. Restart Uniform Server. | # Now, the time you've all been for. Restart Uniform Server. | ||
# Point your browser to http://localhost/svn/test (where test is the name of the repository you created earlier) | # Point your browser to http://localhost/svn/test (where test is the name of the repository you created earlier) | ||
== Shortcuts == | == Shortcuts == | ||
# If you do not understand how to make the .htpasswd file, you can just make the file and edit it with the contents "username:password" in the file. | # If you do not understand how to make the .htpasswd file, you can just make the file and edit it with the contents &quot;username:password&quot; in the file. | ||
'''''[[#top | Top]]''''' | '''''[[#top | Top]]''''' | ||
Line 49: | Line 49: | ||
If you installed to another location substitute paths accordingly. | If you installed to another location substitute paths accordingly. | ||
=== How to install SVN === | === How to install SVN === | ||
{|cellspacing="6" | {|cellspacing=&quot;6&quot; | ||
|-valign="top" | |-valign=&quot;top&quot; | ||
|1) | |1) | ||
|'''Run servers''' and check they function. | |'''Run servers''' and check they function. | ||
|Just a quick check, close servers after testing. | |Just a quick check, close servers after testing. | ||
|-valign="top" | |-valign=&quot;top&quot; | ||
|2) | |2) | ||
|Inside folder C:\UniServer_4_3\UniServer\'''udrive''' create two new folders '''svn_tools''' and '''svn''' <br /> | |Inside folder C:\UniServer_4_3\UniServer\'''udrive''' create two new folders '''svn_tools''' and '''svn''' &lt;br /&gt; | ||
C:\UniServer_4_3\UniServer\udrive\'''svn_tools'''<br /> | C:\UniServer_4_3\UniServer\udrive\'''svn_tools'''&lt;br /&gt; | ||
C:\UniServer_4_3\UniServer\udrive\'''svn''' | C:\UniServer_4_3\UniServer\udrive\'''svn''' | ||
|You can choose different names and locate these outside of the UniServer folder.<br />However we are placing these here for portability.<br /> Folder '''svn''' will contain your SVN repositories. | |You can choose different names and locate these outside of the UniServer folder.&lt;br /&gt;However we are placing these here for portability.&lt;br /&gt; Folder '''svn''' will contain your SVN repositories. | ||
|-valign="top" | |-valign=&quot;top&quot; | ||
|3) | |3) | ||
|Download File: '''svn-win32-1.6.3.zip''' or newer.<br /> | |Download File: '''svn-win32-1.6.3.zip''' or newer.&lt;br /&gt; | ||
Located at the bottom of this page: [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100 '''tigris.org''']<br /> | Located at the bottom of this page: [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100 '''tigris.org''']&lt;br /&gt; | ||
Extract to any folder | Extract to any folder | ||
|Make sure any newer version is compatible with the version of Apache. | |Make sure any newer version is compatible with the version of Apache. | ||
|-valign="top" | |-valign=&quot;top&quot; | ||
|4) | |4) | ||
|Copy the entire content of folder svn-win32-1.6.3\'''svn-win32-1.6.3'''<br /> | |Copy the entire content of folder svn-win32-1.6.3\'''svn-win32-1.6.3'''&lt;br /&gt; | ||
To folder C:\UniServer_4_3\UniServer\udrive\'''svn_tools'''<br /> | To folder C:\UniServer_4_3\UniServer\udrive\'''svn_tools'''&lt;br /&gt; | ||
Folder svn_tools will now contain folders '''bin''', '''iconv''', '''licenses''',<br /> '''share''' and file '''README.txt''' | Folder svn_tools will now contain folders '''bin''', '''iconv''', '''licenses''',&lt;br /&gt; '''share''' and file '''README.txt''' | ||
|Once copied if you wish to save space delete the extracted files<br /> and svn-win32-1.6.3.zip they are no longer required. | |Once copied if you wish to save space delete the extracted files&lt;br /&gt; and svn-win32-1.6.3.zip they are no longer required. | ||
|-valign="top" | |-valign=&quot;top&quot; | ||
|5) | |5) | ||
|Navigate to C:\UniServer_4_3\UniServer\udrive\svn_tools\'''bin'''<br /> | |Navigate to C:\UniServer_4_3\UniServer\udrive\svn_tools\'''bin'''&lt;br /&gt; | ||
Move files: '''mod_authz_svn.so''' and '''mod_dav_svn.so'''<br /> | Move files: '''mod_authz_svn.so''' and '''mod_dav_svn.so'''&lt;br /&gt; | ||
To folder: C:\UniServer_4_3\UniServer\udrive\usr\local\apache2\'''modules''' | To folder: C:\UniServer_4_3\UniServer\udrive\usr\local\apache2\'''modules''' | ||
|Move the two modules to Apache's module folder; | |Move the two modules to Apache's module folder; | ||
|-valign="top" | |-valign=&quot;top&quot; | ||
|6) | |6) | ||
|Navigate to C:\UniServer_4_3\UniServer\udrive\svn_tools\'''bin'''<br /> | |Navigate to C:\UniServer_4_3\UniServer\udrive\svn_tools\'''bin'''&lt;br /&gt; | ||
Copy these files: | Copy these files: | ||
Line 91: | Line 91: | ||
To: C:\UniServer_4_3\UniServer\udrive\usr\local\apache2\'''bin''' | To: C:\UniServer_4_3\UniServer\udrive\usr\local\apache2\'''bin''' | ||
|The above two modules have dependencies (dlls),<br /> | |The above two modules have dependencies (dlls),&lt;br /&gt; | ||
Apache resolves dependences by first looking in<br /> | Apache resolves dependences by first looking in&lt;br /&gt; | ||
its bin folder and then looks along system paths.<br /> | its bin folder and then looks along system paths.&lt;br /&gt; | ||
Generally these dlls are located on a system path<br /> | Generally these dlls are located on a system path&lt;br /&gt; | ||
however we want a portable installation hence they<br /> | however we want a portable installation hence they&lt;br /&gt; | ||
are copied to Apache’s bin (binary) folder. | are copied to Apache’s bin (binary) folder. | ||
|-valign="top" | |-valign=&quot;top&quot; | ||
|7) | |7) | ||
|Edit file: C:\UniServer_4_3\UniServer\udrive\usr\local\apache2\conf\'''httpd.conf'''<br /> | |Edit file: C:\UniServer_4_3\UniServer\udrive\usr\local\apache2\conf\'''httpd.conf'''&lt;br /&gt; | ||
Confirm these modules are enabled as shown: | Confirm these modules are enabled as shown: | ||
<pre> | &lt;pre&gt; | ||
LoadModule dav_module modules/mod_dav.so | LoadModule dav_module modules/mod_dav.so | ||
LoadModule dav_fs_module modules/mod_dav_fs.so | LoadModule dav_fs_module modules/mod_dav_fs.so | ||
</pre> | &lt;/pre&gt; | ||
|Configure Apache to use the subversion module.<br /> | |Configure Apache to use the subversion module.&lt;br /&gt; | ||
First check these modules are enabled.<br /> | First check these modules are enabled.&lt;br /&gt; | ||
Note, mod_dav.so is enabled by default.<br /> | Note, mod_dav.so is enabled by default.&lt;br /&gt; | ||
|-valign="top" | |-valign=&quot;top&quot; | ||
|8) | |8) | ||
|At the end of load modules section add these two lines: | |At the end of load modules section add these two lines: | ||
<pre> | &lt;pre&gt; | ||
LoadModule dav_svn_module modules/mod_dav_svn.so | LoadModule dav_svn_module modules/mod_dav_svn.so | ||
LoadModule authz_svn_module modules/mod_authz_svn.so | LoadModule authz_svn_module modules/mod_authz_svn.so | ||
</pre> | &lt;/pre&gt; | ||
|The two lines inform Apache to load the svn modules.<br />Add them just below:<br />LoadModule vhost_alias_module modules/mod_vhost_alias.so | |The two lines inform Apache to load the svn modules.&lt;br /&gt;Add them just below:&lt;br /&gt;LoadModule vhost_alias_module modules/mod_vhost_alias.so | ||
|-valign="top" | |-valign=&quot;top&quot; | ||
|9) | |9) | ||
|At the end of httpd.conf, add the following block of code. | |At the end of httpd.conf, add the following block of code. | ||
<pre> | &lt;pre&gt; | ||
<location /svn> | &lt;location /svn&gt; | ||
DAV svn | DAV svn | ||
SVNListParentPath on | SVNListParentPath on | ||
SVNParentPath C:/UniServer_4_3/UniServer/udrive/svn | SVNParentPath C:/UniServer_4_3/UniServer/udrive/svn | ||
</location> | &lt;/location&gt; | ||
</pre> | &lt;/pre&gt; | ||
|<br /> | |&lt;br /&gt; | ||
* '''svn''' Top level folder name <nowiki>http://localhost</nowiki>/svn/*** any name after svn is assumed a repository request and passed to DAV for resolving | * '''svn''' Top level folder name &lt;nowiki&gt;http://localhost&lt;/nowiki&gt;/svn/*** any name after svn is assumed a repository request and passed to DAV for resolving | ||
* '''DAV svn''' Instructs Apache to pass the request onto the DAV layer for processing as a subversion (svn) request. | * '''DAV svn''' Instructs Apache to pass the request onto the DAV layer for processing as a subversion (svn) request. | ||
* '''SVNListParentPath on''' Enables listing of all repositories for URL <nowiki>http://localhost</nowiki>/'''svn''' | * '''SVNListParentPath on''' Enables listing of all repositories for URL &lt;nowiki&gt;http://localhost&lt;/nowiki&gt;/'''svn''' | ||
* '''SVNParentPath''' Absolute path to the parent folder containing all the repositories.<br />'''''Note'':''' If you move the servers this path must be changed. | * '''SVNParentPath''' Absolute path to the parent folder containing all the repositories.&lt;br /&gt;'''''Note'':''' If you move the servers this path must be changed. | ||
|} | |} | ||
'''''[[#top | Top]]''''' | '''''[[#top | Top]]''''' | ||
=== Testing SVN server === | === Testing SVN server === | ||
* Restart Servers | * Restart Servers | ||
* Access the SVN repository. Type the following into a browser '''<nowiki>http://localhost/svn</nowiki>''' | * Access the SVN repository. Type the following into a browser '''&lt;nowiki&gt;http://localhost/svn&lt;/nowiki&gt;''' | ||
Page displays | Page displays | ||
<pre> | &lt;pre&gt; | ||
Collection of Repositories | Collection of Repositories | ||
page Powered by Subversion version 1.6.3 (r38063). | page Powered by Subversion version 1.6.3 (r38063). | ||
</pre> | &lt;/pre&gt; | ||
This confirms Apache has been configured correctly. Next step is to create an SVN repository. | This confirms Apache has been configured correctly. Next step is to create an SVN repository. | ||
Line 158: | Line 158: | ||
Name the batch file whatever you like I have named it '''z_start_svn_command_prompt.bat''' add the following content: | Name the batch file whatever you like I have named it '''z_start_svn_command_prompt.bat''' add the following content: | ||
<pre> | &lt;pre&gt; | ||
start "SVN COMMAND PROMPT" cmd.exe /k "COLOR B0" | start &quot;SVN COMMAND PROMPT&quot; cmd.exe /k &quot;COLOR B0&quot; | ||
</pre> | &lt;/pre&gt; | ||
Double click to run, a new command prompt is opened and the working folder is automatically set. | Double click to run, a new command prompt is opened and the working folder is automatically set. | ||
Line 168: | Line 168: | ||
Run the batch file above and type the following command: | Run the batch file above and type the following command: | ||
<pre> | &lt;pre&gt; | ||
svnadmin.exe create ..\..\svn\myproject | svnadmin.exe create ..\..\svn\myproject | ||
</pre> | &lt;/pre&gt; | ||
* '''svnadmin.exe''' Runs the subversion administration program. | * '''svnadmin.exe''' Runs the subversion administration program. | ||
* '''create''' Is the command to be run by svn admin. It creates a repository named '''myproject'''. | * '''create''' Is the command to be run by svn admin. It creates a repository named '''myproject'''. | ||
** '''''Note'':''' You can specify an absolute path or a relative path to the folder '''myproject'''.<br />For example:<br />Absolute: '''C:\UniServer_4_3\UniServer\udrive\svn\myproject'''<br />Relative: '''..\..\svn\myproject''' - as shown above | ** '''''Note'':''' You can specify an absolute path or a relative path to the folder '''myproject'''.&lt;br /&gt;For example:&lt;br /&gt;Absolute: '''C:\UniServer_4_3\UniServer\udrive\svn\myproject'''&lt;br /&gt;Relative: '''..\..\svn\myproject''' - as shown above | ||
* If the folder '''myproject''' does not exist it is created. Adds subversion database and tracking folders. | * If the folder '''myproject''' does not exist it is created. Adds subversion database and tracking folders. | ||
Line 180: | Line 180: | ||
Start the servers. To access repositories type either of the following into a browser: | Start the servers. To access repositories type either of the following into a browser: | ||
# '''<nowiki>http://localhost/svn/</nowiki>''' -- Displays Collection of Repositories page. | # '''&lt;nowiki&gt;http://localhost/svn/&lt;/nowiki&gt;''' -- Displays Collection of Repositories page. | ||
## All repositories in folder '''svn''' are listed as links. | ## All repositories in folder '''svn''' are listed as links. | ||
## Currently we have just one repository hence a single link “myproject” is displayed | ## Currently we have just one repository hence a single link “myproject” is displayed | ||
## Click this link to display “myproject” repository. | ## Click this link to display “myproject” repository. | ||
## If you do not want all repositories listed comment this line as shown: '''#SVNListParentPath on'''<br />Accessing '''<nowiki>http://localhost/svn/</nowiki>''' will now produce ''Forbidden You don't have permission to access /svn/ on this server''. | ## If you do not want all repositories listed comment this line as shown: '''#SVNListParentPath on'''&lt;br /&gt;Accessing '''&lt;nowiki&gt;http://localhost/svn/&lt;/nowiki&gt;''' will now produce ''Forbidden You don't have permission to access /svn/ on this server''. | ||
## You can still access a repository by entering its full URL see below.<br />&nbsp; | ## You can still access a repository by entering its full URL see below.&lt;br /&gt;&amp;nbsp; | ||
#'''<nowiki>http://localhost/svn/myproject/</nowiki>''' -- You directly access a repository by name as shown for "“myproject”. <br />Viewing this repository with a browser you will find it empty.<br /> However view the same folder using '''Windows Explorer''' displays several SVN suport folders and files. | #'''&lt;nowiki&gt;http://localhost/svn/myproject/&lt;/nowiki&gt;''' -- You directly access a repository by name as shown for &quot;“myproject”. &lt;br /&gt;Viewing this repository with a browser you will find it empty.&lt;br /&gt; However view the same folder using '''Windows Explorer''' displays several SVN suport folders and files. | ||
## '''''Folders'':''' '''conf''', '''dav''', '''db''', '''hooks''' and '''locks''' | ## '''''Folders'':''' '''conf''', '''dav''', '''db''', '''hooks''' and '''locks''' | ||
## '''''Files'':''' '''README.txt''' and '''format''' | ## '''''Files'':''' '''README.txt''' and '''format''' | ||
Line 210: | Line 210: | ||
# Run batch file '''z_start_svn_command_prompt.bat''' (whatever you named it) | # Run batch file '''z_start_svn_command_prompt.bat''' (whatever you named it) | ||
# Type the following: | # Type the following: | ||
<pre> | &lt;pre&gt; | ||
svn.exe import C:\a_svn_temp http://localhost/svn/myproject -m "Initial import" | svn.exe import C:\a_svn_temp http://localhost/svn/myproject -m &quot;Initial import&quot; | ||
</pre> | &lt;/pre&gt; | ||
This updates your repository with new folder structure and project. | This updates your repository with new folder structure and project. | ||
View repository, type into browser <nowiki>http://localhost/svn/myproject</nowiki> | View repository, type into browser &lt;nowiki&gt;http://localhost/svn/myproject&lt;/nowiki&gt; | ||
* The project page and status are displayed '''myproject - Revision 1:''' | * The project page and status are displayed '''myproject - Revision 1:''' | ||
'''''Note'':''' If you do not include '''-m "Some text"''' SVN will complain about not being able to find a text editor. | '''''Note'':''' If you do not include '''-m &quot;Some text&quot;''' SVN will complain about not being able to find a text editor. | ||
'''''[[#top | Top]]''''' | '''''[[#top | Top]]''''' | ||
Line 242: | Line 242: | ||
---- | ---- | ||
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"> | |||
---- | ---- | ||
=[http://awutafavib.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]= | =[http://awutafavib.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]= | ||
---- | ---- | ||
=[http://awutafavib.co.cc CLICK HERE]= | =[http://awutafavib.co.cc CLICK HERE]= | ||
---- | |||
</div> | |||
---- | |||
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"> | |||
---- | |||
=[http://omejuzadusi.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]= | |||
---- | |||
=[http://omejuzadusi.co.cc CLICK HERE]= | |||
---- | ---- | ||
</div> | </div> |
Revision as of 23:28, 17 November 2010
>>This guide will show you how to install a Subversion (SVN) server with Uniform Server. This guide assumes that you have a clean installation of Uniform Server running currently and do not have another version of Apache installed on your PC.
Installing SVN
- Download the latest Win32 SVN binaries from here. This guide uses the .exe Installer provided there.
- After installing / unpacking it, copy the contents of its httpd folder (usually C:\Program Files\Subversion\httpd) into Apache's module directory (Uniform Server's default is W:\usr\local\Apache2\modules)
- Copy libdb42.dll from the bin folder into the same module directory.
Apache Module Configuration
- Edit Apache's configuration files (W:\usr\local\Apache2\conf\httpd.conf) and uncomment (remove the # from) this line if it is commented: <pre>LoadModule dav_module modules/mod_dav.so</pre>
- Next find: <pre>LoadModule dav_fs_module modules/mod_dav_fs.so</pre> and add this below it: <pre><nowiki>LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so</nowiki></pre>
Configuring SVN
- Create an empty folder (I used W:\svn), which will used as repository root.
- Create another empty folder (for example W:\svn\test) in your repository root.
- Open the Command Prompt (or MS-DOS Prompt in Win 9x), cd into your repository root. Execute:<pre>svnadmin create --fs-type bdb test</pre>or<pre>svnadmin create --fs-type fsfs test</pre> Note: test is the folder you created (under your repository root) earlier in Step #2; for more info on which fs-type to choose, read Chapter 5, Repository Data-Stores in the SVN book for more information
Integrating Apache + SVN
First, you should add this anywhere in your configuration file (preferably between "<IfModule mod_dav.c>" and "</IfModule>"): <pre><nowiki><Location /svn>
Dav svn SVNParentPath /svn AuthType Basic AuthName "Subversion Repositories" AuthUserFile /htpasswd/svn/.htpasswd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept>
</Location></nowiki></pre> Note #1: If you do not want your repository to have read access for everyone (even those who do not have the password) remove the <LimitExcept> Note #2: /svn is the path to your repository root, if you used any drive other than what Apache is on (Uniform Server default = W:\) for your repository root, you'll have to put the drive letter in front of the / (for example, C:\SVN becomes C:/SVN) Next, create the .htpasswd file which will store the username & password needed to modify your repositories. Open the Command Prompt again, cd into Apache's bin directory (W:\usr\local\Apache2\bin). Execute:<pre>htpasswd -c .htpasswd <username></pre> To add more usernames & passwords, execute:<pre><nowiki>htpasswd .htpasswd <username></nowiki></pre> Note: Replace <nowiki><username></nowiki> with the username of your choice. For more advanced configurations (not needed by many) view Setting Up an SVN Server.
Last Steps
- If you are using version 3.3, please skip to step 4.
- Create a "htpasswd" directory in the W:/ drive if you are using version 3.2 or less.
- Create a "svn" directory under the "htpasswd" directory.
- Copy the .htpasswd file into the "svn" directory.
- Now, the time you've all been for. Restart Uniform Server.
- Point your browser to http://localhost/svn/test (where test is the name of the repository you created earlier)
Shortcuts
- If you do not understand how to make the .htpasswd file, you can just make the file and edit it with the contents "username:password" in the file.
NEW Installing SVN on 4.3-Mona
The following assumes you installed US to C:\UniServer_4_3\UniServer.
If you installed to another location substitute paths accordingly.
How to install SVN
1) | Run servers and check they function. | Just a quick check, close servers after testing. |
2) | Inside folder C:\UniServer_4_3\UniServer\udrive create two new folders svn_tools and svn <br />
C:\UniServer_4_3\UniServer\udrive\svn_tools<br /> C:\UniServer_4_3\UniServer\udrive\svn |
You can choose different names and locate these outside of the UniServer folder.<br />However we are placing these here for portability.<br /> Folder svn will contain your SVN repositories. |
3) | Download File: svn-win32-1.6.3.zip or newer.<br />
Located at the bottom of this page: tigris.org<br /> Extract to any folder |
Make sure any newer version is compatible with the version of Apache. |
4) | Copy the entire content of folder svn-win32-1.6.3\svn-win32-1.6.3<br />
To folder C:\UniServer_4_3\UniServer\udrive\svn_tools<br /> Folder svn_tools will now contain folders bin, iconv, licenses,<br /> share and file README.txt |
Once copied if you wish to save space delete the extracted files<br /> and svn-win32-1.6.3.zip they are no longer required. |
5) | Navigate to C:\UniServer_4_3\UniServer\udrive\svn_tools\bin<br />
Move files: mod_authz_svn.so and mod_dav_svn.so<br /> To folder: C:\UniServer_4_3\UniServer\udrive\usr\local\apache2\modules |
Move the two modules to Apache's module folder; |
6) | Navigate to C:\UniServer_4_3\UniServer\udrive\svn_tools\bin<br />
Copy these files:
To: C:\UniServer_4_3\UniServer\udrive\usr\local\apache2\bin |
The above two modules have dependencies (dlls),<br />
Apache resolves dependences by first looking in<br /> its bin folder and then looks along system paths.<br />
|
7) | Edit file: C:\UniServer_4_3\UniServer\udrive\usr\local\apache2\conf\httpd.conf<br />
Confirm these modules are enabled as shown: <pre> LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so </pre> |
Configure Apache to use the subversion module.<br />
First check these modules are enabled.<br /> Note, mod_dav.so is enabled by default.<br /> |
8) | At the end of load modules section add these two lines:
<pre> LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so </pre> |
The two lines inform Apache to load the svn modules.<br />Add them just below:<br />LoadModule vhost_alias_module modules/mod_vhost_alias.so |
9) | At the end of httpd.conf, add the following block of code.
<pre> <location /svn> DAV svn SVNListParentPath on SVNParentPath C:/UniServer_4_3/UniServer/udrive/svn </location> </pre> |
<br />
|
Testing SVN server
- Restart Servers
- Access the SVN repository. Type the following into a browser <nowiki>http://localhost/svn</nowiki>
Page displays <pre> Collection of Repositories page Powered by Subversion version 1.6.3 (r38063). </pre> This confirms Apache has been configured correctly. Next step is to create an SVN repository.
Creating a repository - Command line
To create a repository use the command line tool svnadmin.exe
This section shows how to create a repository using this tool and how to add a working project.
Batch file
The admin tools requires opening a command prompt and navigating to the svn_tools executables folder .
This I find very tedious hence create the following batch file in folder C:\UniServer_4_3\UniServer\udrive\svn_tools\bin
Name the batch file whatever you like I have named it z_start_svn_command_prompt.bat add the following content: <pre> start "SVN COMMAND PROMPT" cmd.exe /k "COLOR B0" </pre> Double click to run, a new command prompt is opened and the working folder is automatically set.
Create a repository
You need to create at least one blank repository choose a name that matches your project for this example I will use “myproject”
Run the batch file above and type the following command: <pre> svnadmin.exe create ..\..\svn\myproject </pre>
- svnadmin.exe Runs the subversion administration program.
- create Is the command to be run by svn admin. It creates a repository named myproject.
- Note: You can specify an absolute path or a relative path to the folder myproject.<br />For example:<br />Absolute: C:\UniServer_4_3\UniServer\udrive\svn\myproject<br />Relative: ..\..\svn\myproject - as shown above
- If the folder myproject does not exist it is created. Adds subversion database and tracking folders.
Repository Access
Start the servers. To access repositories type either of the following into a browser:
- <nowiki>http://localhost/svn/</nowiki> -- Displays Collection of Repositories page.
- All repositories in folder svn are listed as links.
- Currently we have just one repository hence a single link “myproject” is displayed
- Click this link to display “myproject” repository.
- If you do not want all repositories listed comment this line as shown: #SVNListParentPath on<br />Accessing <nowiki>http://localhost/svn/</nowiki> will now produce Forbidden You don't have permission to access /svn/ on this server.
- You can still access a repository by entering its full URL see below.<br />&nbsp;
- <nowiki>http://localhost/svn/myproject/</nowiki> -- You directly access a repository by name as shown for "“myproject”. <br />Viewing this repository with a browser you will find it empty.<br /> However view the same folder using Windows Explorer displays several SVN suport folders and files.
- Folders: conf, dav, db, hooks and locks
- Files: README.txt and format
- Never edit or delete the above folders or files. They tag and track all changes in a repository.
Note:
SVN comes complete with several other command line tools including a command line client.
Command line client
Starting with an empty repository you probably want to quickly set it up and publish your current project as it stands.
The following shows a quick way to do this it also includes SVN’s recommended folder structure.
- Create a temporary folder for example C:\a_svn_temp
- Inside this create three new folders (SVN recommended) named:
- trunk
- tags
- branches
- Copy your current stable project into folder trunk -- Note: For testing I copied folder C:\UniServer_4_3\UniServer\udrive\plugins
- Start servers
- Run batch file z_start_svn_command_prompt.bat (whatever you named it)
- Type the following:
<pre> svn.exe import C:\a_svn_temp http://localhost/svn/myproject -m "Initial import" </pre> This updates your repository with new folder structure and project.
View repository, type into browser <nowiki>http://localhost/svn/myproject</nowiki>
- The project page and status are displayed myproject - Revision 1:
Note: If you do not include -m "Some text" SVN will complain about not being able to find a text editor.
Related Links
- Portable Subversion (SVN) - Running on 5.0-Nano
- SVN Server running behind a proxy server - 5.0-Nano
External Links
- Subversion (SVN) on Wikipedia
- Version Control with Subversion - The Free Subversion Book
- Subversion Homepage
- TortoiseSVN, a popular Win32 GUI SVN Client
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;">
UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY
CLICK HERE
</div>