VisualSVN over distributed machines? - visual-studio

I'm new to SVN. I've downloaded VisualSVN SErver and VisualSVN client with TortoiseSVN.
The problem is: we are group of 4 ppl and are developing a website on ASP.Net. I want the solution file to be in a repository on a machine which can be a server (desktop). The rest are all laptops trying to gather the updated data. We are working from different locations too. I want to know if Apache Subversion can work through the Internet? How can it be configured?
We are all running Windows and Visual Studio 2008.

I'm a little confused by your question (see my comment), but if you are wondering the best way to use SVN to manage the development of your ASP.NET website, I don't see why you can't include the solution file directly in the SVN repository. When your developers want to work on SVN, they sync with the repository and bring down the entire solution (including source, SLN file, properties, etc). Then, they can work locally on their machine developing the website.
Again, your question is a bit confusing, so I am not sure how else to answer.
Update
Thank you for clarifying your question. If the laptops do not have access to a local server you can do one of two things.
If you want to use Subversion, you can setup a server that is internet-facing - AKA, it's accessible from the net. However, this does require a little bit more work as you will need to have an address for them to point to, etc. But, in essence, this is no different than accessing on a local network, it's just a different address.
Another possibility is to use a different type of source control. Git or Mercurial comes to mind. Both of these products are distributed version control systems. Basically, if you aren't connected to a network, you still "submit" your product to the control system and, then, when you can connect back to the network, you merge your changes in with the main system on the network. It works very well (though is a bit more complicated to understand than Subversion).
Hopefully that helps you. (And, if it does, you can accept this as an answer to your question, which I would appreciate.)

Subversion is designed to work effectively through Internet. Updates/commits uses delta algorithm to transmit only changed parts of tree.
Just do not forget to enable SSL encryption to prevent data sniffed.

Related

Team Development of HTML5 PhoneGap App

First, I don't know if this is the right place to make this question but, I don't see any other place where to put it.
I would like to know how could I develop a mobile HTML5 App (using PhoneGap) with another friend, without need to have a copy of the project in more than one PC.
Could I somehow host the Code on a FTP Server and then we both could work on it for example, on Eclipse?
You need to look into using a source control system of some kind. Source control comes in many flavors, but in general it allows software developers to sync code between many servers, and allows developers to work concurrently without breaking each other's environments (imagine I have to take a component offline for many hours to code on it, but other people rely on it to do their work).
The two most common source control solutions are SVN and Git. Both of these work on Mac/Linux/PC and are documented thoroughly online.
without need to have a copy of the project in more than one PC.
How should that be possible? When want to view view something on your local computer, you must have it available on your local computer. But I think I know what you are looking for, three suggestions:
Use a cloud-based IDE. Cloud9 for example is one of the best. However, all of them tend to be slow and buggy.
Just synch the files between your computers. One of the best hosted services is Dropbox, or you can install ownCloud on your own Server.
Use a version control system. This is pretty common for software development as you can easily reproduce who made which change when and why. The best option is git and Github for hosting.
I know this is months late, but check out Adobe's Phonegap Build. Build and deploy in the cloud. They also allow you to assign a development team.
www.adobe.com/PhoneGap

Integrate a Mac Computer on an Existing TortoiseSVN Repository

We're currently using TortoiseSVN for versioning our many websites. It's been only Windows users so far but we're adding another developer that uses a Mac. Is there a Mac program that will integrate with the TortoiseSVN repositories we already have?
Please do not reply with suggestions of SVN clients to use on a Mac. I am looking for a solution that works with an existing repository.
It could work but accessing a repository via file share is not recommended, highly discouraged, and unsupported. From the TortoiseSVN manuall:
Although in theory it is possible to put a FSFS repository on a
network share and have multiple users access it using file://
protocol, this is most definitely not recommended. In fact we would
strongly discourage it, and do not support such use.
Firstly you are giving every user direct write access to the
repository, so any user could accidentally delete the entire
repository or make it unusable in some other way.
Secondly not all network file sharing protocols support the locking
that Subversion requires, so you may find your repository gets
corrupted. It may not happen straight away, but one day two users will
try to access the repository at the same time.
Thirdly the file permissions have to be set just so. You may just
about get away with it on a native Windows share, but SAMBA is
particularly difficult.
file:// access is intended for local, single-user access only,
particularly testing and debugging. When you want to share the
repository you really need to set up a proper server, and it is not
nearly as difficult as you might think. Read the section called
“Accessing the Repository” for guidelines on choosing and setting up a
server.
In other words: don't. Set up a proper repository with access via SSH or HTTP and then any client will work.

How can one setup a version control system on a local network, without a server?

Edit: Ok so I learned that I guess I need an distributed source control, however are there any UI based ones, and do they allow you to merge with other users on the network?
This is kind of a two part question, so here it goes. I want to start developing a web application at home (with multiple developers). However, I don't have a dedicated server nor want to pay for on.
So first, I don't know which version control system to use for this case, as at work we mostly have TFS setup, so I am not to familiar with whats out there. What are the best free CVS/SVN tools out there?
Second, is it possible to somehow setup the CVS/SVN where there is no dedicated server and both clients store up to one week of the source code from the last check-in?
Also, it would be helpful if it could integrate with visual studio, again this isn't that important at all.
Problem:
There are Five users, one is a Server.
Server Connected: All Ok
Server Disconnected: No one can share.
What I am looking for:
No Server:
Users still have versioning based on version id of last check-in.
Users must check all version on network to make sure they aren't outdated based on their last version id.
If not check-in, otherwise merge/get latest.
If they are update checkin, and set current version id +1.
If your looking for a source control that DOESN'T have a central repo, you are looking for a distributed source control system such as Git or Mercurial.
The best free CVS/SVN tool is SVN.
Plus it's easy to setup an SVN server on any machine. Read the fine manual.
I assuming that at some point your developers will connect to each (perhaps on your LAN) to merge all your code. If this is the case I would highly recommend using a DVCS (Distributed Version Control System). The popular kid on the block is Git, but there are others like Mercurial. If you primarily develop on windows Mercurial seems to have better support. The main benefit of a DVCS is that they are designed for teams that are disconnected.
Hope that helps.
Rom
You should probably be interested in VisualSVN server. Its has free edition witch will be sufficient for all your needs. By the way, toroise SVN supports even repositories on any folder or a flash drive, so you have no need in a separate server. As for inrtegration with VS, Visual SVN can help you, but it is not free. Enjoy =)
For a low learning curve, it's easiest to make use of SVN since it's closes to the TFS model. But that also means a dedicated server. I would suggest VisualSVN server as it's dead simple to set up. Then you would need to expose the port it's running on externally to the other developer(s) outside of your home network. And for integrating with Visual Studio, look at AnkhSVN. Or stick with conventional clients like TortoiseSVN.
That would mean that any remote developers would be slowed down when interacting with the repository. That's where options like Git come in, but there is definitely a bit of a learning curve with it when you're used to a centralized repository. There are tools to bridge Git to SVN to get the best of both worlds. I have not tried to use them in a Windows environment, so I won't speak on how easy they are to use. I'm only just getting started in using Git for projects, mainly for situations where I cannot set up a repository elsewhere.
TeamCity for continuos integration by JetBrains is nice, easy to configure, and you don't need a "server", just a machine that's on. It integrates well with subversion as well. Which is a snap to setup with VisualSVN server. And the VisualSVN plugin for Visual Studio.
Have you considered using an online hosted solution? That way you don't have to worry about setting up a server, managing backups etc. There are services that offer this for free - one that I have tried myself is Beanstalk, which uses Subversion and has a free plan for up to three users with 100 MB of space. Useful for smaller projects.
As some of the replies indicated, distributed version control like Git or Mercurial is what you need. Maybe if you can explain how is your distributed team is working, another possible solution can be suggested.
For example, you mention about setting up work from home and have team at work which used to using TFS. Maybe if your work set up is consisting of most of your team at work and you alone working from home, then you can do something like:
Have SVN at work where all your team mates work with, addressing issue of complexity and learning curve
You can use git-svn at home, where you have local repository of the svn server at work and you still be able to work locally and make all kind of changes and branches..and merge only the changes you want to the work SVN repository.

Which Windows SVN server should I use? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
On the SVN Windows binaries download page, there are a few to choose from:
http://subversion.tigris.org/getting.html#windows
Are there pros and cons to the different versions provided by the different organizations?
Is there anything I should look out for?
Mainly, I just want something free that I will be running off my Vista laptop. Then I will probably do backups of the SVN files from time to time to an external hard drive.
We chose VisualSVN bec it makes it easy to use windows authentication instead of having a separate SVN user.
Other benefits is an easy to use GUI for permission management and for managing SVN hooks.
The one thing I'm not a real fan of is the web GUI. As far as I know you cannot view web based diffs, so if that makes a difference....
My friends who run a Windows shop speak highly of VisualSVN
I've just configured win32svn server according to this article by Jeff Atwood.
In contrast to VisualSVN win32svn is not so tightly integrated to Windows, orientated on terminal usage and open sourced under Apache License.
All of these solutions setup the standard Apache HTTPD server with Subversion integration. They do no real magic.
UberSVN and VisualSVN provide a pretty front end interface, but behind the scenes, it's just standard Apache setup. If you are not a CM, and don't want that to be your job, that's not a bad alternative. However, do not ever try to tweak the configuration behind their backs. They will either revert the changes, or really mess things up.
However, I use Apache httpd in order to access my Windows Active Directory. I setup my users, so their Windows account and password are their Subversion account and password. I setup a Active Directory Security Group or a Active Directory Exchange Group as my authorization database. If a user is a member of this group, they have access to the repository via their Windows login. If not, they don't have access. Clean and simple. I am no longer in the user authorization business which gives me more time to play Candy Crush ..I mean.. other CM work.
Otherwise, I might as well just use svnserve: It's faster than Apache httpd, much easier to setup, and more stable too.
If you're not going to use Active Directory as your authorization backend, you are technical, and don't mind getting your hands a bit dirty, I would use either play svnserve (and set it up as a Windows Service. No need for any of these packages.
If you are going to use Active Directory as your authorization backend (and why not?), I would use CollabNet Subversion Edge to help setup Apache httpd and Subversion and do all of my configuration manually. Setting up Active Directory via LDAP via Apache httpd isn't really that difficult, and once done, you probably never have to touch again. The documentation on integrating Apache httpd/Subversion/LDAP/ActiveDirectory can easily be found.
I suggest you look at the on line Subversion Documentation and go through it. If thinking about using the svn command line client makes you woozy, then get VisualSVN or UberSVN and let them take care of things for you. If you don't mind going all 1990 with your computer, then forget about the pretty front ends, and use CollabNet Edge.
One more thing, I am not a fan of ViewVC that comes with CollabNet Edge. It has to use file:// protocol and must run on the same server as your Subversion server software. Instead, I prefer Sventon. It can run on a separate server, and you can use the same credentials as your standard Subversion credentials. Plus, I like the interface a bit better.
Putting in a vote for CollabNet Subversion Edge, it's dead simple to set up and administer via a web frontend. I'm comfortable editing config files if I must, especially coming from a Linux environment, but it's nice not to be required to do so - CollabNet makes that easy.
We use an Apache SSPI module with the Collab.Net subversion server.
Has worked perfectly for us.
Try UberSVN http://www.wandisco.com/ubersvn/download#windows
The only downside is that is requires lot of server memory. Best free SVN server I ever tried. VisualSVN free version is OK as well.

Windows software to browse SVN repository that isn't TortoiseSVN?

Because of an unfortunate Windows limitation (no more than 16 icon overlays in Windows Explorer) TortoiseSVN is not a viable client for me on computers with the TFS shell extension installed. I've spent some time browsing wikipedia page, but there is a lot of crap on that list. QSvn was close but doesn't let you browse before doing a checkout. SmartSVN is pretty good but expensive ($79 single user). Anyone know of a standalone (not ide/shell integrated) GUI SVN client for Windows?
Just disable the TortoiseSVN icon overlays in the settings (Status Cache = None). You can use the "check modifications" or commit dialog instead to examine the status of your working copy.
In my experience (on windows XP) the icon overlays are not desirable anyway because they are either unreliable (because updated with low priority) or they slow down explorer.
IIRC, with TortoiseSVN, browsing a repository does not use the overlays, they are only used for your working copy to indicate status.
Is the problem really with browsing?
I like RapidSVN for browsing and managing repositories. It has the advantage of also being cross platform.
It meets your requirements of not being ide/shell integrated.
You could also use Ankhsvn (http://ankhsvn.open.collab.net/) if you are using Visual Studio. Works like a charm!
If you only need browsing, I'd recommend just going with a Web based tool for ease of maintenance. If you host your repository on Apache already, the default Web access that you get by just browsing to your repository URL is OK; for added features, ViewVC is pretty good.
WebSVN is the best way to just browse. Works on every platform and from any location. I highly recommend using that instead of some local client.

Resources