6 comments

[ 4.5 ms ] story [ 24.4 ms ] thread
I submitted this because I'm curious about the answer. In all the discussion of experimental evidence for pair programming, TDD, etc., has anyone carried out research to test the effectiveness of using a version control system?

For some projects, it seems that an automatic versioning file system might be more effective than, say, github.

That's an interesting idea: automatically commit every change during development.

I guess developer may choose to label current set of files as "share with other developers on my team" or "production ready". IDE may also auto-assign labels such as "buildable" and "auto-tests passed".

Yes.

And a hybrid solution might be a directory watcher which auto-commits the files which are in version control after every save.

BTW, there's also vim's "go back in time" feature, which lets you go back, say, 2 hours in development to an earlier version of a file.

Auto-commit after every save would likely break the build for other developers on the team.
Under some version control systems, you can commit to your own local repository, which no one else uses. When you're ready, you can push your repository out to others.

With Mercurial, git, and other such system, you can auto-save without affecting others. Only when you push to trunk (if that's your development model) could you break the build.

Sorry, I forgot about distributed source control systems...

Yes, such system (keep EVERY version in source control) might be convenient to work with: no need to think about when you need to commit your code changes. The code history switches from being "set of isolated snapshots" into kind of movie.