Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Do Distributed Version Control Systems promote poor backup habits?

In a DVCS, each developer has an entire repository on their workstation, to which they can commit all their changes. Then they can merge their repo with someone else's, or clone it, or whatever (as I understand it, I'm not a DVCS user).

To me that flags a side-effect, of being more vulnerable to forgetting to backup. In a traditional centralised system, both you as a developer and the people in charge know that if you commit something, it's held on a central server which can have decent backup solutions in place.

But using a DVCS, it seems you only have to push your work to a server when you feel like sharing it. It's all very well you have the repo locally so you can work on your feature branch for a month without bothering anyone, but it means (I think) that checking in your code to the repo is not enough, you have to remember to do regular pushes to a backed-up server.

It also means, doesn't it, that a team lead can't see all those nice SVN commit emails to keep a rough idea what's going on in the code-base?

Is any of this a real issue?

like image 949
Mr. Boy Avatar asked Mar 31 '10 09:03

Mr. Boy


People also ask

What are the shortcomings of the distributed version control system?

Downsides of Distributed Version Control Systems:DVCS enables you to clone the repository – this could mean a security issue. Managing non-mergeable files is contrary to the DVCS concept. Working with a lot of binary files requires a huge amount of space, and developers can't do diffs.

What is true about a distributed source control system?

Here is what many cite as distributed source control system advantages compared to other systems like centralized version control: Branching and merging can happen automatically and quickly. Developers have the ability to work offline. Multiple copies of the software eliminate reliance on a single backup.

What are the advantages of distributed version control systems compared to Centralised systems?

DVCS is faster than CVCS because you don't need to communicate with the remote server for each and every command. You do everything locally which gives you the benefit to work faster than CVCS. Working on branches is easy in DVCS.

What is the key difference between centralized and distributed version control systems?

The main difference between centralized and distributed version control is that, in centralized version control, the versions are saved in the remote repository, while in distributed version control, versions can be saved in the remote repository as well as in local repositories of the local machines.


2 Answers

I can understand your concern about devs forgetting backups once their local diff is gone (because they've committed locally) and stops nagging them with copious output. I think the solution can lie in better tools, moar tools! You could set up a cron job on each dev's box that pushes every last reachable object in their repository to the central repo, and labels them in the central (backed-up) repo with namespaced branches. I think "git push" can do this, given the correct refspec. Then, all you aren't doing is affecting the state of your public branches.

But do you really need as aggressive a backup process as before, when the repo existed only in one place? With a DVCS, you need a far higher category of catastrophes to lose all your code. You now need an asteroid or a bomb hitting your office (and all your off-site team members), instead of just a hard disk or RAID controller going bad. Note, I'm not advocating sloppiness; I'm advocating equal risk at lower cost.

like image 197
Bernd Jendrissek Avatar answered Sep 28 '22 15:09

Bernd Jendrissek


I don't think you have an automatism on this. Distributed or centralized VCS can be combined with backup (or not). It's all a question of discipline in the team.

Same for commit-emails. If the team has the discipline to regularly push changes to the right repositories, you can have a working commit-mailinglist too.

Bad habits also can grow in a team with centralized VCS. You have always to fight bad habits.

like image 22
Mnementh Avatar answered Sep 28 '22 15:09

Mnementh