<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.orcaware.com/svn/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Anneb</id>
	<title>SubversionWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.orcaware.com/svn/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Anneb"/>
	<link rel="alternate" type="text/html" href="https://www.orcaware.com/svn/wiki/Special:Contributions/Anneb"/>
	<updated>2026-04-08T10:15:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.orcaware.com/svn/mediawiki/index.php?title=Automatic_lock-modify-unlock&amp;diff=1659</id>
		<title>Automatic lock-modify-unlock</title>
		<link rel="alternate" type="text/html" href="https://www.orcaware.com/svn/mediawiki/index.php?title=Automatic_lock-modify-unlock&amp;diff=1659"/>
		<updated>2007-12-08T11:17:52Z</updated>

		<summary type="html">&lt;p&gt;Anneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Different versions of binary files cannot be merged. Therefore versioning of binary files should follow the lock-modify-unlock model[http://svnbook.red-bean.com/en/1.4/svn.basic.vsn-models.html#svn.basic.vsn-models.lock-unlock]. &lt;br /&gt;
This setup uses the following three measures&lt;br /&gt;
* forces users to use property svn:needs-lock on newly added binary files. Denies commits when the property is not available&lt;br /&gt;
* sets the svn:needs-lock property on all already existing binary files in repositories&lt;br /&gt;
* configures users to automatically set property svn:needs-lock on newly added binary files&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) - create a pre-commit.cmd script in the repository\hooks directory. This script verifies that property svn:needs-lock is set on binary files and denies the commit if the property is not available (Windows only):&lt;br /&gt;
&amp;lt;pre&amp;gt;@echo off&lt;br /&gt;
set REPOS=%1&lt;br /&gt;
set TRANSACTION=%2&lt;br /&gt;
set SVNLOOK=&amp;quot;c:\Program Files\Subversion\apache2.2\bin\svnlook.exe&amp;quot;&lt;br /&gt;
set TEMP=c:\temp&lt;br /&gt;
&lt;br /&gt;
if exist %TEMP%\tempfile%2 del %TEMP%\tempfile%2&lt;br /&gt;
for /f &amp;quot;tokens=1,2 usebackq&amp;quot; %%i in (`%SVNLOOK% changed -t %2 %1`) do @if %%i==A @echo %%j &amp;gt;&amp;gt; %TEMP%\tempfile%2&lt;br /&gt;
if not exist %TEMP%\tempfile%2 goto NOFILESADDED&lt;br /&gt;
for /f &amp;quot;usebackq&amp;quot; %%i in (`findstr /E /I /R &amp;quot;\.bmp.$ \.gif.$ \.ico.$ \.jpeg.$ \.jpg.$ \.png.$ \.tif.$ \.tiff.$ \.doc.$ \.jar.$ \.odt.$ \.pdf.$ \.ppt.$ \.swf.$ \.vsd.$ \.xls.$ \.zip.$&amp;quot; %TEMP%\tempfile%2`) do (&lt;br /&gt;
%SVNLOOK% propget -t %2 %1 svn:needs-lock %%i 1&amp;gt; nul 2&amp;gt; nul&lt;br /&gt;
if ERRORLEVEL 1 (&lt;br /&gt;
echo commit denied, binary files must have property svn:needs-lock &amp;gt;&amp;amp;2&lt;br /&gt;
type %TEMP%\tempfile%2 &amp;gt;&amp;amp;2&lt;br /&gt;
del %TEMP%\tempfile%2&lt;br /&gt;
EXIT /B 1&lt;br /&gt;
)&lt;br /&gt;
)&lt;br /&gt;
del %TEMP%\tempfile%2&lt;br /&gt;
:NOFILESADDED&lt;br /&gt;
EXIT /B 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Recursively set svn:needs-lock property on binaries&lt;br /&gt;
&lt;br /&gt;
If you need to apply svn:needs-lock on already existing binaries in a repository, do the following on a client (not on the svn server):&lt;br /&gt;
- checkout a repository&lt;br /&gt;
- add to following line to a cmd script (Windows only):&lt;br /&gt;
&amp;lt;pre&amp;gt;FOR /R c:\full\path\to\repository %%v in (*.bmp *.gif *.ico *.jpeg *.jpg *.png *.tif *.tiff *.doc *.jar *.odc *.odf *.odg *.odi *.odp *.ods *.odt *.pdf *.ppt *.ser *.swf *.vsd *.xls *.zip) do svn propset svn:needs-lock yes %%~fv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- run the script&lt;br /&gt;
&lt;br /&gt;
3) Configure users to automatically use svn:needs-lock property on new binary files&lt;br /&gt;
&lt;br /&gt;
New binary files should have the svn:needs-lock property set, this is verified by the script of step 1. This can be achieved automatically if users configure their svn client config file.&lt;br /&gt;
&lt;br /&gt;
- under windows the SVN config file is &amp;quot;C:\Documents and Settings\[USER_NAME]\Application Data\Subversion\config&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Replace or merge the [miscellany] and [auto-props] sections in the svn config file with the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[miscellany]&lt;br /&gt;
enable-auto-props = yes&lt;br /&gt;
&lt;br /&gt;
[auto-props]&lt;br /&gt;
### The format of the entries is:&lt;br /&gt;
###   file-name-pattern = propname[=value][;propname[=value]...]&lt;br /&gt;
### The file-name-pattern can contain wildcards (such as &#039;*&#039; and&lt;br /&gt;
### &#039;?&#039;).  All entries which match will be applied to the file.&lt;br /&gt;
### Note that auto-props functionality must be enabled, which&lt;br /&gt;
### is typically done by setting the &#039;enable-auto-props&#039; option.&lt;br /&gt;
*.bmp = svn:mime-type=image/bmp;svn:needs-lock=*&lt;br /&gt;
*.gif = svn:mime-type=image/gif;svn:needs-lock=*&lt;br /&gt;
*.ico = svn:mime-type=image/x-icon;svn:needs-lock=*&lt;br /&gt;
*.jpeg = svn:mime-type=image/jpeg;svn:needs-lock=*&lt;br /&gt;
*.jpg = svn:mime-type=image/jpeg;svn:needs-lock=*&lt;br /&gt;
*.png = svn:mime-type=image/png;svn:needs-lock=*&lt;br /&gt;
*.tif = svn:mime-type=image/tiff;svn:needs-lock=*&lt;br /&gt;
*.tiff = svn:mime-type=image/tiff;svn:needs-lock=*&lt;br /&gt;
&lt;br /&gt;
*.doc = svn:mime-type=application/msword;svn:needs-lock=*&lt;br /&gt;
*.jar = svn:mime-type=application/octet-stream;svn:needs-lock=*&lt;br /&gt;
*.odc = svn:mime-type=application/vnd.oasis.opendocument.chart;svn:needs-lock=*&lt;br /&gt;
*.odf = svn:mime-type=application/vnd.oasis.opendocument.formula;svn:needs-lock=*&lt;br /&gt;
*.odg = svn:mime-type=application/vnd.oasis.opendocument.graphics;svn:needs-lock=*&lt;br /&gt;
*.odi = svn:mime-type=application/vnd.oasis.opendocument.image;svn:needs-lock=*&lt;br /&gt;
*.odp = svn:mime-type=application/vnd.oasis.opendocument.presentation;svn:needs-lock=*&lt;br /&gt;
*.ods = svn:mime-type=application/vnd.oasis.opendocument.spreadsheet;svn:needs-lock=*&lt;br /&gt;
*.odt = svn:mime-type=application/vnd.oasis.opendocument.text;svn:needs-lock=*&lt;br /&gt;
*.pdf = svn:mime-type=application/pdf;svn:needs-lock=*&lt;br /&gt;
*.ppt = svn:mime-type=application/vnd.ms-powerpoint;svn:needs-lock=*&lt;br /&gt;
*.ser = svn:mime-type=application/octet-stream;svn:needs-lock=*&lt;br /&gt;
*.swf = svn:mime-type=application/x-shockwave-flash;svn:needs-lock=*&lt;br /&gt;
*.vsd = svn:mime-type=application/x-visio;svn:needs-lock=*&lt;br /&gt;
*.xls = svn:mime-type=application/vnd.ms-excel;svn:needs-lock=*&lt;br /&gt;
*.zip = svn:mime-type=application/zip;svn:needs-lock=*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anneb</name></author>
	</entry>
	<entry>
		<id>https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1658</id>
		<title>Subversion configured for Windows Active Directory HTTPS</title>
		<link rel="alternate" type="text/html" href="https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1658"/>
		<updated>2007-12-08T11:03:25Z</updated>

		<summary type="html">&lt;p&gt;Anneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to set up a subversion server on a windows machine that recognizes users from Microsoft Active Directory and uses secure http (https) to communicate with clients you can use the following setup as a template for your configuration. &lt;br /&gt;
&lt;br /&gt;
Steps to follow:&lt;br /&gt;
&lt;br /&gt;
1) Download and install Apache 2.2 + open SSL from http://www.apache.org. Do use Apache 2.2 instead of Apache 2.0 if you want to connect to Active Directory&lt;br /&gt;
&lt;br /&gt;
2) Download the apache 2.2 binary compatible version of svn from http://svn.tigris.org&lt;br /&gt;
&lt;br /&gt;
3) Copy all dll&#039;s and modules (.so files) from subversion/bin directory to the apache2.2 /modules directory&lt;br /&gt;
&lt;br /&gt;
4) Copy an existing svn repository or create a new repository&lt;br /&gt;
COPY:&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;c:\program files\subversion\bin&amp;quot;&lt;br /&gt;
svnadmin hotcopy //computer/share/subversion/repositories/repo1 c:/subversion/repositories/repo1&amp;lt;/pre&amp;gt;&lt;br /&gt;
CREATE:&lt;br /&gt;
&amp;lt;pre&amp;gt;svnadmin create c:/subversion/repositories/repo1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5) Create a authorization file: svn.authz&lt;br /&gt;
&amp;lt;pre&amp;gt;### This file is an example authorization file for svnserve.&lt;br /&gt;
### Its format is identical to that of mod_authz_svn authorization&lt;br /&gt;
### files.&lt;br /&gt;
### As shown below each section defines authorizations for the path and&lt;br /&gt;
### (optional) repository specified by the section name.&lt;br /&gt;
### The authorizations follow. An authorization line can refer to a&lt;br /&gt;
### single user, to a group of users defined in a special [groups]&lt;br /&gt;
### section, or to anyone using the &#039;*&#039; wildcard.  Each definition can&lt;br /&gt;
### grant read (&#039;r&#039;) access, read-write (&#039;rw&#039;) access, or no access&lt;br /&gt;
### (&#039;&#039;).&lt;br /&gt;
[groups]&lt;br /&gt;
group1 = harry,sally&lt;br /&gt;
group2 = romeo,julia&lt;br /&gt;
group3 = sally,julia&lt;br /&gt;
&lt;br /&gt;
[/]&lt;br /&gt;
* = r&lt;br /&gt;
@group1 = rw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6) Create a SSL certificate&lt;br /&gt;
&lt;br /&gt;
- Openssl.exe included with this version of Apache 2.2 does not seem to be configured well on windows. In order to create a certificate, you need a well configured version of openssl. For this example configuration of subversion with https, file Openssl-0.9.7e-Win32.zip[http://support.etouch.net/cm/wiki/support.Downloads.wiki/1021721main_Openssl-0.9.7e-Win32.zip] combined with file openssl.conf[http://support.etouch.net/cm/wiki/support.Downloads.wiki/1021722main_openssl.cnf] were downloaded from support.etouch.net[http://support.etouch.net/cm/wiki/support.Downloads.wiki/home/Enabling%20SSL%20with%20Apache%20on%20Windows%202003%20for%20SamePage.html]&lt;br /&gt;
 &lt;br /&gt;
- run the following commands&lt;br /&gt;
&amp;lt;pre&amp;gt;openssl req -config openssl.cnf -new -out svn.example.com.csr&lt;br /&gt;
openssl rsa -in privkey.pem -out svn.example.com.key&lt;br /&gt;
openssl x509 -in svn.example.com.csr -out svn.example.com.cert -req -signkey svn.example.com.key -days 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- copy the resulting *.cert and *.key files to the apache2.2/conf directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) Edit apache/conf/httpd.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LoadModule dav_module modules/mod_dav.so&lt;br /&gt;
LoadModule dav_svn_module modules/mod_dav_svn.so&lt;br /&gt;
LoadModule authz_svn_module modules/mod_authz_svn.so&lt;br /&gt;
LoadModule ldap_module modules/mod_ldap.so&lt;br /&gt;
LoadModule ssl_module modules/mod_ssl.so&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
SSLEngine on&lt;br /&gt;
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL&lt;br /&gt;
SSLCertificateFile conf/svn.example.com.cert&lt;br /&gt;
SSLCertificateKeyFile conf/svn.example.com.key&lt;br /&gt;
#&amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php3?)$&amp;quot;&amp;gt;&lt;br /&gt;
#    SSLOptions +StdEnvVars&lt;br /&gt;
#&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
#&amp;lt;Directory &amp;quot;C:/Program Files/Apache Group/Apache2/cgi&amp;quot;&amp;gt;&lt;br /&gt;
#    SSLOptions +StdEnvVars&lt;br /&gt;
#&amp;lt;/Directory&amp;gt;&lt;br /&gt;
SetEnvIf User-Agent &amp;quot;.*MSIE.*&amp;quot; \&lt;br /&gt;
         nokeepalive ssl-unclean-shutdown \&lt;br /&gt;
         downgrade-1.0 force-response-1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#redirect /repos to /repos/&lt;br /&gt;
RedirectMatch ^(/repos)$ $1/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location /repos/&amp;gt;&lt;br /&gt;
  DAV svn&lt;br /&gt;
  # SVNPath c:/subversion/repositories/repo1&lt;br /&gt;
  SVNParentPath c:/subversion/repositories&lt;br /&gt;
  SVNListparentPath on&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
	&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthBasicProvider ldap&lt;br /&gt;
  AuthzLDAPAuthoritative off&lt;br /&gt;
  AuthName &amp;quot;svn.example.com&amp;quot;&lt;br /&gt;
  AuthzSVNAccessFile c:/subversion/repositories/svn.authz&lt;br /&gt;
&lt;br /&gt;
  #at least one of your domain servers listens on port 3268 (besides default ldap port 389)&lt;br /&gt;
  #use the server that listens on port 3268 if you have more than one AD server. The service&lt;br /&gt;
  #on port 389 uses referrals to the other AD servers. Referrals are used anonymously. Anonymoys&lt;br /&gt;
  #binding will not work on most AD-servers.&lt;br /&gt;
  AuthLDAPURL &amp;quot;ldap://dc.example.com:3268/DC=example,DC=com?sAMAccountName?sub?(objectClass=*)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  #this assumes you have created a dedicated bind user &amp;quot;apache_bind&amp;quot; on your active directory&lt;br /&gt;
  AuthLDAPBindDN &amp;quot;CN=apache_bind,CN=users,DC=example,DC=com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  #warning: this password for AD apache_bind user is in plain text!&lt;br /&gt;
  AuthLDAPBindPassword [password_for_ad_user_apache_bind]&lt;br /&gt;
&lt;br /&gt;
  #AuthLDAPFollowReferrals off&lt;br /&gt;
  &lt;br /&gt;
  AuthLDAPGroupAttributeIsDN on&lt;br /&gt;
  AuthLDAPGroupAttribute member&lt;br /&gt;
  SSLRequireSSL&lt;br /&gt;
  #require ldap-group CN=svnusers,CN=Users,DC=example,DC=com&lt;br /&gt;
  require valid-user&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8) Apply ldap patch for MS-AD&lt;br /&gt;
&lt;br /&gt;
When a Microsoft Active Directory times out, it sends a TCP RST instad of a TCP FIN to the client. There is a workaround for this MS AD bug in Apache mod_ldap, see http://www.apachelounge.com/forum/viewtopic.php?t=1995 or download http://www.anneb.dds.nl/httpd-2.2.6_ldappatch_win32_vc6.zip&lt;br /&gt;
Replace apache modules mod_lap.so and mod_authnz_ldap.so with the files from the downloaded zip file. This configuration allows you to add more than one repository in directory c:/subversion/repositories. All repositories are listed in the browser using URL https://svn.example.com/repos. User names and passwords are validated against Active Directory. Standard svn clients can not browse the list of repositories. Instead you should use the full path to a particular repository, for instance https://svn.example.com/repos/repo1.&lt;br /&gt;
&lt;br /&gt;
9) Binary files cannot be easily merged. The lock-modify-unlock versioning model seems to be the only appropriate model for these type of files. Follow the instructions in [Setting up lock-modify-unlock This description also includes client and server side configuration to accommodate for the lock-modify-unlock model for binary files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9) Force users to set svn:needs-lock property on new binary files&lt;br /&gt;
&lt;br /&gt;
Binary files cannot be merged. Versioning should follow the lock-modify-unlock model[http://svnbook.red-bean.com/en/1.4/svn.basic.vsn-models.html#svn.basic.vsn-models.lock-unlock]. You can force using this model for binary files following the description on how to setup [[Automatic lock-modify-unlock]].&lt;/div&gt;</summary>
		<author><name>Anneb</name></author>
	</entry>
	<entry>
		<id>https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1657</id>
		<title>Subversion configured for Windows Active Directory HTTPS</title>
		<link rel="alternate" type="text/html" href="https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1657"/>
		<updated>2007-12-08T10:39:37Z</updated>

		<summary type="html">&lt;p&gt;Anneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to set up a subversion server on a windows machine that recognizes users from Microsoft Active Directory and uses secure http (https) to communicate with clients you can use the following setup as a template for your configuration. &lt;br /&gt;
&lt;br /&gt;
Steps to follow:&lt;br /&gt;
&lt;br /&gt;
1) Download and install Apache 2.2 + open SSL from http://www.apache.org. Do use Apache 2.2 instead of Apache 2.0 if you want to connect to Active Directory&lt;br /&gt;
&lt;br /&gt;
2) Download the apache 2.2 binary compatible version of svn from http://svn.tigris.org&lt;br /&gt;
&lt;br /&gt;
3) Copy all dll&#039;s and modules (.so files) from subversion/bin directory to the apache2.2 /modules directory&lt;br /&gt;
&lt;br /&gt;
4) Copy an existing svn repository or create a new repository&lt;br /&gt;
COPY:&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;c:\program files\subversion\bin&amp;quot;&lt;br /&gt;
svnadmin hotcopy //computer/share/subversion/repositories/repo1 c:/subversion/repositories/repo1&amp;lt;/pre&amp;gt;&lt;br /&gt;
CREATE:&lt;br /&gt;
&amp;lt;pre&amp;gt;svnadmin create c:/subversion/repositories/repo1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5) Create a authorization file: svn.authz&lt;br /&gt;
&amp;lt;pre&amp;gt;### This file is an example authorization file for svnserve.&lt;br /&gt;
### Its format is identical to that of mod_authz_svn authorization&lt;br /&gt;
### files.&lt;br /&gt;
### As shown below each section defines authorizations for the path and&lt;br /&gt;
### (optional) repository specified by the section name.&lt;br /&gt;
### The authorizations follow. An authorization line can refer to a&lt;br /&gt;
### single user, to a group of users defined in a special [groups]&lt;br /&gt;
### section, or to anyone using the &#039;*&#039; wildcard.  Each definition can&lt;br /&gt;
### grant read (&#039;r&#039;) access, read-write (&#039;rw&#039;) access, or no access&lt;br /&gt;
### (&#039;&#039;).&lt;br /&gt;
[groups]&lt;br /&gt;
group1 = harry,sally&lt;br /&gt;
group2 = romeo,julia&lt;br /&gt;
group3 = sally,julia&lt;br /&gt;
&lt;br /&gt;
[/]&lt;br /&gt;
* = r&lt;br /&gt;
@group1 = rw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6) Create a SSL certificate&lt;br /&gt;
&lt;br /&gt;
- Openssl.exe included with this version of Apache 2.2 does not seem to be configured well on windows. In order to create a certificate, you need a well configured version of openssl. For this example configuration of subversion with https, file Openssl-0.9.7e-Win32.zip[http://support.etouch.net/cm/wiki/support.Downloads.wiki/1021721main_Openssl-0.9.7e-Win32.zip] combined with file openssl.conf[http://support.etouch.net/cm/wiki/support.Downloads.wiki/1021722main_openssl.cnf] were downloaded from support.etouch.net[http://support.etouch.net/cm/wiki/support.Downloads.wiki/home/Enabling%20SSL%20with%20Apache%20on%20Windows%202003%20for%20SamePage.html]&lt;br /&gt;
 &lt;br /&gt;
- run the following commands&lt;br /&gt;
&amp;lt;pre&amp;gt;openssl req -config openssl.cnf -new -out svn.example.com.csr&lt;br /&gt;
openssl rsa -in privkey.pem -out svn.example.com.key&lt;br /&gt;
openssl x509 -in svn.example.com.csr -out svn.example.com.cert -req -signkey svn.example.com.key -days 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- copy the resulting *.cert and *.key files to the apache2.2/conf directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) Edit apache/conf/httpd.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LoadModule dav_module modules/mod_dav.so&lt;br /&gt;
LoadModule dav_svn_module modules/mod_dav_svn.so&lt;br /&gt;
LoadModule authz_svn_module modules/mod_authz_svn.so&lt;br /&gt;
LoadModule ldap_module modules/mod_ldap.so&lt;br /&gt;
LoadModule ssl_module modules/mod_ssl.so&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
SSLEngine on&lt;br /&gt;
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL&lt;br /&gt;
SSLCertificateFile conf/svn.example.com.cert&lt;br /&gt;
SSLCertificateKeyFile conf/svn.example.com.key&lt;br /&gt;
#&amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php3?)$&amp;quot;&amp;gt;&lt;br /&gt;
#    SSLOptions +StdEnvVars&lt;br /&gt;
#&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
#&amp;lt;Directory &amp;quot;C:/Program Files/Apache Group/Apache2/cgi&amp;quot;&amp;gt;&lt;br /&gt;
#    SSLOptions +StdEnvVars&lt;br /&gt;
#&amp;lt;/Directory&amp;gt;&lt;br /&gt;
SetEnvIf User-Agent &amp;quot;.*MSIE.*&amp;quot; \&lt;br /&gt;
         nokeepalive ssl-unclean-shutdown \&lt;br /&gt;
         downgrade-1.0 force-response-1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#redirect /repos to /repos/&lt;br /&gt;
RedirectMatch ^(/repos)$ $1/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location /repos/&amp;gt;&lt;br /&gt;
  DAV svn&lt;br /&gt;
  # SVNPath c:/subversion/repositories/repo1&lt;br /&gt;
  SVNParentPath c:/subversion/repositories&lt;br /&gt;
  SVNListparentPath on&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
	&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthBasicProvider ldap&lt;br /&gt;
  AuthzLDAPAuthoritative off&lt;br /&gt;
  AuthName &amp;quot;svn.example.com&amp;quot;&lt;br /&gt;
  AuthzSVNAccessFile c:/subversion/repositories/svn.authz&lt;br /&gt;
&lt;br /&gt;
  #at least one of your domain servers listens on port 3268 (besides default ldap port 389)&lt;br /&gt;
  #use the server that listens on port 3268 if you have more than one AD server. The service&lt;br /&gt;
  #on port 389 uses referrals to the other AD servers. Referrals are used anonymously. Anonymoys&lt;br /&gt;
  #binding will not work on most AD-servers.&lt;br /&gt;
  AuthLDAPURL &amp;quot;ldap://dc.example.nl:3268/DC=example,DC=com?sAMAccountName?sub?(objectClass=*)&amp;quot;&lt;br /&gt;
  #AuthLDAPURL &amp;quot;ldap://dc.example.nl:389/DC=example,DC=com?sAMAccountName??(objectClass=*)&amp;quot;&lt;br /&gt;
  AuthLDAPBindDN &amp;quot;CN=apache_bind,CN=users,DC=example,DC=com&amp;quot;&lt;br /&gt;
  AuthLDAPBindPassword [password_for_ad_user_apache_bind]&lt;br /&gt;
  #AuthLDAPFollowReferrals off&lt;br /&gt;
  &lt;br /&gt;
  AuthLDAPGroupAttributeIsDN on&lt;br /&gt;
  AuthLDAPGroupAttribute member&lt;br /&gt;
  SSLRequireSSL&lt;br /&gt;
  #require ldap-group CN=svnusers,CN=Users,DC=example,DC=com&lt;br /&gt;
  require valid-user&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8) Apply ldap patch for MS-AD&lt;br /&gt;
&lt;br /&gt;
When a Microsoft Active Directory times out, it sends a TCP RST instad of a TCP FIN to the client. There is a workaround for this MS AD bug in Apache mod_ldap, see http://www.apachelounge.com/forum/viewtopic.php?t=1995 or download http://www.anneb.dds.nl/httpd-2.2.6_ldappatch_win32_vc6.zip&lt;br /&gt;
Replace apache modules mod_lap.so and mod_authnz_ldap.so with the files from the downloaded zip file. This configuration allows you to add more than one repository in directory c:/subversion/repositories. All repositories are listed in the browser using URL https://svn.example.com/repos. User names and passwords are validated against Active Directory. Standard svn clients can not browse the list of repositories. Instead you should use the full path to a particular repository, for instance https://svn.example.com/repos/repo1.&lt;br /&gt;
&lt;br /&gt;
9) Binary files cannot be easily merged. The lock-modify-unlock versioning model seems to be the only appropriate model for these type of files. Follow the instructions in [Setting up lock-modify-unlock This description also includes client and server side configuration to accommodate for the lock-modify-unlock model for binary files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9) Force users to set svn:needs-lock property on new binary files&lt;br /&gt;
&lt;br /&gt;
Binary files cannot be merged. Versioning should follow the lock-modify-unlock model[http://svnbook.red-bean.com/en/1.4/svn.basic.vsn-models.html#svn.basic.vsn-models.lock-unlock]. You can force using this model for binary files following the description on how to setup [[Automatic lock-modify-unlock]].&lt;/div&gt;</summary>
		<author><name>Anneb</name></author>
	</entry>
	<entry>
		<id>https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1656</id>
		<title>Subversion configured for Windows Active Directory HTTPS</title>
		<link rel="alternate" type="text/html" href="https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1656"/>
		<updated>2007-12-08T10:38:08Z</updated>

		<summary type="html">&lt;p&gt;Anneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to set up a subversion server on a windows machine that recognizes users from Microsoft Active Directory and uses secure http (https) to communicate with clients you can use the following setup as a template for your configuration. &lt;br /&gt;
&lt;br /&gt;
Steps to follow:&lt;br /&gt;
&lt;br /&gt;
1) Download and install Apache 2.2 + open SSL from http://www.apache.org. Do use Apache 2.2 instead of Apache 2.0 if you want to connect to Active Directory&lt;br /&gt;
&lt;br /&gt;
2) Download the apache 2.2 binary compatible version of svn from http://svn.tigris.org&lt;br /&gt;
&lt;br /&gt;
3) Copy all dll&#039;s and modules (.so files) from subversion/bin directory to the apache2.2 /modules directory&lt;br /&gt;
&lt;br /&gt;
4) Copy an existing svn repository or create a new repository&lt;br /&gt;
COPY:&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;c:\program files\subversion\bin&amp;quot;&lt;br /&gt;
svnadmin hotcopy //computer/share/subversion/repositories/repo1 c:/subversion/repositories/repo1&amp;lt;/pre&amp;gt;&lt;br /&gt;
CREATE:&lt;br /&gt;
&amp;lt;pre&amp;gt;svnadmin create c:/subversion/repositories/repo1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5) Create a authorization file: svn.authz&lt;br /&gt;
&amp;lt;pre&amp;gt;### This file is an example authorization file for svnserve.&lt;br /&gt;
### Its format is identical to that of mod_authz_svn authorization&lt;br /&gt;
### files.&lt;br /&gt;
### As shown below each section defines authorizations for the path and&lt;br /&gt;
### (optional) repository specified by the section name.&lt;br /&gt;
### The authorizations follow. An authorization line can refer to a&lt;br /&gt;
### single user, to a group of users defined in a special [groups]&lt;br /&gt;
### section, or to anyone using the &#039;*&#039; wildcard.  Each definition can&lt;br /&gt;
### grant read (&#039;r&#039;) access, read-write (&#039;rw&#039;) access, or no access&lt;br /&gt;
### (&#039;&#039;).&lt;br /&gt;
[groups]&lt;br /&gt;
group1 = harry,sally&lt;br /&gt;
group2 = romeo,julia&lt;br /&gt;
group3 = sally,julia&lt;br /&gt;
&lt;br /&gt;
[/]&lt;br /&gt;
* = r&lt;br /&gt;
@group1 = rw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6) Create a SSL certificate&lt;br /&gt;
&lt;br /&gt;
- Openssl.exe included with this version of Apache 2.2 does not seem to be configured well on windows. In order to create a certificate, you need a well configured version of openssl. For this example configuration of subversion with https, file Openssl-0.9.7e-Win32.zip[http://support.etouch.net/cm/wiki/support.Downloads.wiki/1021721main_Openssl-0.9.7e-Win32.zip] combined with file openssl.conf[http://support.etouch.net/cm/wiki/support.Downloads.wiki/1021722main_openssl.cnf] were downloaded from support.etouch.net[http://support.etouch.net/cm/wiki/support.Downloads.wiki/home/Enabling%20SSL%20with%20Apache%20on%20Windows%202003%20for%20SamePage.html]&lt;br /&gt;
 &lt;br /&gt;
- run the following commands&lt;br /&gt;
&amp;lt;pre&amp;gt;openssl req -config openssl.cnf -new -out svn.example.com.csr&lt;br /&gt;
openssl rsa -in privkey.pem -out svn.example.com.key&lt;br /&gt;
openssl x509 -in svn.example.com.csr -out svn.example.com.cert -req -signkey svn.example.com.key -days 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- copy the resulting *.cert and *.key files to the apache2.2/conf directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) Edit apache/conf/httpd.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LoadModule dav_module modules/mod_dav.so&lt;br /&gt;
LoadModule dav_svn_module modules/mod_dav_svn.so&lt;br /&gt;
LoadModule authz_svn_module modules/mod_authz_svn.so&lt;br /&gt;
LoadModule ldap_module modules/mod_ldap.so&lt;br /&gt;
LoadModule ssl_module modules/mod_ssl.so&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
SSLEngine on&lt;br /&gt;
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL&lt;br /&gt;
SSLCertificateFile conf/svn.example.com.cert&lt;br /&gt;
SSLCertificateKeyFile conf/svn.example.com.key&lt;br /&gt;
#&amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php3?)$&amp;quot;&amp;gt;&lt;br /&gt;
#    SSLOptions +StdEnvVars&lt;br /&gt;
#&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
#&amp;lt;Directory &amp;quot;C:/Program Files/Apache Group/Apache2/cgi&amp;quot;&amp;gt;&lt;br /&gt;
#    SSLOptions +StdEnvVars&lt;br /&gt;
#&amp;lt;/Directory&amp;gt;&lt;br /&gt;
SetEnvIf User-Agent &amp;quot;.*MSIE.*&amp;quot; \&lt;br /&gt;
         nokeepalive ssl-unclean-shutdown \&lt;br /&gt;
         downgrade-1.0 force-response-1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#redirect /repos to /repos/&lt;br /&gt;
RedirectMatch ^(/repos)$ $1/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location /repos/&amp;gt;&lt;br /&gt;
  DAV svn&lt;br /&gt;
  # SVNPath c:/subversion/repositories/repo1&lt;br /&gt;
  SVNParentPath c:/subversion/repositories&lt;br /&gt;
  SVNListparentPath on&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
	&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthBasicProvider ldap&lt;br /&gt;
  AuthzLDAPAuthoritative off&lt;br /&gt;
  AuthName &amp;quot;svn.example.com&amp;quot;&lt;br /&gt;
  AuthzSVNAccessFile c:/subversion/repositories/svn.authz&lt;br /&gt;
&lt;br /&gt;
  #at least one of your domain servers listens on port 3268 (besides default ldap port 389)&lt;br /&gt;
  #use the server that listens on port 3268 if you have more than one AD server. The service&lt;br /&gt;
  #on port 389 uses referrals to the other AD servers. Referrals are used anonymously. Anonymoys&lt;br /&gt;
  #binding will not work on most AD-servers.&lt;br /&gt;
  AuthLDAPURL &amp;quot;ldap://dc.example.nl:3268/DC=example,DC=com?sAMAccountName?sub?(objectClass=*)&amp;quot;&lt;br /&gt;
  #AuthLDAPURL &amp;quot;ldap://dc.example.nl:389/DC=example,DC=com?sAMAccountName??(objectClass=*)&amp;quot;&lt;br /&gt;
  AuthLDAPBindDN &amp;quot;CN=apache_bind,CN=users,DC=example,DC=com&amp;quot;&lt;br /&gt;
  AuthLDAPBindPassword [password_for_ad_user_apache_bind]&lt;br /&gt;
  #AuthLDAPFollowReferrals off&lt;br /&gt;
  &lt;br /&gt;
  AuthLDAPGroupAttributeIsDN on&lt;br /&gt;
  AuthLDAPGroupAttribute member&lt;br /&gt;
  SSLRequireSSL&lt;br /&gt;
  #require ldap-group CN=svnusers,CN=Users,DC=example,DC=com&lt;br /&gt;
  require valid-user&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8) Apply ldap patch for MS-AD&lt;br /&gt;
&lt;br /&gt;
When a Microsoft Active Directory times out, it sends a TCP RST instad of a TCP FIN to the client. There is a workaround for this MS AD bug in Apache mod_ldap, see http://www.apachelounge.com/forum/viewtopic.php?t=1995 or download http://www.anneb.dds.nl/httpd-2.2.6_ldappatch_win32_vc6.zip&lt;br /&gt;
Replace apache modules mod_lap.so and mod_authnz_ldap.so with the files from the downloaded zip file. This configuration allows you to add more than one repository in directory c:/subversion/repositories. All repositories are listed in the browser using URL https://svn.example.com/repos. User names and passwords are validated against Active Directory. Standard svn clients can not browse the list of repositories. Instead you should use the full path to a particular repository, for instance https://svn.example.com/repos/repo1.&lt;br /&gt;
&lt;br /&gt;
9) Binary files cannot be easily merged. The lock-modify-unlock versioning model seems to be the only appropriate model for these type of files. Follow the instructions in [Setting up lock-modify-unlock This description also includes client and server side configuration to accommodate for the lock-modify-unlock model for binary files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9) Force users to set svn:needs-lock property on new binary files&lt;br /&gt;
&lt;br /&gt;
Binary files cannot be merged. Versioning should follow the lock-modify-unlock model[http://svnbook.red-bean.com/en/1.4/svn.basic.vsn-models.html#svn.basic.vsn-models.lock-unlock]. You can force using this model for binary files following the description on how to setup [Automatic lock-modify-unlock].&lt;/div&gt;</summary>
		<author><name>Anneb</name></author>
	</entry>
	<entry>
		<id>https://www.orcaware.com/svn/mediawiki/index.php?title=Automatic_lock-modify-unlock&amp;diff=1655</id>
		<title>Automatic lock-modify-unlock</title>
		<link rel="alternate" type="text/html" href="https://www.orcaware.com/svn/mediawiki/index.php?title=Automatic_lock-modify-unlock&amp;diff=1655"/>
		<updated>2007-12-08T10:32:56Z</updated>

		<summary type="html">&lt;p&gt;Anneb: New page: Different versions of binary files cannot be merged. Therefore versioning of binary files should follow the lock-modify-unlock model[http://svnbook.red-bean.com/en/1.4/svn.basic.vsn-models...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Different versions of binary files cannot be merged. Therefore versioning of binary files should follow the lock-modify-unlock model[http://svnbook.red-bean.com/en/1.4/svn.basic.vsn-models.html#svn.basic.vsn-models.lock-unlock]. You can force using this model for binary files with a  pre-commit script as part of the svn repository. This script verifies that property svn:needs-lock is set on binary files and denies the commit if the property is not available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) - create a pre-commit.cmd script in the repository\hooks directory (Windows only):&lt;br /&gt;
&amp;lt;pre&amp;gt;@echo off&lt;br /&gt;
set REPOS=%1&lt;br /&gt;
set TRANSACTION=%2&lt;br /&gt;
set SVNLOOK=&amp;quot;c:\Program Files\Subversion\apache2.2\bin\svnlook.exe&amp;quot;&lt;br /&gt;
set TEMP=c:\temp&lt;br /&gt;
&lt;br /&gt;
if exist %TEMP%\tempfile%2 del %TEMP%\tempfile%2&lt;br /&gt;
for /f &amp;quot;tokens=1,2 usebackq&amp;quot; %%i in (`%SVNLOOK% changed -t %2 %1`) do @if %%i==A @echo %%j &amp;gt;&amp;gt; %TEMP%\tempfile%2&lt;br /&gt;
if not exist %TEMP%\tempfile%2 goto NOFILESADDED&lt;br /&gt;
for /f &amp;quot;usebackq&amp;quot; %%i in (`findstr /E /I /R &amp;quot;\.bmp.$ \.gif.$ \.ico.$ \.jpeg.$ \.jpg.$ \.png.$ \.tif.$ \.tiff.$ \.doc.$ \.jar.$ \.odt.$ \.pdf.$ \.ppt.$ \.swf.$ \.vsd.$ \.xls.$ \.zip.$&amp;quot; %TEMP%\tempfile%2`) do (&lt;br /&gt;
%SVNLOOK% propget -t %2 %1 svn:needs-lock %%i 1&amp;gt; nul 2&amp;gt; nul&lt;br /&gt;
if ERRORLEVEL 1 (&lt;br /&gt;
echo commit denied, binary files must have property svn:needs-lock &amp;gt;&amp;amp;2&lt;br /&gt;
type %TEMP%\tempfile%2 &amp;gt;&amp;amp;2&lt;br /&gt;
del %TEMP%\tempfile%2&lt;br /&gt;
EXIT /B 1&lt;br /&gt;
)&lt;br /&gt;
)&lt;br /&gt;
del %TEMP%\tempfile%2&lt;br /&gt;
:NOFILESADDED&lt;br /&gt;
EXIT /B 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Recursively set svn:needs-lock property on binaries&lt;br /&gt;
&lt;br /&gt;
If you need to apply svn:needs-lock on already existing binaries in a repository, do the following on a client (not on the svn server):&lt;br /&gt;
- checkout a repository&lt;br /&gt;
- add to following line to a cmd script (Windows only):&lt;br /&gt;
&amp;lt;pre&amp;gt;FOR /R c:\full\path\to\repository %%v in (*.bmp *.gif *.ico *.jpeg *.jpg *.png *.tif *.tiff *.doc *.jar *.odc *.odf *.odg *.odi *.odp *.ods *.odt *.pdf *.ppt *.ser *.swf *.vsd *.xls *.zip) do svn propset svn:needs-lock yes %%~fv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- run the script&lt;br /&gt;
&lt;br /&gt;
3) Configure users to automatically use svn:needs-lock property on new binary files&lt;br /&gt;
&lt;br /&gt;
New binary files should have the svn:needs-lock property set, this is verified by the script of step 1. This can be achieved automatically if users configure their svn client config file.&lt;br /&gt;
&lt;br /&gt;
- under windows the SVN config file is &amp;quot;C:\Documents and Settings\[USER_NAME]\Application Data\Subversion\config&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Replace or merge the [miscellany] and [auto-props] sections in the svn config file with the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[miscellany]&lt;br /&gt;
enable-auto-props = yes&lt;br /&gt;
&lt;br /&gt;
[auto-props]&lt;br /&gt;
### The format of the entries is:&lt;br /&gt;
###   file-name-pattern = propname[=value][;propname[=value]...]&lt;br /&gt;
### The file-name-pattern can contain wildcards (such as &#039;*&#039; and&lt;br /&gt;
### &#039;?&#039;).  All entries which match will be applied to the file.&lt;br /&gt;
### Note that auto-props functionality must be enabled, which&lt;br /&gt;
### is typically done by setting the &#039;enable-auto-props&#039; option.&lt;br /&gt;
*.bmp = svn:mime-type=image/bmp;svn:needs-lock=*&lt;br /&gt;
*.gif = svn:mime-type=image/gif;svn:needs-lock=*&lt;br /&gt;
*.ico = svn:mime-type=image/x-icon;svn:needs-lock=*&lt;br /&gt;
*.jpeg = svn:mime-type=image/jpeg;svn:needs-lock=*&lt;br /&gt;
*.jpg = svn:mime-type=image/jpeg;svn:needs-lock=*&lt;br /&gt;
*.png = svn:mime-type=image/png;svn:needs-lock=*&lt;br /&gt;
*.tif = svn:mime-type=image/tiff;svn:needs-lock=*&lt;br /&gt;
*.tiff = svn:mime-type=image/tiff;svn:needs-lock=*&lt;br /&gt;
&lt;br /&gt;
*.doc = svn:mime-type=application/msword;svn:needs-lock=*&lt;br /&gt;
*.jar = svn:mime-type=application/octet-stream;svn:needs-lock=*&lt;br /&gt;
*.odc = svn:mime-type=application/vnd.oasis.opendocument.chart;svn:needs-lock=*&lt;br /&gt;
*.odf = svn:mime-type=application/vnd.oasis.opendocument.formula;svn:needs-lock=*&lt;br /&gt;
*.odg = svn:mime-type=application/vnd.oasis.opendocument.graphics;svn:needs-lock=*&lt;br /&gt;
*.odi = svn:mime-type=application/vnd.oasis.opendocument.image;svn:needs-lock=*&lt;br /&gt;
*.odp = svn:mime-type=application/vnd.oasis.opendocument.presentation;svn:needs-lock=*&lt;br /&gt;
*.ods = svn:mime-type=application/vnd.oasis.opendocument.spreadsheet;svn:needs-lock=*&lt;br /&gt;
*.odt = svn:mime-type=application/vnd.oasis.opendocument.text;svn:needs-lock=*&lt;br /&gt;
*.pdf = svn:mime-type=application/pdf;svn:needs-lock=*&lt;br /&gt;
*.ppt = svn:mime-type=application/vnd.ms-powerpoint;svn:needs-lock=*&lt;br /&gt;
*.ser = svn:mime-type=application/octet-stream;svn:needs-lock=*&lt;br /&gt;
*.swf = svn:mime-type=application/x-shockwave-flash;svn:needs-lock=*&lt;br /&gt;
*.vsd = svn:mime-type=application/x-visio;svn:needs-lock=*&lt;br /&gt;
*.xls = svn:mime-type=application/vnd.ms-excel;svn:needs-lock=*&lt;br /&gt;
*.zip = svn:mime-type=application/zip;svn:needs-lock=*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anneb</name></author>
	</entry>
	<entry>
		<id>https://www.orcaware.com/svn/mediawiki/index.php?title=Main_Page&amp;diff=1654</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.orcaware.com/svn/mediawiki/index.php?title=Main_Page&amp;diff=1654"/>
		<updated>2007-12-08T10:17:17Z</updated>

		<summary type="html">&lt;p&gt;Anneb: /* HowTos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Welcome to the Subversion Wiki.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Got a question about Subversion? ==&lt;br /&gt;
&lt;br /&gt;
Since this wiki seems to lack content at the moment, try the [http://subversion.tigris.org/faq.html Subversion FAQ].&lt;br /&gt;
&lt;br /&gt;
Also, there is [http://subversionary.org another wiki] related to Subversion.  At this time, it contains more content than this wiki.  However unlike this wiki, it doesn&#039;t use the more popular MediaWiki engine, and apprently, due to spam problems, was forced to shut off public editing.&lt;br /&gt;
&lt;br /&gt;
== HowTos ==&lt;br /&gt;
&lt;br /&gt;
* Manage [[System Configurations]] like &amp;lt;tt&amp;gt;/etc&amp;lt;/tt&amp;gt; files using subversion.&lt;br /&gt;
* Setting up [[Subversion configured for Windows Active Directory HTTPS]]&lt;br /&gt;
* Setting up [[Automatic lock-modify-unlock]] for binary files&lt;br /&gt;
&lt;br /&gt;
== Contrib tools ==&lt;br /&gt;
&lt;br /&gt;
* [[svnmerge.py]] - Automatic branch management with merge tracking support.&lt;br /&gt;
* [[Repository Upgrade]] - Upgrade from an older repository to latest (1.4) (Windows)&lt;br /&gt;
* [[Subclipse]] - The subversion plugin for Eclipse&lt;br /&gt;
* [[SVNKit]] - Pure Java Subversion library&lt;br /&gt;
* [http://svnnotifier.tigris.org SVN Notifier] - Notifies you about other people&#039;s commits to subversion&lt;br /&gt;
&lt;br /&gt;
== MediaWiki help ==&lt;br /&gt;
&lt;br /&gt;
This wiki uses the MediaWiki software. Consult the [http://meta.wikipedia.org/wiki/MediaWiki_User&#039;s_Guide User&#039;s Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
=== Getting started ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
* [http://mail.wikipedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [http://alfredfazio.ws/notes%3Asubversion Fast-paced overview of Subversion for experienced users]&lt;/div&gt;</summary>
		<author><name>Anneb</name></author>
	</entry>
	<entry>
		<id>https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1653</id>
		<title>Subversion configured for Windows Active Directory HTTPS</title>
		<link rel="alternate" type="text/html" href="https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1653"/>
		<updated>2007-12-08T10:11:25Z</updated>

		<summary type="html">&lt;p&gt;Anneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to set up a subversion server on a windows machine that recognizes users from Microsoft Active Directory and uses secure http (https) to communicate with clients you can use the following setup as a template for your configuration. &lt;br /&gt;
&lt;br /&gt;
Binary files cannot be easily merged. The lock-modify-unlock versioning model seems to be the only appropriate model for these type of files. This description also includes client and server side configuration to accommodate for the lock-modify-unlock model for binary files.&lt;br /&gt;
&lt;br /&gt;
Steps to follow:&lt;br /&gt;
&lt;br /&gt;
1) Download and install Apache 2.2 + open SSL from http://www.apache.org. Do use Apache 2.2 instead of Apache 2.0 if you want to connect to Active Directory&lt;br /&gt;
&lt;br /&gt;
2) Download the apache 2.2 binary compatible version of svn from http://svn.tigris.org&lt;br /&gt;
&lt;br /&gt;
3) Copy all dll&#039;s and modules (.so files) from subversion/bin directory to the apache2.2 /modules directory&lt;br /&gt;
&lt;br /&gt;
4) Copy an existing svn repository or create a new repository&lt;br /&gt;
COPY:&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;c:\program files\subversion\bin&amp;quot;&lt;br /&gt;
svnadmin hotcopy //computer/share/subversion/repositories/repo1 c:/subversion/repositories/repo1&amp;lt;/pre&amp;gt;&lt;br /&gt;
CREATE:&lt;br /&gt;
&amp;lt;pre&amp;gt;svnadmin create c:/subversion/repositories/repo1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5) Create a authorization file: svn.authz&lt;br /&gt;
&amp;lt;pre&amp;gt;### This file is an example authorization file for svnserve.&lt;br /&gt;
### Its format is identical to that of mod_authz_svn authorization&lt;br /&gt;
### files.&lt;br /&gt;
### As shown below each section defines authorizations for the path and&lt;br /&gt;
### (optional) repository specified by the section name.&lt;br /&gt;
### The authorizations follow. An authorization line can refer to a&lt;br /&gt;
### single user, to a group of users defined in a special [groups]&lt;br /&gt;
### section, or to anyone using the &#039;*&#039; wildcard.  Each definition can&lt;br /&gt;
### grant read (&#039;r&#039;) access, read-write (&#039;rw&#039;) access, or no access&lt;br /&gt;
### (&#039;&#039;).&lt;br /&gt;
[groups]&lt;br /&gt;
group1 = harry,sally&lt;br /&gt;
group2 = romeo,julia&lt;br /&gt;
group3 = sally,julia&lt;br /&gt;
&lt;br /&gt;
[/]&lt;br /&gt;
* = r&lt;br /&gt;
@group1 = rw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6) Create a SSL certificate&lt;br /&gt;
&lt;br /&gt;
- Openssl.exe included with this version of Apache 2.2 does not seem to be configured well on windows. In order to create a certificate, you need a well configured version of openssl. For this example configuration of subversion with https, file Openssl-0.9.7e-Win32.zip[http://support.etouch.net/cm/wiki/support.Downloads.wiki/1021721main_Openssl-0.9.7e-Win32.zip] combined with file openssl.conf[http://support.etouch.net/cm/wiki/support.Downloads.wiki/1021722main_openssl.cnf] were downloaded from support.etouch.net[http://support.etouch.net/cm/wiki/support.Downloads.wiki/home/Enabling%20SSL%20with%20Apache%20on%20Windows%202003%20for%20SamePage.html]&lt;br /&gt;
 &lt;br /&gt;
- run the following commands&lt;br /&gt;
&amp;lt;pre&amp;gt;openssl req -config openssl.cnf -new -out svn.example.com.csr&lt;br /&gt;
openssl rsa -in privkey.pem -out svn.example.com.key&lt;br /&gt;
openssl x509 -in svn.example.com.csr -out svn.example.com.cert -req -signkey svn.example.com.key -days 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- copy the resulting *.cert and *.key files to the apache2.2/conf directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) Edit apache/conf/httpd.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LoadModule dav_module modules/mod_dav.so&lt;br /&gt;
LoadModule dav_svn_module modules/mod_dav_svn.so&lt;br /&gt;
LoadModule authz_svn_module modules/mod_authz_svn.so&lt;br /&gt;
LoadModule ldap_module modules/mod_ldap.so&lt;br /&gt;
LoadModule ssl_module modules/mod_ssl.so&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
SSLEngine on&lt;br /&gt;
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL&lt;br /&gt;
SSLCertificateFile conf/svn.example.com.cert&lt;br /&gt;
SSLCertificateKeyFile conf/svn.example.com.key&lt;br /&gt;
#&amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php3?)$&amp;quot;&amp;gt;&lt;br /&gt;
#    SSLOptions +StdEnvVars&lt;br /&gt;
#&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
#&amp;lt;Directory &amp;quot;C:/Program Files/Apache Group/Apache2/cgi&amp;quot;&amp;gt;&lt;br /&gt;
#    SSLOptions +StdEnvVars&lt;br /&gt;
#&amp;lt;/Directory&amp;gt;&lt;br /&gt;
SetEnvIf User-Agent &amp;quot;.*MSIE.*&amp;quot; \&lt;br /&gt;
         nokeepalive ssl-unclean-shutdown \&lt;br /&gt;
         downgrade-1.0 force-response-1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#redirect /repos to /repos/&lt;br /&gt;
RedirectMatch ^(/repos)$ $1/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location /repos/&amp;gt;&lt;br /&gt;
  DAV svn&lt;br /&gt;
  # SVNPath c:/subversion/repositories/repo1&lt;br /&gt;
  SVNParentPath c:/subversion/repositories&lt;br /&gt;
  SVNListparentPath on&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
	&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthBasicProvider ldap&lt;br /&gt;
  AuthzLDAPAuthoritative off&lt;br /&gt;
  AuthName &amp;quot;svn.example.com&amp;quot;&lt;br /&gt;
  AuthzSVNAccessFile c:/subversion/repositories/svn.authz&lt;br /&gt;
&lt;br /&gt;
  #at least one of your domain servers listens on port 3268 (besides default ldap port 389)&lt;br /&gt;
  #use the server that listens on port 3268 if you have more than one AD server. The service&lt;br /&gt;
  #on port 389 uses referrals to the other AD servers. Referrals are used anonymously. Anonymoys&lt;br /&gt;
  #binding will not work on most AD-servers.&lt;br /&gt;
  AuthLDAPURL &amp;quot;ldap://dc.example.nl:3268/DC=example,DC=com?sAMAccountName?sub?(objectClass=*)&amp;quot;&lt;br /&gt;
  #AuthLDAPURL &amp;quot;ldap://dc.example.nl:389/DC=example,DC=com?sAMAccountName??(objectClass=*)&amp;quot;&lt;br /&gt;
  AuthLDAPBindDN &amp;quot;CN=apache_bind,CN=users,DC=example,DC=com&amp;quot;&lt;br /&gt;
  AuthLDAPBindPassword [password_for_ad_user_apache_bind]&lt;br /&gt;
  #AuthLDAPFollowReferrals off&lt;br /&gt;
  &lt;br /&gt;
  AuthLDAPGroupAttributeIsDN on&lt;br /&gt;
  AuthLDAPGroupAttribute member&lt;br /&gt;
  SSLRequireSSL&lt;br /&gt;
  #require ldap-group CN=svnusers,CN=Users,DC=example,DC=com&lt;br /&gt;
  require valid-user&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8) Apply ldap patch for MS-AD&lt;br /&gt;
&lt;br /&gt;
When a Microsoft Active Directory times out, it sends a TCP RST instad of a TCP FIN to the client. There is a workaround for this MS AD bug in Apache mod_ldap, see http://www.apachelounge.com/forum/viewtopic.php?t=1995 or download http://www.anneb.dds.nl/httpd-2.2.6_ldappatch_win32_vc6.zip&lt;br /&gt;
Replace apache modules mod_lap.so and mod_authnz_ldap.so with the files from the downloaded zip file. This configuration allows you to add more than one repository in directory c:/subversion/repositories. All repositories are listed in the browser using URL https://svn.example.com/repos. User names and passwords are validated against Active Directory. Standard svn clients can not browse the list of repositories. Instead you should use the full path to a particular repository, for instance https://svn.example.com/repos/repo1.&lt;br /&gt;
&lt;br /&gt;
9) Force users to set svn:needs-lock property on new binary files&lt;br /&gt;
&lt;br /&gt;
Binary files cannot be merged. Versioning should follow the lock-modify-unlock model. You can force using this model for binary files with the following pre-commit script as part of the svn repository&lt;br /&gt;
- create a pre-commit.cmd script in the repository\hooks directory&lt;br /&gt;
&amp;lt;pre&amp;gt;@echo off&lt;br /&gt;
set REPOS=%1&lt;br /&gt;
set TRANSACTION=%2&lt;br /&gt;
set SVNLOOK=&amp;quot;c:\Program Files\Subversion\apache2.2\bin\svnlook.exe&amp;quot;&lt;br /&gt;
set TEMP=c:\temp&lt;br /&gt;
&lt;br /&gt;
if exist %TEMP%\tempfile%2 del %TEMP%\tempfile%2&lt;br /&gt;
for /f &amp;quot;tokens=1,2 usebackq&amp;quot; %%i in (`%SVNLOOK% changed -t %2 %1`) do @if %%i==A @echo %%j &amp;gt;&amp;gt; %TEMP%\tempfile%2&lt;br /&gt;
if not exist %TEMP%\tempfile%2 goto NOFILESADDED&lt;br /&gt;
for /f &amp;quot;usebackq&amp;quot; %%i in (`findstr /E /I /R &amp;quot;\.bmp.$ \.gif.$ \.ico.$ \.jpeg.$ \.jpg.$ \.png.$ \.tif.$ \.tiff.$ \.doc.$ \.jar.$ \.odt.$ \.pdf.$ \.ppt.$ \.swf.$ \.vsd.$ \.xls.$ \.zip.$&amp;quot; %TEMP%\tempfile%2`) do (&lt;br /&gt;
%SVNLOOK% propget -t %2 %1 svn:needs-lock %%i 1&amp;gt; nul 2&amp;gt; nul&lt;br /&gt;
if ERRORLEVEL 1 (&lt;br /&gt;
echo commit denied, binary files must have property svn:needs-lock &amp;gt;&amp;amp;2&lt;br /&gt;
type %TEMP%\tempfile%2 &amp;gt;&amp;amp;2&lt;br /&gt;
del %TEMP%\tempfile%2&lt;br /&gt;
EXIT /B 1&lt;br /&gt;
)&lt;br /&gt;
)&lt;br /&gt;
del %TEMP%\tempfile%2&lt;br /&gt;
:NOFILESADDED&lt;br /&gt;
EXIT /B 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10) Recursively set svn:needs-lock property on binaries&lt;br /&gt;
&lt;br /&gt;
If you need to apply svn:needs-lock on already existing binaries in a repository, do the following on a client (not on the svn server):&lt;br /&gt;
- checkout a repository&lt;br /&gt;
- add to following line to a cmd script:&lt;br /&gt;
&amp;lt;pre&amp;gt;FOR /R c:\full\path\to\repository %%v in (*.bmp *.gif *.ico *.jpeg *.jpg *.png *.tif *.tiff *.doc *.jar *.odc *.odf *.odg *.odi *.odp *.ods *.odt *.pdf *.ppt *.ser *.swf *.vsd *.xls *.zip) do svn propset svn:needs-lock yes %%~fv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- run the script&lt;br /&gt;
&lt;br /&gt;
11) Configure users to automatically use svn:needs-lock property on new binary files&lt;br /&gt;
&lt;br /&gt;
New binary files should have the svn:needs-lock property set, this is verified by the script of step 9. This can be achieved automatically if users configure their svn client config file.&lt;br /&gt;
&lt;br /&gt;
- under windows the SVN config file is &amp;quot;C:\Documents and Settings\[USER_NAME]\Application Data\Subversion\config&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Replace the [miscellany] and [auto-props] sections in the svn config file with the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[miscellany]&lt;br /&gt;
enable-auto-props = yes&lt;br /&gt;
&lt;br /&gt;
[auto-props]&lt;br /&gt;
### The format of the entries is:&lt;br /&gt;
###   file-name-pattern = propname[=value][;propname[=value]...]&lt;br /&gt;
### The file-name-pattern can contain wildcards (such as &#039;*&#039; and&lt;br /&gt;
### &#039;?&#039;).  All entries which match will be applied to the file.&lt;br /&gt;
### Note that auto-props functionality must be enabled, which&lt;br /&gt;
### is typically done by setting the &#039;enable-auto-props&#039; option.&lt;br /&gt;
*.apt = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.c = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.c++ = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.cpp = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.cs = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.css = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.dtd = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.ent = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.fml = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.groovy = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.h = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.h++ = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.hpp = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.html = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.idl = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.include = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.java = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.js = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.jsp = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.ldf = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.ldif = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.mak = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.mdo = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.php = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.rb = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.rtf = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.sql = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.svg = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.t2t = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.vm = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xhtml = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xml = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xsd = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xsl = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xslt = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
Makefile = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
&lt;br /&gt;
*.launch = svn:eol-style=native&lt;br /&gt;
*.MF = svn:eol-style=native&lt;br /&gt;
*.properties = svn:eol-style=native&lt;br /&gt;
*.script = svn:eol-style=native&lt;br /&gt;
*.txt = svn:eol-style=native&lt;br /&gt;
&lt;br /&gt;
*.dsp = svn:eol-style=CRLF&lt;br /&gt;
*.dsw = svn:eol-style=CRLF&lt;br /&gt;
&lt;br /&gt;
*.iml = svn:eol-style=LF&lt;br /&gt;
&lt;br /&gt;
*.bat = svn:eol-style=CRLF;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.cmd = svn:eol-style=CRLF;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
&lt;br /&gt;
*.ksh = svn:eol-style=LF;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.sh = svn:eol-style=LF;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
&lt;br /&gt;
*.pl = svn:eol-style=native;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.py = svn:eol-style=native;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
&lt;br /&gt;
*.bmp = svn:mime-type=image/bmp;svn:needs-lock=*&lt;br /&gt;
*.gif = svn:mime-type=image/gif;svn:needs-lock=*&lt;br /&gt;
*.ico = svn:mime-type=image/x-icon;svn:needs-lock=*&lt;br /&gt;
*.jpeg = svn:mime-type=image/jpeg;svn:needs-lock=*&lt;br /&gt;
*.jpg = svn:mime-type=image/jpeg;svn:needs-lock=*&lt;br /&gt;
*.png = svn:mime-type=image/png;svn:needs-lock=*&lt;br /&gt;
*.tif = svn:mime-type=image/tiff;svn:needs-lock=*&lt;br /&gt;
*.tiff = svn:mime-type=image/tiff;svn:needs-lock=*&lt;br /&gt;
&lt;br /&gt;
*.doc = svn:mime-type=application/msword;svn:needs-lock=*&lt;br /&gt;
*.jar = svn:mime-type=application/octet-stream;svn:needs-lock=*&lt;br /&gt;
*.odc = svn:mime-type=application/vnd.oasis.opendocument.chart;svn:needs-lock=*&lt;br /&gt;
*.odf = svn:mime-type=application/vnd.oasis.opendocument.formula;svn:needs-lock=*&lt;br /&gt;
*.odg = svn:mime-type=application/vnd.oasis.opendocument.graphics;svn:needs-lock=*&lt;br /&gt;
*.odi = svn:mime-type=application/vnd.oasis.opendocument.image;svn:needs-lock=*&lt;br /&gt;
*.odp = svn:mime-type=application/vnd.oasis.opendocument.presentation;svn:needs-lock=*&lt;br /&gt;
*.ods = svn:mime-type=application/vnd.oasis.opendocument.spreadsheet;svn:needs-lock=*&lt;br /&gt;
*.odt = svn:mime-type=application/vnd.oasis.opendocument.text;svn:needs-lock=*&lt;br /&gt;
*.pdf = svn:mime-type=application/pdf;svn:needs-lock=*&lt;br /&gt;
*.ppt = svn:mime-type=application/vnd.ms-powerpoint;svn:needs-lock=*&lt;br /&gt;
*.ser = svn:mime-type=application/octet-stream;svn:needs-lock=*&lt;br /&gt;
*.swf = svn:mime-type=application/x-shockwave-flash;svn:needs-lock=*&lt;br /&gt;
*.vsd = svn:mime-type=application/x-visio;svn:needs-lock=*&lt;br /&gt;
*.xls = svn:mime-type=application/vnd.ms-excel;svn:needs-lock=*&lt;br /&gt;
*.zip = svn:mime-type=application/zip;svn:needs-lock=*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anneb</name></author>
	</entry>
	<entry>
		<id>https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1652</id>
		<title>Subversion configured for Windows Active Directory HTTPS</title>
		<link rel="alternate" type="text/html" href="https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1652"/>
		<updated>2007-12-08T02:13:32Z</updated>

		<summary type="html">&lt;p&gt;Anneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to set up a subversion server on a windows machine that recognizes users from Microsoft Active Directory and uses secure http (https) to communicate with clients you can use the following setup as a template for your configuration. &lt;br /&gt;
&lt;br /&gt;
Binary files cannot be easily merged. The lock-modify-unlock versioning model seems to be the only appropriate model for these type of files. This description also includes client and server side configuration to accommodate for the lock-modify-unlock model for binary files.&lt;br /&gt;
&lt;br /&gt;
Steps to follow:&lt;br /&gt;
&lt;br /&gt;
1) Download and install Apache 2.2 + open SSL from www.apache.org. Do use Apache 2.2 instead of Apache 2.0 if you want to connect to Active Directory&lt;br /&gt;
&lt;br /&gt;
2) Download the apache 2.2 binary compatible version of svn from http://svn.tigris.org&lt;br /&gt;
&lt;br /&gt;
3) Copy all dll&#039;s and modules (.so files) from subversion/bin directory to the apache2.2 /modules directory&lt;br /&gt;
&lt;br /&gt;
4) Copy an existing svn repository or create a new repository&lt;br /&gt;
COPY:&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;c:\program files\subversion\bin&amp;quot;&lt;br /&gt;
svnadmin hotcopy //computer/share/subversion/repositories/repo1 c:/subversion/repositories/repo1&amp;lt;/pre&amp;gt;&lt;br /&gt;
CREATE:&lt;br /&gt;
&amp;lt;pre&amp;gt;svnadmin create c:/subversion/repositories/repo1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5) Create a authorization file: svn.authz&lt;br /&gt;
&amp;lt;pre&amp;gt;### This file is an example authorization file for svnserve.&lt;br /&gt;
### Its format is identical to that of mod_authz_svn authorization&lt;br /&gt;
### files.&lt;br /&gt;
### As shown below each section defines authorizations for the path and&lt;br /&gt;
### (optional) repository specified by the section name.&lt;br /&gt;
### The authorizations follow. An authorization line can refer to a&lt;br /&gt;
### single user, to a group of users defined in a special [groups]&lt;br /&gt;
### section, or to anyone using the &#039;*&#039; wildcard.  Each definition can&lt;br /&gt;
### grant read (&#039;r&#039;) access, read-write (&#039;rw&#039;) access, or no access&lt;br /&gt;
### (&#039;&#039;).&lt;br /&gt;
[groups]&lt;br /&gt;
group1 = harry,sally&lt;br /&gt;
group2 = romeo,julia&lt;br /&gt;
group3 = sally,julia&lt;br /&gt;
&lt;br /&gt;
[/]&lt;br /&gt;
* = r&lt;br /&gt;
@group1 = rw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6) Create a SSL certificate&lt;br /&gt;
&lt;br /&gt;
- Openssl.exe included with this version of Apache does not seem to work well on windows. In order to create a certificate, you need a well working version of openssl. For me, file Openssl-0.9.7e-Win32.zip, for instance from: http://support.etouch.net/cm/wiki/support.Downloads.wiki/1021721main_Openssl-0.9.7e-Win32.zip worked well&lt;br /&gt;
&lt;br /&gt;
- run the following commands&lt;br /&gt;
&amp;lt;pre&amp;gt;openssl req -config openssl.cnf -new -out svn.example.com.csr&lt;br /&gt;
openssl rsa -in privkey.pem -out svn.example.com.key&lt;br /&gt;
openssl x509 -in svn.example.com.csr -out svn.example.com.cert -req -signkey svn.example.com.key -days 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- copy the resulting *.cert and *.key files to the apache2.2/conf directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) Edit apache/conf/httpd.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LoadModule dav_module modules/mod_dav.so&lt;br /&gt;
LoadModule dav_svn_module modules/mod_dav_svn.so&lt;br /&gt;
LoadModule authz_svn_module modules/mod_authz_svn.so&lt;br /&gt;
LoadModule ldap_module modules/mod_ldap.so&lt;br /&gt;
LoadModule ssl_module modules/mod_ssl.so&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
SSLEngine on&lt;br /&gt;
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL&lt;br /&gt;
SSLCertificateFile conf/svn.example.com.cert&lt;br /&gt;
SSLCertificateKeyFile conf/svn.example.com.key&lt;br /&gt;
#&amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php3?)$&amp;quot;&amp;gt;&lt;br /&gt;
#    SSLOptions +StdEnvVars&lt;br /&gt;
#&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
#&amp;lt;Directory &amp;quot;C:/Program Files/Apache Group/Apache2/cgi&amp;quot;&amp;gt;&lt;br /&gt;
#    SSLOptions +StdEnvVars&lt;br /&gt;
#&amp;lt;/Directory&amp;gt;&lt;br /&gt;
SetEnvIf User-Agent &amp;quot;.*MSIE.*&amp;quot; \&lt;br /&gt;
         nokeepalive ssl-unclean-shutdown \&lt;br /&gt;
         downgrade-1.0 force-response-1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#redirect /repos to /repos/&lt;br /&gt;
RedirectMatch ^(/repos)$ $1/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location /repos/&amp;gt;&lt;br /&gt;
  DAV svn&lt;br /&gt;
  # SVNPath c:/subversion/repositories/repo1&lt;br /&gt;
  SVNParentPath c:/subversion/repositories&lt;br /&gt;
  SVNListparentPath on&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
	&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthBasicProvider ldap&lt;br /&gt;
  AuthzLDAPAuthoritative off&lt;br /&gt;
  AuthName &amp;quot;svn.example.com&amp;quot;&lt;br /&gt;
  AuthzSVNAccessFile c:/subversion/repositories/svn.authz&lt;br /&gt;
&lt;br /&gt;
  #at least one of your domain servers listens on port 3268 (besides default ldap port 389)&lt;br /&gt;
  #use the server that listens on port 3268 if you have more than one AD server. The service&lt;br /&gt;
  #on port 389 uses referrals to the other AD servers. Referrals are used anonymously. Anonymoys&lt;br /&gt;
  #binding will not work on most AD-servers.&lt;br /&gt;
  AuthLDAPURL &amp;quot;ldap://dc.example.nl:3268/DC=example,DC=com?sAMAccountName?sub?(objectClass=*)&amp;quot;&lt;br /&gt;
  #AuthLDAPURL &amp;quot;ldap://dc.example.nl:389/DC=example,DC=com?sAMAccountName??(objectClass=*)&amp;quot;&lt;br /&gt;
  AuthLDAPBindDN &amp;quot;CN=apache_bind,CN=users,DC=example,DC=com&amp;quot;&lt;br /&gt;
  AuthLDAPBindPassword [password_for_ad_user_apache_bind]&lt;br /&gt;
  #AuthLDAPFollowReferrals off&lt;br /&gt;
  &lt;br /&gt;
  AuthLDAPGroupAttributeIsDN on&lt;br /&gt;
  AuthLDAPGroupAttribute member&lt;br /&gt;
  SSLRequireSSL&lt;br /&gt;
  #require ldap-group CN=svnusers,CN=Users,DC=example,DC=com&lt;br /&gt;
  require valid-user&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8) Apply ldap patch for MS-AD&lt;br /&gt;
When a Microsoft Active Directory times out, it sends a TCP RST instad of a TCP FIN to the client. There is a workaround for this MS AD bug in Apache mod_ldap, see http://www.apachelounge.com/forum/viewtopic.php?t=1995 or download http://www.anneb.dds.nl/httpd-2.2.6_ldappatch_win32_vc6.zip&lt;br /&gt;
Replace apache modules mod_lap.so and mod_authnz_ldap.so with the files from the downloaded zip file. This configuration allows you to add more than one repository in directory c:/subversion/repositories. All repositories are listed in the browser using URL https://svn.example.com/repos. User names and passwords are validated against Active Directory. Standard svn clients can not browse the list of repositories. Instead you should use the full path to a particular repository, for instance https://svn.example.com/repos/repo1.&lt;br /&gt;
&lt;br /&gt;
9) Force users to set svn:needs-lock property on new binary files&lt;br /&gt;
Binary files cannot be merged. Versioning should follow the lock-modify-unlock model. You can force using this model for binary files with the following pre-commit script as part of the svn repository&lt;br /&gt;
- create a pre-commit.cmd script in the repository\hooks directory&lt;br /&gt;
&amp;lt;pre&amp;gt;@echo off&lt;br /&gt;
set REPOS=%1&lt;br /&gt;
set TRANSACTION=%2&lt;br /&gt;
set SVNLOOK=&amp;quot;c:\Program Files\Subversion\apache2.2\bin\svnlook.exe&amp;quot;&lt;br /&gt;
set TEMP=c:\temp&lt;br /&gt;
&lt;br /&gt;
if exist %TEMP%\tempfile%2 del %TEMP%\tempfile%2&lt;br /&gt;
for /f &amp;quot;tokens=1,2 usebackq&amp;quot; %%i in (`%SVNLOOK% changed -t %2 %1`) do @if %%i==A @echo %%j &amp;gt;&amp;gt; %TEMP%\tempfile%2&lt;br /&gt;
if not exist %TEMP%\tempfile%2 goto NOFILESADDED&lt;br /&gt;
for /f &amp;quot;usebackq&amp;quot; %%i in (`findstr /E /I /R &amp;quot;\.bmp.$ \.gif.$ \.ico.$ \.jpeg.$ \.jpg.$ \.png.$ \.tif.$ \.tiff.$ \.doc.$ \.jar.$ \.odt.$ \.pdf.$ \.ppt.$ \.swf.$ \.vsd.$ \.xls.$ \.zip.$&amp;quot; %TEMP%\tempfile%2`) do (&lt;br /&gt;
%SVNLOOK% propget -t %2 %1 svn:needs-lock %%i 1&amp;gt; nul 2&amp;gt; nul&lt;br /&gt;
if ERRORLEVEL 1 (&lt;br /&gt;
echo commit denied, binary files must have property svn:needs-lock &amp;gt;&amp;amp;2&lt;br /&gt;
type %TEMP%\tempfile%2 &amp;gt;&amp;amp;2&lt;br /&gt;
del %TEMP%\tempfile%2&lt;br /&gt;
EXIT /B 1&lt;br /&gt;
)&lt;br /&gt;
)&lt;br /&gt;
del %TEMP%\tempfile%2&lt;br /&gt;
:NOFILESADDED&lt;br /&gt;
EXIT /B 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10) Recursively set svn:needs-lock property on binaries&lt;br /&gt;
If you need to apply svn:needs-lock on already existing binaries in a repository, do the following on a client (not on the svn server):&lt;br /&gt;
- checkout a repository&lt;br /&gt;
- add to following line to a cmd script:&lt;br /&gt;
&amp;lt;pre&amp;gt;FOR /R c:\full\path\to\repository %%v in (*.bmp *.gif *.ico *.jpeg *.jpg *.png *.tif *.tiff *.doc *.jar *.odc *.odf *.odg *.odi *.odp *.ods *.odt *.pdf *.ppt *.ser *.swf *.vsd *.xls *.zip) do svn propset svn:needs-lock yes %%~fv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- run the script&lt;br /&gt;
&lt;br /&gt;
11) Make sure that users automatically set the svn:needs-lock property on binary files (this is verified by the script of step 9)&lt;br /&gt;
All committers should add the following to their svn client config&lt;br /&gt;
- under windows the SVN config file is &amp;quot;C:\Documents and Settings\[USER_NAME]\Application Data\Subversion\config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[miscellany]&lt;br /&gt;
enable-auto-props = yes&lt;br /&gt;
&lt;br /&gt;
[auto-props]&lt;br /&gt;
### The format of the entries is:&lt;br /&gt;
###   file-name-pattern = propname[=value][;propname[=value]...]&lt;br /&gt;
### The file-name-pattern can contain wildcards (such as &#039;*&#039; and&lt;br /&gt;
### &#039;?&#039;).  All entries which match will be applied to the file.&lt;br /&gt;
### Note that auto-props functionality must be enabled, which&lt;br /&gt;
### is typically done by setting the &#039;enable-auto-props&#039; option.&lt;br /&gt;
*.apt = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.c = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.c++ = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.cpp = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.cs = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.css = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.dtd = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.ent = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.fml = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.groovy = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.h = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.h++ = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.hpp = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.html = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.idl = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.include = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.java = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.js = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.jsp = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.ldf = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.ldif = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.mak = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.mdo = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.php = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.rb = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.rtf = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.sql = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.svg = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.t2t = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.vm = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xhtml = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xml = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xsd = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xsl = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xslt = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
Makefile = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
&lt;br /&gt;
*.launch = svn:eol-style=native&lt;br /&gt;
*.MF = svn:eol-style=native&lt;br /&gt;
*.properties = svn:eol-style=native&lt;br /&gt;
*.script = svn:eol-style=native&lt;br /&gt;
*.txt = svn:eol-style=native&lt;br /&gt;
&lt;br /&gt;
*.dsp = svn:eol-style=CRLF&lt;br /&gt;
*.dsw = svn:eol-style=CRLF&lt;br /&gt;
&lt;br /&gt;
*.iml = svn:eol-style=LF&lt;br /&gt;
&lt;br /&gt;
*.bat = svn:eol-style=CRLF;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.cmd = svn:eol-style=CRLF;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
&lt;br /&gt;
*.ksh = svn:eol-style=LF;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.sh = svn:eol-style=LF;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
&lt;br /&gt;
*.pl = svn:eol-style=native;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.py = svn:eol-style=native;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
&lt;br /&gt;
*.bmp = svn:mime-type=image/bmp;svn:needs-lock=*&lt;br /&gt;
*.gif = svn:mime-type=image/gif;svn:needs-lock=*&lt;br /&gt;
*.ico = svn:mime-type=image/x-icon;svn:needs-lock=*&lt;br /&gt;
*.jpeg = svn:mime-type=image/jpeg;svn:needs-lock=*&lt;br /&gt;
*.jpg = svn:mime-type=image/jpeg;svn:needs-lock=*&lt;br /&gt;
*.png = svn:mime-type=image/png;svn:needs-lock=*&lt;br /&gt;
*.tif = svn:mime-type=image/tiff;svn:needs-lock=*&lt;br /&gt;
*.tiff = svn:mime-type=image/tiff;svn:needs-lock=*&lt;br /&gt;
&lt;br /&gt;
*.doc = svn:mime-type=application/msword;svn:needs-lock=*&lt;br /&gt;
*.jar = svn:mime-type=application/octet-stream;svn:needs-lock=*&lt;br /&gt;
*.odc = svn:mime-type=application/vnd.oasis.opendocument.chart;svn:needs-lock=*&lt;br /&gt;
*.odf = svn:mime-type=application/vnd.oasis.opendocument.formula;svn:needs-lock=*&lt;br /&gt;
*.odg = svn:mime-type=application/vnd.oasis.opendocument.graphics;svn:needs-lock=*&lt;br /&gt;
*.odi = svn:mime-type=application/vnd.oasis.opendocument.image;svn:needs-lock=*&lt;br /&gt;
*.odp = svn:mime-type=application/vnd.oasis.opendocument.presentation;svn:needs-lock=*&lt;br /&gt;
*.ods = svn:mime-type=application/vnd.oasis.opendocument.spreadsheet;svn:needs-lock=*&lt;br /&gt;
*.odt = svn:mime-type=application/vnd.oasis.opendocument.text;svn:needs-lock=*&lt;br /&gt;
*.pdf = svn:mime-type=application/pdf;svn:needs-lock=*&lt;br /&gt;
*.ppt = svn:mime-type=application/vnd.ms-powerpoint;svn:needs-lock=*&lt;br /&gt;
*.ser = svn:mime-type=application/octet-stream;svn:needs-lock=*&lt;br /&gt;
*.swf = svn:mime-type=application/x-shockwave-flash;svn:needs-lock=*&lt;br /&gt;
*.vsd = svn:mime-type=application/x-visio;svn:needs-lock=*&lt;br /&gt;
*.xls = svn:mime-type=application/vnd.ms-excel;svn:needs-lock=*&lt;br /&gt;
*.zip = svn:mime-type=application/zip;svn:needs-lock=*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anneb</name></author>
	</entry>
	<entry>
		<id>https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1651</id>
		<title>Subversion configured for Windows Active Directory HTTPS</title>
		<link rel="alternate" type="text/html" href="https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1651"/>
		<updated>2007-12-08T01:56:33Z</updated>

		<summary type="html">&lt;p&gt;Anneb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to set up a subversion server on a windows machine that recognizes users from Microsoft Active Directory and uses secure http (https) to communicate with clients you can use the following setup as a template for your configuration. &lt;br /&gt;
&lt;br /&gt;
Binary files cannot be easily merged. The lock-modify-unlock versioning model seems to be the only appropriate model for these type of files. This description also includes client and server side configuration to accommodate for the lock-modify-unlock model for binary files.&lt;br /&gt;
&lt;br /&gt;
Steps to follow&lt;br /&gt;
&lt;br /&gt;
1) download and install Apache 2.2 + open SSL from www.apache.org&lt;br /&gt;
Do use Apache 2.2 instead of Apache 2.0 if you want to connect to Active Directory&lt;br /&gt;
&lt;br /&gt;
2) download the apache 2.2 binary compatible version of svn from http://svn.tigris.org&lt;br /&gt;
&lt;br /&gt;
3) copy all dll&#039;s and modules (.so files) from subversion/bin directory to the apache2.2 /modules directory&lt;br /&gt;
&lt;br /&gt;
4) copy an existing svn repository or create a new repository&lt;br /&gt;
COPY:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd &amp;quot;c:\program files\subversion\bin&amp;quot;&lt;br /&gt;
svnadmin hotcopy //computer/share/subversion/repositories/repo1 c:/subversion/repositories/repo1&amp;lt;/pre&amp;gt;&lt;br /&gt;
CREATE:&lt;br /&gt;
&amp;lt;pre&amp;gt;svnadmin create c:/subversion/repositories/repo1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5) create a authorization file: svn.authz&lt;br /&gt;
&amp;lt;pre&amp;gt;### This file is an example authorization file for svnserve.&lt;br /&gt;
### Its format is identical to that of mod_authz_svn authorization&lt;br /&gt;
### files.&lt;br /&gt;
### As shown below each section defines authorizations for the path and&lt;br /&gt;
### (optional) repository specified by the section name.&lt;br /&gt;
### The authorizations follow. An authorization line can refer to a&lt;br /&gt;
### single user, to a group of users defined in a special [groups]&lt;br /&gt;
### section, or to anyone using the &#039;*&#039; wildcard.  Each definition can&lt;br /&gt;
### grant read (&#039;r&#039;) access, read-write (&#039;rw&#039;) access, or no access&lt;br /&gt;
### (&#039;&#039;).&lt;br /&gt;
[groups]&lt;br /&gt;
group1 = harry,sally&lt;br /&gt;
group2 = romeo,julia&lt;br /&gt;
group3 = sally,julia&lt;br /&gt;
&lt;br /&gt;
[/]&lt;br /&gt;
* = r&lt;br /&gt;
@group1 = rw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6) create a SSL certificate&lt;br /&gt;
- openssl.exe included with this version of Apache does not seem to work well on windows. In order to create a certificate, you need a well working version of openssl. For me, file Openssl-0.9.7e-Win32.zip, for instance from: http://support.etouch.net/cm/wiki/support.Downloads.wiki/1021721main_Openssl-0.9.7e-Win32.zip worked well&lt;br /&gt;
- run the following commands&lt;br /&gt;
&amp;lt;pre&amp;gt;openssl req -config openssl.cnf -new -out svn.example.com.csr&lt;br /&gt;
openssl rsa -in privkey.pem -out svn.example.com.key&lt;br /&gt;
openssl x509 -in svn.example.com.csr -out svn.example.com.cert -req -signkey svn.example.com.key -days 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- copy the cert and key files to the apache2.2/conf directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7) edit apache/conf/httpd.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LoadModule dav_module modules/mod_dav.so&lt;br /&gt;
LoadModule dav_svn_module modules/mod_dav_svn.so&lt;br /&gt;
LoadModule authz_svn_module modules/mod_authz_svn.so&lt;br /&gt;
LoadModule ldap_module modules/mod_ldap.so&lt;br /&gt;
LoadModule ssl_module modules/mod_ssl.so&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
SSLEngine on&lt;br /&gt;
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL&lt;br /&gt;
SSLCertificateFile conf/svn.example.com.cert&lt;br /&gt;
SSLCertificateKeyFile conf/svn.example.com.key&lt;br /&gt;
&amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php3?)$&amp;quot;&amp;gt;&lt;br /&gt;
    SSLOptions +StdEnvVars&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&amp;lt;Directory &amp;quot;C:/Program Files/Apache Group/Apache2/cgi&amp;quot;&amp;gt;&lt;br /&gt;
    SSLOptions +StdEnvVars&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
SetEnvIf User-Agent &amp;quot;.*MSIE.*&amp;quot; \&lt;br /&gt;
         nokeepalive ssl-unclean-shutdown \&lt;br /&gt;
         downgrade-1.0 force-response-1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#redirect /repos to /repos/&lt;br /&gt;
RedirectMatch ^(/repos)$ $1/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location /repos/&amp;gt;&lt;br /&gt;
  DAV svn&lt;br /&gt;
  # SVNPath c:/subversion/repositories/repo1&lt;br /&gt;
  SVNParentPath c:/subversion/repositories&lt;br /&gt;
  SVNListparentPath on&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
	&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthBasicProvider ldap&lt;br /&gt;
  AuthzLDAPAuthoritative off&lt;br /&gt;
  AuthName &amp;quot;svn.example.com&amp;quot;&lt;br /&gt;
  AuthzSVNAccessFile c:/subversion/repositories/svn.authz&lt;br /&gt;
&lt;br /&gt;
  #at least one of your domain servers listens on port 3268 (besides default ldap port 389)&lt;br /&gt;
  #use the server that listens on port 3268 if you have more than one AD server. The service&lt;br /&gt;
  #on port 389 uses referrals to the other AD servers. Referrals are used anonymously. Anonymoys&lt;br /&gt;
  #binding will not work on most AD-servers.&lt;br /&gt;
  AuthLDAPURL &amp;quot;ldap://dc.example.nl:3268/DC=example,DC=com?sAMAccountName?sub?(objectClass=*)&amp;quot;&lt;br /&gt;
  #AuthLDAPURL &amp;quot;ldap://dc.example.nl:389/DC=example,DC=com?sAMAccountName??(objectClass=*)&amp;quot;&lt;br /&gt;
  AuthLDAPBindDN &amp;quot;CN=apache_bind,CN=users,DC=example,DC=com&amp;quot;&lt;br /&gt;
  AuthLDAPBindPassword [password_for_ad_user_apache_bind]&lt;br /&gt;
  #AuthLDAPFollowReferrals off&lt;br /&gt;
  &lt;br /&gt;
  AuthLDAPGroupAttributeIsDN on&lt;br /&gt;
  AuthLDAPGroupAttribute member&lt;br /&gt;
  SSLRequireSSL&lt;br /&gt;
  #require ldap-group CN=svnusers,CN=Users,DC=example,DC=com&lt;br /&gt;
  require valid-user&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8) Apply ldap patch for MS-AD&lt;br /&gt;
When a Microsoft Active Directory times out, it sends a TCP RST instad of a TCP FIN to the client. There is a workaround for this MS AD bug in Apache mod_ldap, see http://www.apachelounge.com/forum/viewtopic.php?t=1995 or download http://www.anneb.dds.nl/httpd-2.2.6_ldappatch_win32_vc6.zip&lt;br /&gt;
Replace apache modules mod_lap.so and mod_authnz_ldap.so with the files from the downloaded zip file.&lt;br /&gt;
&lt;br /&gt;
9) Force users to set svn:needs-lock property on new binary files&lt;br /&gt;
Binary files cannot be merged. Versioning should follow the lock-modify-unlock model. You can force using this model for binary files with the following pre-commit script as part of the svn repository&lt;br /&gt;
- create a pre-commit.cmd script in the repository\hooks directory&lt;br /&gt;
&amp;lt;pre&amp;gt;@echo off&lt;br /&gt;
set REPOS=%1&lt;br /&gt;
set TRANSACTION=%2&lt;br /&gt;
set SVNLOOK=&amp;quot;c:\Program Files\Subversion\apache2.2\bin\svnlook.exe&amp;quot;&lt;br /&gt;
set TEMP=c:\temp&lt;br /&gt;
&lt;br /&gt;
if exist %TEMP%\tempfile%2 del %TEMP%\tempfile%2&lt;br /&gt;
for /f &amp;quot;tokens=1,2 usebackq&amp;quot; %%i in (`%SVNLOOK% changed -t %2 %1`) do @if %%i==A @echo %%j &amp;gt;&amp;gt; %TEMP%\tempfile%2&lt;br /&gt;
if not exist %TEMP%\tempfile%2 goto NOFILESADDED&lt;br /&gt;
for /f &amp;quot;usebackq&amp;quot; %%i in (`findstr /E /I /R &amp;quot;\.bmp.$ \.gif.$ \.ico.$ \.jpeg.$ \.jpg.$ \.png.$ \.tif.$ \.tiff.$ \.doc.$ \.jar.$ \.odt.$ \.pdf.$ \.ppt.$ \.swf.$ \.vsd.$ \.xls.$ \.zip.$&amp;quot; %TEMP%\tempfile%2`) do (&lt;br /&gt;
%SVNLOOK% propget -t %2 %1 svn:needs-lock %%i 1&amp;gt; nul 2&amp;gt; nul&lt;br /&gt;
if ERRORLEVEL 1 (&lt;br /&gt;
echo commit denied, binary files must have property svn:needs-lock &amp;gt;&amp;amp;2&lt;br /&gt;
type %TEMP%\tempfile%2 &amp;gt;&amp;amp;2&lt;br /&gt;
del %TEMP%\tempfile%2&lt;br /&gt;
EXIT /B 1&lt;br /&gt;
)&lt;br /&gt;
)&lt;br /&gt;
del %TEMP%\tempfile%2&lt;br /&gt;
:NOFILESADDED&lt;br /&gt;
EXIT /B 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10) recursively set svn:needs-lock property on binaries&lt;br /&gt;
If you need to apply svn:needs-lock on already existing binaries in a repository, do the following on a client (not on the svn server):&lt;br /&gt;
- checkout a repository&lt;br /&gt;
- add to following line to a cmd script:&lt;br /&gt;
&amp;lt;pre&amp;gt;FOR /R c:\full\path\to\repository %%v in (*.bmp *.gif *.ico *.jpeg *.jpg *.png *.tif *.tiff *.doc *.jar *.odc *.odf *.odg *.odi *.odp *.ods *.odt *.pdf *.ppt *.ser *.swf *.vsd *.xls *.zip) do svn propset svn:needs-lock yes %%~fv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
- run the script&lt;br /&gt;
&lt;br /&gt;
11) Make sure that users automatically set the svn:needs-lock property on binary files (this is verified by the script of step 9)&lt;br /&gt;
All committers should add the following to their svn client config&lt;br /&gt;
- under windows the SVN config file is &amp;quot;C:\Documents and Settings\[USER_NAME]\Application Data\Subversion\config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[miscellany]&lt;br /&gt;
enable-auto-props = yes&lt;br /&gt;
&lt;br /&gt;
[auto-props]&lt;br /&gt;
### The format of the entries is:&lt;br /&gt;
###   file-name-pattern = propname[=value][;propname[=value]...]&lt;br /&gt;
### The file-name-pattern can contain wildcards (such as &#039;*&#039; and&lt;br /&gt;
### &#039;?&#039;).  All entries which match will be applied to the file.&lt;br /&gt;
### Note that auto-props functionality must be enabled, which&lt;br /&gt;
### is typically done by setting the &#039;enable-auto-props&#039; option.&lt;br /&gt;
*.apt = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.c = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.c++ = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.cpp = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.cs = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.css = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.dtd = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.ent = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.fml = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.groovy = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.h = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.h++ = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.hpp = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.html = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.idl = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.include = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.java = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.js = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.jsp = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.ldf = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.ldif = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.mak = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.mdo = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.php = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.rb = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.rtf = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.sql = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.svg = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.t2t = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.vm = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xhtml = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xml = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xsd = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xsl = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.xslt = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
Makefile = svn:eol-style=native;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
&lt;br /&gt;
*.launch = svn:eol-style=native&lt;br /&gt;
*.MF = svn:eol-style=native&lt;br /&gt;
*.properties = svn:eol-style=native&lt;br /&gt;
*.script = svn:eol-style=native&lt;br /&gt;
*.txt = svn:eol-style=native&lt;br /&gt;
&lt;br /&gt;
*.dsp = svn:eol-style=CRLF&lt;br /&gt;
*.dsw = svn:eol-style=CRLF&lt;br /&gt;
&lt;br /&gt;
*.iml = svn:eol-style=LF&lt;br /&gt;
&lt;br /&gt;
*.bat = svn:eol-style=CRLF;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.cmd = svn:eol-style=CRLF;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
&lt;br /&gt;
*.ksh = svn:eol-style=LF;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.sh = svn:eol-style=LF;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
&lt;br /&gt;
*.pl = svn:eol-style=native;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
*.py = svn:eol-style=native;svn:executable;svn:keywords=Author Date Id HeadURL Revision&lt;br /&gt;
&lt;br /&gt;
*.bmp = svn:mime-type=image/bmp;svn:needs-lock=*&lt;br /&gt;
*.gif = svn:mime-type=image/gif;svn:needs-lock=*&lt;br /&gt;
*.ico = svn:mime-type=image/x-icon;svn:needs-lock=*&lt;br /&gt;
*.jpeg = svn:mime-type=image/jpeg;svn:needs-lock=*&lt;br /&gt;
*.jpg = svn:mime-type=image/jpeg;svn:needs-lock=*&lt;br /&gt;
*.png = svn:mime-type=image/png;svn:needs-lock=*&lt;br /&gt;
*.tif = svn:mime-type=image/tiff;svn:needs-lock=*&lt;br /&gt;
*.tiff = svn:mime-type=image/tiff;svn:needs-lock=*&lt;br /&gt;
&lt;br /&gt;
*.doc = svn:mime-type=application/msword;svn:needs-lock=*&lt;br /&gt;
*.jar = svn:mime-type=application/octet-stream;svn:needs-lock=*&lt;br /&gt;
*.odc = svn:mime-type=application/vnd.oasis.opendocument.chart;svn:needs-lock=*&lt;br /&gt;
*.odf = svn:mime-type=application/vnd.oasis.opendocument.formula;svn:needs-lock=*&lt;br /&gt;
*.odg = svn:mime-type=application/vnd.oasis.opendocument.graphics;svn:needs-lock=*&lt;br /&gt;
*.odi = svn:mime-type=application/vnd.oasis.opendocument.image;svn:needs-lock=*&lt;br /&gt;
*.odp = svn:mime-type=application/vnd.oasis.opendocument.presentation;svn:needs-lock=*&lt;br /&gt;
*.ods = svn:mime-type=application/vnd.oasis.opendocument.spreadsheet;svn:needs-lock=*&lt;br /&gt;
*.odt = svn:mime-type=application/vnd.oasis.opendocument.text;svn:needs-lock=*&lt;br /&gt;
*.pdf = svn:mime-type=application/pdf;svn:needs-lock=*&lt;br /&gt;
*.ppt = svn:mime-type=application/vnd.ms-powerpoint;svn:needs-lock=*&lt;br /&gt;
*.ser = svn:mime-type=application/octet-stream;svn:needs-lock=*&lt;br /&gt;
*.swf = svn:mime-type=application/x-shockwave-flash;svn:needs-lock=*&lt;br /&gt;
*.vsd = svn:mime-type=application/x-visio;svn:needs-lock=*&lt;br /&gt;
*.xls = svn:mime-type=application/vnd.ms-excel;svn:needs-lock=*&lt;br /&gt;
*.zip = svn:mime-type=application/zip;svn:needs-lock=*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anneb</name></author>
	</entry>
	<entry>
		<id>https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1650</id>
		<title>Subversion configured for Windows Active Directory HTTPS</title>
		<link rel="alternate" type="text/html" href="https://www.orcaware.com/svn/mediawiki/index.php?title=Subversion_configured_for_Windows_Active_Directory_HTTPS&amp;diff=1650"/>
		<updated>2007-12-08T00:54:46Z</updated>

		<summary type="html">&lt;p&gt;Anneb: New page: If you want to set up a subversion server on a windows machine that recognizes users from Microsoft Active Directory and uses secure http (https) to communicate with clients you can use th...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to set up a subversion server on a windows machine that recognizes users from Microsoft Active Directory and uses secure http (https) to communicate with clients you can use the following setup as a template for your configuration. &lt;br /&gt;
&lt;br /&gt;
Binary files cannot be easily merged. The lock-modify-unlock versioning model seems to be the only appropriate model for these type of files. This description also includes client and server side configuration to accommodate for the lock-modify-unlock model for binary files.&lt;br /&gt;
&lt;br /&gt;
Steps to follow&lt;br /&gt;
&lt;br /&gt;
1) download and install Apache 2.2 + open SSL from www.apache.org&lt;br /&gt;
Do use Apache 2.2 instead of Apache 2.0 if you want to connect to Active Directory&lt;br /&gt;
&lt;br /&gt;
2) download the apache 2.2 binary compatible version of svn from http://svn.tigris.org&lt;br /&gt;
&lt;br /&gt;
3) copy all dll&#039;s and modules (.so files) from subversion/bin directory to the apache2.2 /modules directory&lt;br /&gt;
&lt;br /&gt;
4) copy an existing svn repository or create a new repository&lt;br /&gt;
COPY:&lt;br /&gt;
cd &amp;quot;c:\program files\subversion\bin&amp;quot;&lt;br /&gt;
svnadmin hotcopy //computer/share/subversion/repositories/repo1 c:/subversion/repositories/repo1&lt;br /&gt;
CREATE:&lt;br /&gt;
svnadmin create c:/subversion/repositories/repo1&lt;br /&gt;
&lt;br /&gt;
5) create a authorization file: svn.authz&lt;br /&gt;
### This file is an example authorization file for svnserve.&lt;br /&gt;
### Its format is identical to that of mod_authz_svn authorization&lt;br /&gt;
### files.&lt;br /&gt;
### As shown below each section defines authorizations for the path and&lt;br /&gt;
### (optional) repository specified by the section name.&lt;br /&gt;
### The authorizations follow. An authorization line can refer to a&lt;br /&gt;
### single user, to a group of users defined in a special [groups]&lt;br /&gt;
### section, or to anyone using the &#039;*&#039; wildcard.  Each definition can&lt;br /&gt;
### grant read (&#039;r&#039;) access, read-write (&#039;rw&#039;) access, or no access&lt;br /&gt;
### (&#039;&#039;).&lt;br /&gt;
[groups]&lt;br /&gt;
group1 = harry,sally&lt;br /&gt;
group2 = romeo,julia&lt;br /&gt;
group3 = sally,julia&lt;br /&gt;
&lt;br /&gt;
[/]&lt;br /&gt;
* = r&lt;br /&gt;
@group1 = rw&lt;/div&gt;</summary>
		<author><name>Anneb</name></author>
	</entry>
	<entry>
		<id>https://www.orcaware.com/svn/mediawiki/index.php?title=Main_Page&amp;diff=1649</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.orcaware.com/svn/mediawiki/index.php?title=Main_Page&amp;diff=1649"/>
		<updated>2007-12-08T00:40:05Z</updated>

		<summary type="html">&lt;p&gt;Anneb: /* HowTos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Welcome to the Subversion Wiki.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Got a question about Subversion? ==&lt;br /&gt;
&lt;br /&gt;
Since this wiki seems to lack content at the moment, try the [http://subversion.tigris.org/faq.html Subversion FAQ].&lt;br /&gt;
&lt;br /&gt;
Also, there is [http://subversionary.org another wiki] related to Subversion.  At this time, it contains more content than this wiki.  However unlike this wiki, it doesn&#039;t use the more popular MediaWiki engine, and apprently, due to spam problems, was forced to shut off public editing.&lt;br /&gt;
&lt;br /&gt;
== HowTos ==&lt;br /&gt;
&lt;br /&gt;
* Manage [[System Configurations]] like &amp;lt;tt&amp;gt;/etc&amp;lt;/tt&amp;gt; files using subversion.&lt;br /&gt;
* Setting up [[Subversion configured for Windows Active Directory HTTPS]]&lt;br /&gt;
&lt;br /&gt;
== Contrib tools ==&lt;br /&gt;
&lt;br /&gt;
* [[svnmerge.py]] - Automatic branch management with merge tracking support.&lt;br /&gt;
* [[Repository Upgrade]] - Upgrade from an older repository to latest (1.4) (Windows)&lt;br /&gt;
* [[Subclipse]] - The subversion plugin for Eclipse&lt;br /&gt;
* [[SVNKit]] - Pure Java Subversion library&lt;br /&gt;
* [http://svnnotifier.tigris.org SVN Notifier] - Notifies you about other people&#039;s commits to subversion&lt;br /&gt;
&lt;br /&gt;
== MediaWiki help ==&lt;br /&gt;
&lt;br /&gt;
This wiki uses the MediaWiki software. Consult the [http://meta.wikipedia.org/wiki/MediaWiki_User&#039;s_Guide User&#039;s Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
=== Getting started ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
* [http://mail.wikipedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [http://alfredfazio.ws/notes%3Asubversion Fast-paced overview of Subversion for experienced users]&lt;/div&gt;</summary>
		<author><name>Anneb</name></author>
	</entry>
</feed>