What are your experiences running SVN on Windows? - windows

I'm curious to hear the experiences of those who are currently running their SVN server on Windows.
Jeff Atwood has a post on how to setup SVN as a Windows service. It's a great first step, but it doesn't touch on other topics, such as:
What to use for a web-based repository browser? WebSVN can work on Windows, but it ain't pretty.
How to manage the passwd file?
Is it possible to integrate with Active Directory without running Apache?
Strategies for backing up the repository.
Useful global ignore patterns for Visual Studio development (suggestions here, here, and here for example).
Our company switched from SourceGear Vault to Subversion about one month ago. We've got the basics down pat, but would love to discover people's tips and tricks for running SVN in a MSFT world.

Use VisualSVN Server. It integrates with Windows authentication and it handles all the apache setup. It's as painless as SVN can be on Windows.

VisualSVN is the way to go. The built-in Active Directory support is very easy to use.

I have found that VisualSVN is about 50% slower than running SVN as a native service. I always assumed
that was because of accessing via http:// with Apache, which seems like it would have to be slower
than accessing via svn://, which is native TCP/IP.
The Experiment
In the last 30 minutes, here's what I did:
Installed VisualSVN on port 8080, side-by-side with my existing SVN install
Imported three existing repos into VisualSVN
Kicked everyone else off the server
Did side-by-side comparisons of a full svn checkout
Results
Repo 1: 652 files, 273 directories, 60.1MB
23 seconds for VisualSVN over http://
16 seconds for SVN over svn://
Repo 2: 4623 files, 964 directories, 127.9MB
2 minutes, 18 seconds for VisualSVN over http://
1 minute, 30 seconds for SVN over svn://
This is on identical hardware, with the exact same repository. I like how easy VisualSVN is, but AD integration and GUI aren't worth a 50% performance hit.
Anyone else seen this difference? Am I doing something wrong just following along with the default installation options?

I have a fairly indepth tutorials on my blog http://tv.inner-rhythm.co.uk/ on how to set SVN up with Apache and Trac which we use at my company which works for us.

I use a combo of VisualSVN and Tortoise. It doesn't integrate well with visual studio but you can use other plugins/apps for that.

Trac is certainly the best web based project management software I use, it integrates with subversion so you can see timelines of commits and diffs of each versions, it allows tickets and bug reports, and has a built in wiki.
http://trac.edgewall.org/wiki/TracOnWindows
A little knowledge of python and it is easy to get up and running (if your on windows though, use the tracd server: http://trac.edgewall.org/wiki/TracStandalone (this link will show you how to install it as a windows service).

I recommend TortoiseSVN. It adds SVN capabilities into Windows Explorer. In addition TortoiseSVN check to see if the IDE you are using has support for SVN.

Rich Strahl just posted a blog entry on Running VisualSVN Server for Subversion Source Control. Worth a read:
http://west-wind.com/weblog/posts/480534.aspx

For backing up, I wrote a combination of a batch file and a VBScript that runs once a week as a scheduled task. It:
Scans through a particular folder on the file system recursively looking for SVN repositories (we have a multitude of small repositories, as we found that one uber-repository quickly became difficult to maintain and intolerably slow when used with TortoiseSVN);
Uses svnadmin hotcopy on each repository found to create a backup;
7zips all of the backups into a single archive;
Mounts a share on a SAN and copies the archive over;
Deletes all of the temp files;
Emails a "success" notification.

VisualSVN Server + Trac + TortoiseSVN + Ankhsvn.
Done. Smooth as silk. What Visual SourceSafe should have been.

I think you are seeing the difference betweeen the svn protocol and hosting the svn protocol on another.
Similar performance decreases when using svn+ssh compared to svn.
The ease of setup, has made it a no brainer for my team, we just threw it on a vm and ran.

Running SVN under apache really isn't that hard. And you can use mod_auth_sspi to integrate with active directory.

Related

Version control system help for a single developer

I'm currently a single developer working with the following.
Mac for all computing / code requirements
Eclipse / Dreamweaver for code editing
Windows Server 2008, CF8 IIS for my dev server
Currently when I develop all my apps, I'm starting to find that I'm really in need of an VCS to manage the code as I'm playing that fun game of simply renaming files with v1, v2 etc but this is becoming a nightmare when I start work the next week as you can probably imagine.
My issue is, I'm not sure where to start, what VCS should I use as I would like to store everything on my local network and as my code writing machine is a Mac, and my dev server is a windows machine I'm not sure what products should I look at for an VCS.
If anyone out there is in a similar position i would love to hear how you have your environment set up so you can manage your code as this is proving to be a bit of a nightmare..
thanks in advance
I have the same requirement and setup.
I use Visual SVN Server on my dev machine to host all of my repositories. (Windows 2008 R2)
http://www.visualsvn.com/server/
I use TortoiseSVN on Windows for general SVN tasks:
http://tortoisesvn.tigris.org/
I use AnkhSVN for Visual Studio SVN support:
http://ankhsvn.open.collab.net/
I use the built in SVN command in Mac for general SVN tasks:
http://svnbook.red-bean.com/
On Mac I also use Versions for a graphical SVN front end:
http://versionsapp.com/
Everything except Versions for Mac in this list is free.
As for the client, you can use the subversive plugin for Eclipse. Simply go to Help -> Install New Software -> (Select your version of Eclipse) -> Collaboration -> Subversive. Very easy to use.
There are many, many SVN options for windows. http://willperone.net/Code/svnserver.php This tutorial refers to TortoiseSVN, but that's just one option of many. Also consider that running it under IIS may not be desirable (http://stackoverflow.com/q/2165540/684934).
I would sign up for a free hosted SVN service
http://www.atlassian.com/hosted/bitbucket/
And use either a SVN plugin or a Tortise / SmartSVN tool to commit.
Commit your code daily, or whenever you get to a working set. You will have unlimited history etc. Its also great as your happy to delete chunks of code / files when you think they aren't needed, and if you find they are needed later, you can still get them.

git server between laptop and PC (MS Windows 7)

I have git on my laptop and on my PC. I just want to sync (push/pull) them without using any other server. Both of my laptop and my PC uses Windows 7. Is there any simple solution for me? I can not go through guides like this
http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/
because they to install and configure many things.
Regards,
I use dropbox for this task. My dropbox contains the git repositories, which are cloned to each host. Then you could easily push and pull against it.
If you try this approach you have to create a bare repository in your dropbox. Add this as remote to your local one.
See also Using Git and Dropbox together effectively?
You can use the local protocol (i.e. a shared network path between your two PC).
I recommend pushing to:
a bare repo (you set one bare repo on each side)
actually a bundle (which is a bare repo represented as one file)
Then you can use dropbox to save and keep that bundle in sync if you want: it is much easier to backup one file than a all .git content.
WindowsGit.com offers a $9 installer for setting up a git server that is definitely faint-hearted friendly, unlike Mr. Davis's excellent tutorial ;) It takes under five minutes, and all the steps fit in a half-page of instructions. It's hard to mess up, and has support.
It sets up a dedicated SSH server which only allows acess via the public keys you provide. It has an isolated copy of Git so it won't interfere with whatever else you have installed.
It's fast, clean, secure. It's GPL-licensed, but the binaries cost $9, which pays for some of the the hosting, support, and development costs.
I'm the webmaster for the site, so I'm obviously biased. I'd love to hear about any alternative or similar products out there, though.

Experiences with the various ways of running svnserve on Windows

Is there anyone out there that can share experiences with the various flavours of running svnserve on Windows. I'm using it mainly for a small hobby project that I share with friends, so it will run on my desktop.
Using the Collabnet Subversion Edge seems a bit heavy weight. Any drawbacks in just run 'svnserve'? I recently found VisualSVNserver which seems to add some easy administrative functions.
I have good experience with VisualSVN server, very easy to set up and configure user accounts.
It is also very easy to upgrade, just run the latest installer and you're done.
With VisualSVN you can run HTTPS with a self signed certificate. If you just run svnserve you're left without encryption and that is not recommended if you plan to access your server from the internet.
Keep in mind that whatever solution you choose they all use standard svn as the backend and you can easily move your repositories from one solution to another.
If you plan to make your project open source you can host your code at sourceforge or codeplex.

Setup an SVN Server?

Does anybody know how to setup a basic SVN server on my windows pc? I want to create an SVN repository to store the code for my home projects I've got lined up.
Anyone know how to do this?
Install VisualSVN Server. The server part is free. You can also just use any SVN tool to just create local repositories on your file system if you like. My favorite client side tool is TortoiseSVN.
I can strongly recommend VisualSVN. It's very easy to setup, configure and use.
I've installed it recently and have found it utterly pain-free. SVN client-wise, I'd recommend TortoiseSVN. It integrates directly with Explorer and is, again, easy to use.
If you're working with Visual Studio, AnkhSVN is a great client that integrates into VS and doesn't seem to have any problem with being used side-by-side with TortoiseSVN.
I use VisualSVN on my Windows 2008 server and it works great. I then use TortoiseSVN on my client machines. The installation is painless and you should be up and running in no time.
If you are the only one accessing the repository all you need is tortoisesvn. You can make a local repository anywhere you want just by right clicking and selecting "Create Repository Here" then just use the file path for the URL.
I would also recommend Visual SVN if you like to get SVN installed on your Windows PC. There is a nice tutorial that describes installation and configuration process.
However think twice before hosting your product locally as that isn't the best option.
I would also Check out Assembla. Online hosting for both SVN and Git. I have used both VisualSVN and Assembla for personal projects.
Use ubersvn for personal use it is working fine and it's freeware.
The program contains all the dependencies needed to set up and run an Apache Subversion server on Windows, Linux or Mac OS X operating systems
.Check this here
What is the final veredict? for a single user local repository what would be the best option:
just create local repositories with TortoiseSVN (simpler and less
resource consuming)
install VisualSVN server to get the extra functionality it offers
(for example, the automatic backups are quite interesting..)
The idea of using VisualSVN server in my local machine with the automatic backups stored in a google drive folder in order to keep the repository in case of catastrophe sounds good, but maybe is a bit overkill.. is it heavy the server initialization? the machine is only booted while I am working in my spare time.. if the server takes no negligible time to start every time I turn on the PC maybe the first option is better.
Check Beanstalk it's not really an answer to the question you asked, but it might save you a lot of trouble. You could also check the VM marketplace, there are many virtual machines that would get you up and running super fast.
Here's also a very nice one called PMRepo, it includes Trac, Subversion, and Hudson in one VM.
If you want to create SVN repo, you can use this VisualSVN
By using this tool, you can easily create SVN repo and it will give it's REPO URL. so you can use it for cloning. It is the easiest way to create repo in any machine and use the its repo URL
before setting up SVN you need:
1.Install Putty http://www.putty.org/
2.Creat Droplet on Digital Ocean
3.Install Apache,Install PHP,Install phpMyAdmin
after that follow steps on below link:
https://progtec.wordpress.com/2015/10/18/how-to-setup-svn-server/

In what OS should I host subversion?

I have decided to go with Subversion for a source control repository for my personal and side projects and I'm now trying to decide what OS to use. Currently my file server for my home network is Windows 7 beta. I'm wondering if I should wipe it and install Windows Server 2008 instead? Basically I'd like to know if there are things I could take advantage with a server OS that I can't with Windows 7. First thing that comes to mind is accessing subversion remotely with a VPN connection.
I'm a .net developer, but have dabbled in Linux a bit so I'm not completely turned off to the idea of an ubuntu or debian server...
I imagine the installation and configuration process might go off with fewer hitches if installed on Linux, just because of the package management, but that's assuming some experience with the package system of $whatever_distro. If you're comfortable with Windows, Subversion works perfectly well on there. I've set it up on both, but prefer the Linux installation process (easier Apache integration, in my view), but I had pre-existing Linux experience.
If you're familiar with Windows, I bet you'll find the installation and configuration process easier there. As others have said, many of the tools are cross-platform.
You can run a Subversion server on Windows or Linux (or whatever) so it really doesn't matter. Pick whichever one you already have and feel most comfortable with. Since you are a Windows developer I see no real reason to toss Linux into the mix though.
If your goal is to minimize the amount of work you put into the maintenance of subversion, go with the OS you are most comfortable with. Many maintenance scripts, and subversion hooks are written and available in perl and python which are available for both windows and linux.
One advantage to the Windows server OSes over their client counterparts is that the client OSes are limited as to the number of inbound connections. If you are going to be the only person working on the repo, this may not make a difference. However, if there are multiple people, then this would be an issue. XP Pro/Vista Ultimate are limited by Microsoft to 10 inbound connections. I cannot speak for Windows 7.
To make life easy, try VisualSVN Server. For personal projects there's no reason to setup a separate server just for SVN.
Windows 7 will be able to host Subversion with no problems whatsoever..
If your file-server is already setup and working under Windows 7, I'd say stick with that.. Adding SVN is no reason to install a new OS
You don't need a server at all to use subversion.
If you've already got a file server on your home network, and you're doing this only for you and your personal projects, just use a subversion client such as TortoiseSVN and create your repository (or repositories) on your file server via network share (or mapped network drive, etc).
I wouldn't recommend this for multi-user setups (unless each has their own repository), but for a single user this is the simplest option. And using this approach, to answer your question, you wouldn't gain anything by switching to a server OS such as Windows Server 2008.
I'd actually recommend going with a hosted Subversion provider instead of setting up Subversion on Windows or getting a second server for that purpose. I work for ProjectLocker, but if you Google "subversion hosting", you'll see there are a number of providers that offer free or reasonably priced solutions. The advantages:
It's a hosting provider's primary job to keep your code safe, secure, and accessible, so they focus on uptime, backups, and security monitoring so you don't have to
You don't have to learn how to be a system administrator or Subversion administrator; several providers have user interfaces that make it easy to manage users and permissions.
Hosting instead of DIY lets you focus on what you actually care about: writing great software
I suggest you take a look at ProjectLocker and some of the other providers and decide which one is right for you. You may decide that doing it yourself is the best option for you, but for many people in your situation, a hosted solution has met their needs.

Resources