Decentralized version control (DVCS) keeps track of software revisions and allows many developers to work on a given project without necessarily being connected to a common network.

learn more… | top users | synonyms

277
votes
10answers
32k views

I'm a Subversion geek, why should I consider or not consider Mercurial or Git or any other DVCS?

I try to understand the benefits of distributed version control system (DVCS). I found Subversion Re-education and this article by Martin Fowler very useful. Mercurial and others DVCS promote a ...
68
votes
7answers
67k views

Are there open source alternatives to Bitbucket, Github, Kiln, and similar DVCS browsing and management tools? [closed]

I am aware of several tools/services that provide DVCS browsing and management such as Bitbucket, Github, Kiln, SCM-Manager and Rhodecode. However, the use case I am considering is one such that: ...
43
votes
5answers
7k views

Why do so many websites prefer “git rebase” over “git merge”?

One of the advantages of using a DVCS is the edit-commit-merge workflow (over edit-merge-commit often enforced by a CVCS). Allowing each unique change to be recorded in the repository independent of ...
32
votes
8answers
8k views

Can you recommend a good commit message template / guidelines to enforce in the company? [closed]

In Git it's possible to set and enforce a good commit template. Can you recommend (preferably with argumentation) a good commit template / guidelines to enforce in the company?
29
votes
10answers
2k views

Do DVCSes discourage continuous integration?

Say there is a team of ten agile developers. Every day they each pick a task from the board, commits several changes against it, until (by the end of the day) they have completed the task. All ...
27
votes
4answers
6k views

I am a git user confused by mercurial's branching. How am I supposed to track small changes?

I've always used git before, but I want to contribute to python so now I have to learn mercurial and I find it very frustrating. So, I've made a couple of small patches and I wanted to track them as ...
26
votes
11answers
1k views

Business case for decentralized version control systems

I searched and couldn't find any business reasons why git/mercurial/bazzr systems are better than centralized systems (subversion, perforce). If you were trying to sell a DVCS to a non-technical ...
24
votes
6answers
2k views

Is version history really sacred or is it better to rebase?

I've always agreed with Mercurial's mantra 1, however, now that Mercurial comes bundled with the rebase extension and it is a popular practice in git, I'm wondering if it could really be regarded as a ...
22
votes
4answers
1k views

We're Subversion Geeks and we want to know the benefits of Mercurial [closed]

Having read I'm a Subversion geek, why should I consider or not consider Mercurial or Git or any other DVCS. I have a related follow up question. I read that question and read the recommended links ...
19
votes
6answers
578 views

Headaches using distributed version control for traditional teams?

Though I use and like DVCS for my personal projects, and can totally see how it makes managing contributions to your project from others easier (e.g. your typical Github scenario), it seems like for a ...
19
votes
4answers
1k views

Are there advantages to using a DVCS for a solo developer?

Right now, I use visual svn on my server, and have ankhsvn/tortoise on my personal machine. It works fine enough, and I don't have to change, but if I can see some benefits of using a DVCS, then I ...
18
votes
17answers
4k views

Why should I write a commit message?

Why should I write a commit message? I don't want to and i think its stupid every single time. A GUI frontend I use which will go unnamed forces you to do it. I hear other doing it every time even if ...
16
votes
3answers
889 views

Is a code review which uses only code comments a good idea?

Preconditions Team uses DVCS IDE supports comments parsing (like TODO and etc.) Tools like CodeCollaborator are expensive for budget Tools like gerrit are too complex for install or not usable ...
16
votes
4answers
3k views

Workflow: Using binary document formats in Git without locks (moving from subversion)

We're a software consultancy with a multitude of projects for different customers. We traditionally use Subversion, but are currently considering moving to Git. A significant portion of the documents ...
15
votes
7answers
740 views

Why not commit unresolved changes?

In a traditional VCS, I can understand why you would not commit unresolved files because you could break the build. However, I don't understand why you shouldn't commit unresolved files in a DVCS (...
14
votes
6answers
8k views

What's so difficult about SVN merges?

Possible Duplicate: I’m a Subversion geek, why should I consider or not consider Mercurial or Git or any other DVCS? Every once in a while, you hear someone saying that distributed version ...
13
votes
6answers
1k views

Is it fine to have broken intermediate commits, as long as the final commit in any push works?

Related: Should every git commit leave the project in a working state? Suppose I make the following commits locally: Modify the database schema, breaking the application. Update the application so ...
12
votes
11answers
1k views

How do you explain the importance of using a [distributed] version control system to someone who's not in the CS field? [closed]

A good example of someone who fits that description might be a project manager. I was asked by my boss the other day, "what this Github thing is and why it's important?" He has some proprietary ...
12
votes
4answers
1k views

Stopping developers committing to the wrong branch on DVCS

The problem I am on a software project which has about 10 developers, we share source code via Mercurial. We have a development and production branch per release. Repeatedly during the course of the ...
12
votes
4answers
1k views

Where could Distributed Version Control Systems currently be in Gartner's hype cycle? [closed]

Edit: Given the recent downvoting (+8/-6 at this point) it was made clear to me that Gartner's lifecycle is a biased metric from a programmer's perspective. This is something that is part of a paper I'...
12
votes
3answers
2k views

Branching breaks continous integration?

I think this article, A Successful Git Branching Model, is very well known among experienced DVCS users. I use hg mostly, but I would argue this discussion is fine for any DVCS. Our current ...
12
votes
3answers
1k views

Patterns for Continuous Integration and DVCS

We currently use Subversion and TeamCity, we're going to move to using Mercurial (specifically Kiln as we're FogBugz users). Obviously this will result in changes - hopefully improvements - in our ...
11
votes
2answers
7k views

Is there a difference between merges in svn compared to git or mercurial?

From my understanding SVN is 'Easy to branch. Difficult to merge'. Why is that? Is there a difference how they merge?
11
votes
3answers
2k views

Does Git have a “safe mode” to prevent rewriting history?

When you're kind of fresh with Git (and DVCS in general), and you start exploring history-rewriting changes, you're safe if the repository is only local, but you might run into problems if you work ...
11
votes
1answer
502 views

How did Git and Mercurial develop so similarly at the same time?

Git and Mercurial follow similar models and have similar terminology. Mercurial's initial release was was only 12 days after Git's. How did these two projects, in initial development at the same ...
10
votes
1answer
3k views

Why do Git/Mercurial repositories use less space?

I've read on several discussions here and on SO that DVCS repositories use about the same or less space than their centralised counter-parts. I may have missed it, but I haven't found a good ...
10
votes
2answers
303 views

Why do DVCSes seem to all have an irrational phobia of uncommitted changes?

Coming from a SVN background, one of the hardest things to get used to when working with DVCS systems is the way they all seem to regard any uncommitted change whatsoever like a ticking time bomb. In ...
9
votes
3answers
518 views

What GUI tools are available for which DVCS? [closed]

When I worked at Sun, we used a DVC system called Forte SCCS/Teamware, which used the old SCCS file format, but was a true distributed source code revision control system. One nice feature is that it ...
9
votes
1answer
252 views

DVCS blessed repo replication among geographically distributed teams

My company is exploring the move from Perforce to a DVCS and we currently use lots of Perforce proxies because the software development teams are spread over Germany, China, USA and Mexico and ...
9
votes
2answers
964 views

Do large mercurial repositories suffer from a “push race”?

Reading a few "Why a DVCS is better" answers to several question on Programmers.SE they all seem to say that in general, DVCS is better since you don't have a commit race in large projects, IE commit, ...
9
votes
3answers
423 views

dvcs - is “clone to branch” a common workflow?

I was recently discussing dvcs with a coworker, because our office is beginning to consider switching from TFS (we're a MS shop). In the process, I got very confused because he said that although he ...
8
votes
4answers
312 views

Shorter release cycle with DVCS

Does the choice of using a DVCS over a CVCS actually make for shorter release cycles? If so, what makes software release cycles shorter and what are the arguments for this? Related to pull request? ...
8
votes
1answer
502 views

Integrating different branches from external sources into a single Mercurial repository

Edit: Making this even clearer as the bounty is about to expire: is there a way of importing history (pulling from different SCM) directly into a specific branch with Mercurial? I'm currently ...
7
votes
6answers
2k views

Interviews: How far to go on DVCS experience? [closed]

I've been interviewing some potential interns for a project I'm working on. We use git, so I'm looking for someone familiar with DVCS (or SVN/CVS or a desire to learn). A response that threw me off ...
7
votes
3answers
408 views

Training a company to use a DVCS coming from a CVCS mindset, is it as hard as one would think?

So, I'm preparing to consider the outcome of training a lot of people (>25) to use Mercurial coming from a centralized mindset. I've done it with individuals and had success with it, although the time ...
7
votes
2answers
778 views

Feature branches, beta branches, and scrapped features

I've been thinking a lot about best practices regarding branching in distributed version control systems such as git an mercurial (the two dvcs's I have experience with and use on a daily basis). The ...
7
votes
5answers
3k views

Handling (many) multiple projects in Git in an enterprise environment

One of the advantages of older version control systems such as CVS and SVN in enterprise development is that anyone can connect to source control and see all the projects that the company has. This ...
6
votes
4answers
241 views

Is there any downside to commit messages containing the ticket number

I was wondering if it would be good practice for commit messages to contain the ticket number they were apart of. It would be like 2568 Fix heating issue Summary of the issue with a bunch ...
6
votes
1answer
2k views

Should I commit regularly in new projects? [duplicate]

TL:DR; Shall I start comitting regularly small pieces of code in new projects? Even if I'm start from scratch and don't have any experience in what I'm using (framework, programming language, w/e)? ...
6
votes
4answers
5k views

Working with Git on multiple machines

This may sound a bit strange, but I'm wondering about a good way to work in Git from multiple machines networked together in some way. It looks to me like I have two options, and I can see benefits on ...
6
votes
2answers
186 views

What is the argument for never forcing a push in a DVCS (Mercurial)?

I always preach never to force push anything, because that adds ambiguity to the repository server. In this specific example, we collaborate with a customer and they "skip a step" and force push ...
5
votes
3answers
4k views

Can you close branches in Git?

In Mercurial you can close a branch like this: hg commit --close-branch, this means the the branch will not be listed anymore but will still exist, and can still be listed if you use hg branches --...
5
votes
2answers
512 views

Is switching from a CVCS to a DVCS a considerable bandwidth save?

So, I'm in a big geographically-distributed company, we use perforce and I'm starting to make the case for a DVCS with a whitepaper I was requested to write. I was thinking that one of the arguments ...
5
votes
3answers
201 views

DVCS and different versions of the same Product

Let's say that we have an application, with two (or more) different versions. E.g. Professional and Lite editions. What would be the best way to keep the source under version control (DVCS in ...
5
votes
3answers
728 views

Moving from a CVCS to a DVCS in a big company, what is the right way to do it?

I just started a new job and I'm currently at the process of trying to introduce a DVCS (mercurial, but the actual DVCS is not really a matter of discussion at this point, it could also be git) to the ...
5
votes
2answers
834 views

Is Perforce as good at merging as DVCSs?

I've heard that Perforce is very good at merging, I'm guessing this has to do with that it tracks changes in the form of changelists where you can add differences across several files in a single blow....
5
votes
3answers
261 views

Is a “model” branch a common practice?

I just thought it could be a good thing to have a dedicated version control branch for all database schema changes and I wanted to know if anyone else is doing the same and what have the results been. ...
5
votes
2answers
529 views

GIT branch model for derivative work

I'm planning on using Vincent Driessen's branching model which I found great for my current development. I think Vincent approach is very general to any development project but I'm finding it ...
4
votes
2answers
369 views

Is security a real argument for centralized version control?

I'm trying to understand if security is a real concern, or if distribution actually does a better job with security. See, the access to the main source repository could be layered and inherently ...
4
votes
2answers
246 views

Sharing only part of code with git

The situation I have code which has features X and Y. Bob needs access to the code to help develop feature X further. Normally I would allow Bob to clone the code, but the problem is that feature Y ...