You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Bob Butterworth <BB...@techpro.com> on 2006/09/06 17:27:08 UTC

Subversion Beginner - Multiple users, .Net

Hi Everyone. I've been a programmer for a while now and I've recently
needed at an increasing rate version control on my projects. After some
research i've decided on Subversion. But I have a few general questions
about the whole thing.
 
Currently have I have a .net project on my local computer, and that is
where it stays. No one else can work on it but me, and occasionally I
back it up.
 
If I set up a subversion server were multiple developers are accessing
it for their projects, including me, how exactly does this work?
 
If I have the whole project with code on the server, does it get copied
down to my local computer when I check it out. I can then work on it,
and check back in the whole project? Does it then copy back up any
changed files?
 
Do I keep my local copy of the project or do I always download
everything from the server.
 
These may sound like stupid questions but i'm just trying to grasp how
this works. Thanks for all your help
 
Bob

Re: Subversion Beginner - Multiple users, .Net

Posted by Kenneth Porter <sh...@sewingwitch.com>.
On Thursday, September 07, 2006 4:39 PM -0400 Kevin Greiner 
<gr...@gmail.com> wrote:

> Definitely read the book!

With most products, that probably sounds daunting. I found the Subversion 
book (available online in several formats) to be a quick read and extremely 
approachable, with the speed of a "Quick Start" guide yet the depth of a 
reference book. "The Book" is probably one of Subversion's "best kept 
secrets". Highly recommended.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Subversion Beginner - Multiple users, .Net

Posted by Kevin Greiner <gr...@gmail.com>.
On 9/6/06, Bob Butterworth <BB...@techpro.com> wrote:
>
>
> Currently have I have a .net project on my local computer, and that is
> where it stays. No one else can work on it but me, and occasionally I back
> it up.
>

My company also does .NET development using Visual Studio 2005. This
includes both ASP.NET and WinForms. I'll give you some short answers below
but you should read chapters 1-3 of the svn book:
http://svnbook.red-bean.com/. We also use the TortoiseSVN client and some of
us use AnkhSVN.

If I set up a subversion server were multiple developers are accessing it
> for their projects, including me, how exactly does this work?
>

You install the svn server on a server that all develops can access. With
only several thousand mostly-text source files and a few thousands
revisions, our experience has been that this is a light-weight application
and does not need a dedicated machine.

If I have the whole project with code on the server, does it get copied down
> to my local computer when I check it out. I can then work on it, and check
> back in the whole project? Does it then copy back up any changed files?
>

Yes, although you need to explicity tell svn what new files should be added
to the svn repository and what files should be deleted.  Modifications are
automatically detected.

Definitely read the book!

Re: Subversion Beginner - Multiple users, .Net

Posted by si <ss...@gmail.com>.
Hi Bob,

Aside from the good advice in the previous emails in this thread,
our company/team has just gone through setting up Subversion
with Visual Studio 2005 and CruiseControl.NET integration, so
here are some (hopefully) useful tips.

- Avoid versioning App.config, Web.config, etc. instead, create a
App.config.example (or similar) and version this file, then use
TortoiseSVN to set svn:ignore on App.config.

That way everyone can have their own configuration, you won't step
on each others toes and yet still have a standard point of reference
(good for continous integration).

- Also set svn:ignore on *.suo where you keep your solution(s) and
*.csproj.user where you keep your projects. If you use AnkhSVN,
add Ankh.*Load to svn:ignore on the solution directory.

- Spend the time setting up a server, svnserve is easiest, the Apache
mod is the most widely used.

- Visual Studio 2005 likes to keep it's eye on open files, this sometimes
causes issues with Subversion clients, so if you get client-side errors
referencing a post-commit bumping problem, close the open files and
execute a TortoiseSVN cleanup. I haven't pinpointed a reproduction
scenario, but it seems to mostly happen when moving stuff around.

- Version your external libraries, this will make managing updates easier.
Projects like log4net, nunit, ncover, etc. all work well with this approach,
and it's also good for continuous integration.

- Finally, and this is very much personal preference, but I like to keep the
source code directories clean of compiled assemblies, config and doc output
etc, so instead of setting svn:ignore on the bin directory under the projects,
we have a common build directory above the solution folder, here's a
(trimmed) example Project.csproj for the Debug configuration:

<OutputPath>..\..\..\Build\Debug\</OutputPath>
<IntermediateOutputPath>..\..\..\Build\Obj\Debug\</IntermediateOutputPath>
<BaseIntermediateOutputPath>..\..\..\Build\Obj\Debug\</BaseIntermediateOutputPath>
<DocumentationFile>..\..\..\Build\Debug\Project.xml</DocumentationFile>

You'll get one warning the first time you open the solution about the project(s)
being modified outside VS2005, and the obj/Debug directory gets created
even though it's not used (known VS issue, hopefully fixed next version), so
you have to set svn:ignore on it. A bit kludgy, but I find the effort worth it.

Hope that helps.

peace
si

p.s. Along with "the book", the TortoiseSVN help is also very useful.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org