TortoiseSVN: Tweaking the Context Menu; Global Ignore

If you use TortoiseSVN alot like I do, then you’ve probably often wished you could put more frequently used items in the first context menu that comes up when you right click on a file in Windows Explorer. By default only update, commit, and checkout are there. You can choose which items appear in the first menu and which appear in the TortoiseSVN sub-menu by selecting Settings, Look and Feel. There you can check and uncheck items to determine whether or not they are on the sub-menu. I got rid of Checkout and included add, delete, rename, and diff.

Another time saver available in settings is Global Ignore Pattern. Items matching this pattern will automatically be ignored when you commit. I currently have mine set to:

*/[Bb]in [Bb]in */obj obj */[Rr]elease *.user *.suo *.resharper */_ReSharper.* _ReSharper.* *.bak *.dll *.pdb.

Windows HTTP Subversion Install

PS (04/04/2009): Just use VisualSVN Server — it takes all the pain out of installation

——————————————————–

I wrote this several months ago after spending more time than seemed reasonable getting subversion running.  Enjoy…

 Install Apache 2.0 (not 2.2): http://httpd.apache.org/download.cgi
Select public on port 80 option.  If you already have a web server running, you will get an error.  Ignore.
After install completes, Select Program|Apache|Configure|Edit..config
Change Listen 80 to Listen 8080 (or some other port), save, and restart the service using the apache feather icon in the tray
If nothing shows up in tray, run this: “C:\Program Files\Apache Group\Apache2\bin\apache” -k install -n “Apache2” and then you will see it in the tray.
Surf to http://localhost:8081/ to verify apache install

Install Subersion: http://subversion.tigris.org/files/documents/15/31465/svn-1.3.1-setup.exe

Install Tortoise: http://tortoisesvn.tigris.org/

Edit httpd.conf again and add this at the end:
<Location /svn>
  DAV svn
  SVNPath C:\SubversionRepo
</Location>
where /svn is the virtual (web) path you will use to access the repository and C:\SubversionRepo is the local filesystem path to the repository.  Restart the Apache service.

Verify that you can access the repository via http by opening windows explorer, right clicking, selecting TortoiseSVN|Repo-brower.  Type in http://localhost:8080/svn.  Right-click the top level and select Create Folder.  Enter TestApp and press OK.  If the folder creates, everything is working OK.

Now, the final step is to add digest authentication to Apache.  Open httpd.conf and uncomment this line:
LoadModule auth_digest_module modules/mod_auth_digest.so
Next, add the following lines (subbing in your own “domain” EG AcmeSoftware) to the <Directory “C:/Program Files/Apache Group/Apache2/htdocs”> secion:
  AuthType Digest
  AuthName “domain”
  AuthDigestFile “C:\Program Files\Apache Group\Apache2\passwd\passwords”
  Require valid-user

Now, you must use the command line to add users and passwords.  First, create the following directory: C:\Program Files\Apache Group\Apache2\passwd.  When adding the first user, run the following:

“C:\Program Files\Apache Group\Apache2\bin\htdigest” -c “C:\Program Files\Apache Group\Apache2\passwd\passwords” domain username

For subsequent users, remove the -c or you will recreate the file and lose the first user already stored in the file.  Now, restart Apache, browse to the repository using TortoiseSVN from Windows Explorer.  You should now be prompted for a user id and password.  Check “save authentication” to avoid being prompted for every access to the repository.  Even after you check this the first time, you will get prompted one more time on your next access to the repository.

You can do everything you need to do to manage the repository via TortoiseSVN.  Don’t get distracted by other things like WebSVN, Cygwin, Ankh (which is slow and buggy) or anything else.  Subversion + TortoiseSVN = complete solution.

If you do not have a static IP and you want to access your repository from remote locations, visit DynDns.com.  If you are behind a NAT router, you can probably configure your router to forward all incoming requests on the port you specified in the steps above to a specific private address.  Note that if you are using DHCP to assign IP private addresses to your computers, you will need to reserve a specific private address for the machine hosting SVN.