Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've started implementing svn in my school projects. In the industry, typically how many programmers are sharing the same svn? Are the version numbers related to how many programmers are working on a program?

Also, would svn be considered to be a part of Agile development?

share|improve this question

closed as not a real question by Caleb, Yannis Rizos, Spoike, ChrisF Nov 22 '11 at 9:22

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Share the same "svn"? This obviously does not depend on "the" svn but on the size of the project. –  Matteo Nov 22 '11 at 7:41
    
How many programmers work on the same SVN server solely depends on the project size. But I'd say if you don't have 100+ people working on the same repository, you shouldn't even start thinking about it. To answer your second question, no. And your third question, SVN or some other Revision Control System should always be part of any software development. Also, this question should be closed as "Not a real question". –  Bobby Nov 22 '11 at 9:02
    
@Bobby - if you have 100+ people working with the same Subversion repository, you may have a problem. Subversion has significant limitations compared with distributed version control systems - basically merging is a pain and in my experience that's sometimes a fatal flaw. Personally, I think the optimal number of people using a Subversion repository is one - using a USB stick, and using it to manage personal projects and general files. If a project outgrows Subversion, there's tools to convert - it's not necessarily trivial if you haven't followed expected conventions, but it can be done. –  Steve314 Nov 22 '11 at 9:12

3 Answers 3

We have a mix of version control solutions and some of our SVN repositories are used by 5000+ developers on a daily basis. Work is done on the trunk and we make weekly release branches.

The revision numbers are approaching 300k.

If we had 100 developers, we'd likely still be at a high number as we check in at the end of every day and automated nightly processes also cause commits. So the revision number is more a function of the age of the repository and commit policy rather than number of users.

Conversely, we have other per-team repositories for different projects and we've managed to get into branch/merge hell with these with only 25 developers. So we're moving those to git.

share|improve this answer

What do you mean by svn? Do you scope to svn server, repository or branch? In all cases the answer is generally same: all developers working on the same "code" where the definition of code sizes together with the scope.

  • Branch = feature, proof of concept, refactor, stabilization
  • Repository = project, solution, set of very closely related projects
  • Server = group, department, set of projects, etc. - this is only matter of choice if you want to have single SVN cluster for whole company or not

SVN is version control system and version control system is considered as a part of any professional SW development regardless of the chosen methodology. In agile version control system is a must because:

  • You should maintain stable version of the code. Stable version = version with only features approved as done. All features which are not done (under development) should be held elsewhere. In case of SVN those features are developed in separate branches and merged to the main branch (trunk) when completed.
  • Version control system is necessary prerequisite for continuous integration which is considered as important part of agile development.

Are the version numbers related to how many programmers are working on a program?

This is part of your question I don't understand. Version numbers are related to number of commits to version control system. Commits should be frequent to get feedback from continuous integration often. Frequency of commits depends on number of developers working on the same code because if you share the code with someone else you should commit only working code (at least the code which can be compiled). This is some disadvantage of SVN where developers don't have their own shelf or local repository for work-in-progress. It is usually handled with a lot of branches or proper commit policy.

share|improve this answer

I don't know whether any reliable studies or statistics are available with regards to how many developers you typically have on a single Subversion server or repository. Personally I have worked with teams from 2 to over 50 people on a single repository and there were several projects hosted on the same server. I'm sure it scales well beyond that.

If you refer to the numbers that SVN uses then you probably mean 'Revision' numbers. These are both a particular set of files but can also be interpreted as a particular change set. There is no relation between the revision numbers and the number of people that can share a single SVN server or repository.

Subversion can support different methodologies, including Agile methodologies. Equally all Agile methodologies can use different version control systems (VCS). Both concepts are independent or orthogonal if you like.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.