Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Version control for version control?

I was overseeing branching and merging throughout the last release at my company, and a number of times had to modify our Subversion pre-commit hooks to enforce different requirements on check-in comments and such. I was a bit nervous every time I was editing those files, because (a) they're part of a live production system, albeit only used internally (and we're not a huge organization), and (b) they're not under version control themselves.

I'm curious what sort of fail-safes people have in place on their version control infrastructure. Daily backups? "Meta" version control? I suppose the former is in place here as part of the backup of the whole repository. And the latter would be useful as the complexity of check-in requirements grows...

like image 681
Owen Avatar asked Jan 12 '09 22:01

Owen


People also ask

What are the three types of version control?

The types of VCS are: Local Version Control System. Centralized Version Control System. Distributed Version Control System.

What is version control with example?

Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. For the examples in this book, you will use software source code as the files being version controlled, though in reality you can do this with nearly any type of file on a computer.

What is version control and types of version control?

Version control, also known as source control, is the practice of tracking and managing changes to software code. Version control systems are software tools that help software teams manage changes to source code over time.

What are the two types of version control?

There are two types of version control: centralized and distributed.


3 Answers

Natch - the version-control and any other infrastructure code is also under version-control but I would use a separate project from any development project.

I prefer a searchable wiki or similar knowledge-base repository to clogging up your bug-tracking system with things like VCS config.

Most importantly, make sure that the documentation is kept up to date - in my experience, people are vastly better at keeping code docs up to date than admin docs. This may have been the individuals concerned . One thing that is often overlooked is, if systems are configured according to standard Unix Practices or similar philosophy, that implies a body of knowledge about locations that may not be familiar to an OS/X or Windows programmer, faced with suddenly fixing a broken script. Without being condescending, make sure basic assumptions about location and interdependency are documented.

like image 145
Andy Dent Avatar answered Oct 23 '22 07:10

Andy Dent


You should document all "setup" configuration for all your tools and these documents should be checked into version control. For tools with text file configurations which allow comments, you could just checkin the config file. But for tools that require using the interface, you should have a full document with images of the dialog boxes showing what choices are chosen.

Most importantly though, these documents should say WHY you have set the values chosen (when not taking the default).

Second, as backup, the same documents should be included in your bug tracking software under a "How do I setup the version control software?" bug. (The bug tracking database is located on a different physical server, right?)

Third, all of this should be backed-up off-site. I'm sure there question on SO about backup strategies.

like image 36
jmucchiello Avatar answered Oct 23 '22 07:10

jmucchiello


What's wrong with using the same version control repository for the commit hooks and other configuration files? That's how I've handled it in the past when I've been responsible for a project's configuration management.

You should also back up your svn repository. That way if the repository itself becomes corrupted or the server catches fire or something, you can recover both your project and the svn control files.

like image 4
Bill Karwin Avatar answered Oct 23 '22 08:10

Bill Karwin