Your experience on using configuration & VCS tools - version-control

I am doing my study's final year project and would like to do a little survey here. The topic is about configuration management and version control system for an industrial product (such as a piece of software, a furniture design, a car engine or even an aeroplane design etc...)
1.) What is you field of expertise (IT, engineering, manufactuing etc..) and what is the configuration management and version control system you use (previously or now) for your work?
2.) What is your opinion/comment (good, bad, what is it lack of or what can be improve etc...) about them? Much appreciated if you can include some real life examples for your opinion/comment.
Of course you are welcome also if you simply wish to share your thought on the current configuration management and version control system in market.
Thanks all in advance for your help.

I'm in the Computer Security field, and we use Perforce. It's pretty good for my needs (I'm a Development Manager) - supports easy branching (not as easy as git, but we don't really need something that flexible), the conflict resolution is pretty good, and the command-line tool lends itself to easy scripting.
The downside is the price - from what I hear, P4 is rather pricey (I'm not involved in purchasing, so I don't know the specifics), and I don't think we're getting anything out of perforce that couldn't be found in an open-source solution (again, I look at git). However, we're a large (>1000 person) software development company, we have offices scattered across the world, and perforce is quite entrenched already, so I don't think we'll be switching any time soon.
In the past, I've used Perforce at a different company and Visual Source Safe (awful!).

I'm not sure this is a good topic for SO... In any case:
For developing software we're very happy with git. If your developers are particularly inexperienced or you have "people who need graphical user interfaces" on your team you might be happier with Subversion.
For tracking our system configuration files (DNS, puppet, nagios, that sort of thing) we use Subversion.

About tracking configuration files with version control system: that is not what VCS are for, but for example for Git there are many tools built on top of Git to manage configuration files: IsiSetup, etckeeper, and other that can be found e.g. on http://git.or.cz/gitwiki/InterfacesFrontendsAndTools web page.

This question might extend to less technical focused, semantic markup and generative designs.
Software and Systems Technologies:
[D]VCS'es
Git is, by far, the most popular DVCS in open source these days. [Thanks Linus!]
Mercurial [Hg] is functionally almost identical to Git due to history.
Bazaar [bzr] is another DVCS similar to Git and Mercurial.
Subversion [SVN] is a CVS common in small-to-large businesses.
Perforce [P4] and ClearCase are common is giant, traditional organizations.
Fossil is for the "ultra-cool" startup daring to be different.
Older VCS'es
CVS [not to be confused with CVSNT] is a predecessor to SVN.
RCS is the non-networked predecessor to CVS.
System Configuration Management
Cfengine 2 and 3
Puppet
Chef
MCollective
Chef knife
fabric
Software Configuration Management
Java
Ivy
Maven (mvn)
pom.xml
Python
pip
setuptools
virtualenv
C/C++
autotools
Ruby
capistrano
rake
rubygems
rvm
Haskell
cabal
Erlang
epm
Node.js
NPM

Related

Need simple version control tool for own development project (site)

I am doing a project in my spare time, and I need version control. Mainly I need some kind of sync that keeps remote / local files synced up since I make changes both on the server and locally.
Environment is Windows 8, 64bit, main dev tool is Dreamweaver, and the servers are on the host at the moment (although I am thinking for setting up a local db and server).
I don't want anything fancy, or complicated and only this very basic functionality is needed. Just for it to keep track of whether the server version and the local version is most recent, possible warn me if I am about to make a version control mistake.
You say that you need "some kind of sync that keeps remote / local files synced up" with simple workflow. Take a closer look at Apache Subversion (SVN) then; SVN is a storage and a time machine for your sources and is a great solution to organize your code and development process. Read SVNBook!
Adobe Dreamweaver supports SVN out-of-the-box, BTW. There is a good article series about using Dreamweaver with SVN:
Using Subversion with Dreamweaver CS5 – Part 1: Introducing Subversion,
Using Subversion with Adobe Dreamweaver CS5 – Part 2: Configuring Dreamweaver to use Subversion.

Best sourcesafe system for iphone xcode

which is best sourcesafe system for iphone xcode on backup and proper check-in & check-out on codes
Regards,
sathish
it appears that you're using 'sourcesafe' as a generic term for version control.
for version control of xcode projects:
i have used cvs, subversion, and now git (also serving as a front-end for other systems).
git is my first choice (it is distributed, and quite fast).
svn (subversion) is my second choice - you may have more coworkers/projects which prefer svn, although git may also be used as a svn client.
lastly - i prefer using dedicated visual clients over xcode... xcode seems to be busy doing other things. it is usually faster to disable vc in xcode, and hop to a terminal or other client while xcode builds/debugs/updates indexes, etc.
XCode supports CVS, Perforce and SVN out of the box. Out of the three, I think SVN is the most popular choice.
Setup your project.
Delete the build folder.
Setup repository.
Import project to repo.
Checkout project from repo so you'll get a versioned copy.
Well, first - it is not called sourcesafe system, but version control - way of controlling evolution of source code and its versioning. Sourcesafe is a specific product by Microsoft.
Second - version control is data agnostic. That means you can use any system you know. The best tool is the one you know well.
That being said, there are some advantages in using specific version control systems as Subversion and Git, because those two are going to be supported in next version of Xcode (version 4).
Current Xcode (version 3) has support for Subversion, CVS and Perforce. If you are familiar with any of these, use them, but do not restrict yourself only to these. Stability of version control support in Xcode 3 is mediocre, at least with Subversion which I've used. Xcode 4 is going to be a huge improvement in this area.
Lots of developers, me included, prefer not to use integrated support for version control in Xcode (or any other developer tools), but use specific clients - like Versions for Subversion, or command-line tools for Git.
I want to comment on use of Git, which I personally use and love. It is a distributed system, and for beginners its concepts might be a bit hard to grasp. Consider the experience of your teammates when deciding to use it - for lots of teams it's better to use something more traditional like Subversion.
SmartCVS is also one of good tool which we use for co working with teammates

IBM's RTC and Microsoft's TFS 2010

What in your view are the most important differences?
Need to make an expensive decision...
Information:
We have both Java and .NET Projects (few more .NET)
Very interested in project life cycle management.
Migrating from ClearCase
Both TFS and RTC are CRRM integrated to development environment (Visual Studio or Eclipse): they provide:
Change Management (CM)
VCS (Version control system)
Release Management (RM)
The difference is mainly in their architecture, where:
TFS provides a server SDK for facilitating integration with Visual Studio
RTC is build on top of an open-source application HUB able to aggregate any kind of tools (RTC baing the IBM Rational commercial implementation of Jazz)
The challenge in both CRRM tools is to manage the necessary bridge you will have to setup for various legacy tools (like an existing ticket system for instance).
Stay away from Accurev, it is a nightmare, as a developer with personal daily battles with it. Git, Mercurial, Darcs, or SVN are much better choices. As far as all of the "features" of Accurev, you likely won't ever miss them, you'll be too busy swearing.
RTC is Visual Studio friendly, and TFS is Eclipse friendly:
(RTC visual studio integration listed here)
https://jazz.net/downloads/rational-team-concert/releases/3.0
(TFS eclipse integration detailed here)
http://teamprise.com/ (purchased and renamed by MS)
I'd personally rather work with TFS, and I write integrations with version control systems for a living, and have touched both of these systems in a deep way. Ask if you want the details.
If you have a choice in the matter, go with Mercurial. Git is fantastic, but I found the Windows experience lacking. Get a separate bug tracker.
If you have a choice but must have version control integrated tightly with tickets, try http://fossil-scm.org/ - far less pain than either TFS or RTC to setup and maintain, though the IDE integration simply does not exist. But it competes solidly on core features with them in about 1 megabyte of download.
TFS doesnt have any support for eclipse or any such editors yet, (they are about to come, but no news yet). So which editor you use for your java projects that matters here. But Microsoft is coming up with teamprise which can let you connect TFS (which can work better for your java+.net)
And ofcourse for .net projects, TFS is the best, eclipse support for .net/c# is bad, we are using TFS and am lot happy with 2010.
I think for RTC dont know how much support is there for .net editors (VS or any other you prefer) but with TFS, you can certainly make .NET project work great and you can find Teamprise + TFS to work with eclipse also.
Is it really a question? Not nagging, but what is your toolstack to start with. What versions we talk about? (note Visual Studio 2010 and TFS 2010 are just around the corners - both a lot better, still usable for .NET 2.0 upward).
Without more information you get tons of idiotic little feature lists - because we dont know how to answer properly in the big picture. This is like "what are all the differences between a BMW 3 and a Mercedes SLK" - TONS of small things, TONS of relevant things, but what do you want? ;)

Revision control and hosting comparison [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I know that this question has been asked many times before in different guises and that I'm an ignorant n00b for thinking that I could add anything to the discussion. However, I'm interested not only in the version control system but also in its hosting options, compatible applications, and Windows compatibility.
If you don't have experience with more than one system, tell me what you use: version control system, code hosting, implementation (vc program), and OS.
I only have a few constraints:
I'd like to use a program that works well in both Linux and Windows. That means at least an equivalent command-line interface.
The implementations must be stable enough that I don't have to constantly re-compile on Linux and I never have to compile on Windows.
The version control must have at least one compatible free code hosting site (for open-source projects). If the hosting site itself is open-source, that would be ideal.
The version control standard must be open-source.
Sorry if I sound like a demanding brat asking for other people to make his decisions. I just want to learn from your experience so that I don't have to switch version-control systems repeatedly.
What major, Windows-compatible version control system would you recommend?
First off, you might benefit from this recently published paper in the ACM Queue:
Making Sense of Revision-control Systems
I'll outline the two which I know the most about, others can tell you about the rest.
SVN:
Probably the best windows support out of all modern open source SCM's
Simple work flow similar to most standard SCM's
Many free open source hosts: http://code.google.com/projecthosting, http://unfuddle.com/about/tour/plans
http://www.svnhostingcomparison.com/
Many good clients. Tortis SVN, Subclipse, straight cli and many more.
GIT:
Extremely powerful SCM
Full source history in every checkout of the source tree.
Not the greatest windows support, but making great strides of improvement currently. http://code.google.com/p/msysgit/
Many free hosts: github, repo.or.cz
The current "cool kid" on the bock.
It sounds like you might just want to go with svn.
It sounds like you just want to have stuff under version control, this way you won't have to worry about the learning curve associated with GIT.
Others to look at, but I didn't detail because of general lack of windows tools: Mercurial, Darcs, Bazaar.
If you do check out mercurial you can use bitbucket and google code as a host.
One of the most used / known revision control system is probably Subversion (SVN)
I use it everyday on both Linux and Windows (for both personnal and professionnal projects), both in CLI and with graphical tools.
Windows : I often use TortoiseSVN
Windows/Linux : I generally work with Eclipse, and its Subversive plugin
Windows/Linux : the "svn" command in CLI is great too, especially when you want to use some scripts to automate struff.
Note that I never had to compile anything for SVN to work (on Windows, using TortoiseSVN is OK ; on Linux Ubuntu, the packages bundled by Ubuntu are OK too)
For hosting, as SVN is used by lots of projects, you have lots of possibility, especially for open source projects.
For instance, Google code allows you to use SVN to host your projects
Same for SourceForge (see), if I remember correctly.
You have other possibilities, of course, like, for instance, Assembla
If you want something a Distributed revision control software, you can take a look at tools like Bazaar, Mercurial, and/or Git. Each one of those is used by some big projects (well, at least for Bazaar (MySQL uses it, I think) and Git (Linux Kernel uses it)).
I've used Bazaar on both Linux and Windows, but only in command-line ; never had any problem with it. I know there are graphical tools for both Linux and Windows, but never used those much, so I can't really say more.
Still, if you don't need a distributed system, I would go with Subversion, with absolutly no hesitation.
I use Git, mainly because I develop on many workstation (at home or at work), and a DVCS is much easier for replicating my repository, but also for the branching, merge facilities, and speed for initializing and importing code into a new repository.
I'd like to use a program that works well in both Linux and Windows. That means at least an equivalent command-line interface.
"git" is your CLI and works in a DOS session as well as in a bash one.
The implementations must be stable enough that I don't have to constantly re-compile on Linux and I never have to compile on Windows.
msysgit is now quite stable on Windows, as stated in the question "Git under windows: MSYS or Cygwin?" (no need for Cygwin).
The version control must have at least one compatible free code hosting site (for open-source projects). If the hosting site itself is open-source, that would be ideal.
GitHub is a good example of free code hosting
The version control standard must be open-source.
Check out the sources of Git at git.git.

What is a good alternative for SourceSafe on a USB Drive?

I like to keep my source files on a USB drive for the portability. To date I have been using Visual SourceSafe for this purpose. What is a good alternative to VSS that fulfils these criteria:
Entire database can be held on a USB "pen" drive
Code / documentation duplicated on local drives
Does not require a central server
Easy to backup and restore using standard backup tools
Integrates with Visual Studio
Has a small footprint
Easy to clean the database and keep small
Compatible with Windows XP, Vista and Vista x64
A good reference on setup would be good too.
I would use SVN (Subversion).
You can use SVN in "file" mode (w/o using the network).
combine this with tortoiseSVN, which integrates to explorer, and you have a nice little portable repository.
For Visual Studio integration, there is the commercial($49) VisualSVN (which I believe is the setup used to develop StackOverflow).
Someone also mentioned AnkhSVN which I haven't used, but some people find it less than satisfying.
Don't use SourceSafe. There's major problems with it. See this:
Article1
Article2
I'd recommend using SubVersion instead.
If you're using Windows, you can use TortoiseSVN.
If you're working on Linux or other Unix variants, try RapidSVN.
Use Subversion. The FSFS style repository will work best as older BDB ones can have issues when moved from computer to computer. With AnkhSVN you'll have full integration with Visual Studio (AnkhSVN 2.x is a source control plugin; older versions still do the job, though).
Bazaar does what you're asking for (in terms of working very well standalone), and there was a 2007 Summer of Code project to build a Visual Studio integration plugin which appears to have produced an at-least-partially-functional product.
Bazaar (and other distributed tools, such as Git, Mercurial, Darcs and the like) are ideal because you can have your repository stored in multiple places (ie. on your pen drive, but also copied up to a server on a regular basis), make changes in one or the other branch (let's say you leave your pen drive at home -- you can build changes against the copy on a remote server, upload them via WebDAV, SFTP, etc, and be able to seamlessly merge them into changes done locally to the pen drive; non-distributed solutions such as Subversion don't have that capability).
There are two common free front-ends Ankhsvn integrates into visual studio
and TortoiseSVN integrates with explorer ( my preference).
There is also sliksvn a self contained svn server for windows.
I'd recommend SubVersion as well - you can find a hosting provider who offers SVN for really cheap, this way your source code is always backed up and available, all you need to keep on your flash drive is SVN client...