Branching, in revision control is the duplication of an object under revision control so that modifications can happen in parallel along both branches.

learn more… | top users | synonyms

47
votes
12answers
10k views

To branch or not to branch?

Till recently my development workflow was the following: Get the feature from product owner Make a branch (if feature is more than 1 day) Implement it in a branch Merge changes from main branch to ...
36
votes
8answers
6k views

Is it a good practice to use branches to maintain different editions of the same software?

We have a product that has a few different editions. The differences are minor: different strings here and there, very little additional logic in one, very little difference in logic in the other. ...
31
votes
2answers
21k views

Git branching and tagging best practices

I am currently learning to use Git by reading Pro Git. Right now I'm learning about branching and tags. My question is when should I use a branch and when should I use a tag? For example, say I ...
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 ...
25
votes
11answers
2k views

Is it ever OK to commit non-working code?

Is it good idea to require to commit only working code? This commit doesn't need to leave the repository in a working state as: ... we are in early design stages, the code is not yet stable. ...
23
votes
7answers
1k views

how to stay efficient when a build is almost always broken

I work in a middle sized team which shares the same source code and while have a continues integration in place, but as all of us has to work in the same branch, the build is almost always broken. ...
22
votes
6answers
2k views

What does “branching is free” mean in Git?

What does "branching is free" mean in Git? I hear this a lot whenever Git is mentioned in comparison to other version control systems. I haven't had the opportunity (?) to deal with others (SVN, ...
22
votes
10answers
3k views

How do you avoid working on the wrong branch?

Being careful is usually enough to prevent problems, but sometimes I need to double check the branch I'm working on (e.g. "hmm... I'm in the dev branch, right?") by checking the source control path of ...
22
votes
4answers
3k 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 ...
19
votes
4answers
2k views

What is the best way to handle product versioning and branching of long term projects?

In a general sense, for long term projects that may have multiple releases during the products life cycle and require support of previous products, what is the best way to handle product versions and ...
17
votes
6answers
819 views

When should I stop committing to master on new projects?

Whenever a new project starts, it usually makes sense to start by committing straight to master until you've got something "stable", and then you start working in branches. At least, this is how I ...
16
votes
2answers
5k views

When using Git, is using the master branch for active development advisable?

First, some background, we are in the process of moving all of our project teams over to using git and are in the process of laying down the guidelines for how the repositories should be organized so ...
16
votes
3answers
1k views

Strategy for code review before merge to master from feature branches

Me and my team use feature branches (with git). I'm wondering which is the best strategy for code review before merge to master. I checkout a new branch from master, lets call it fb_#1 I commit a ...
15
votes
6answers
864 views

How can I refactor a code base while others rapidly commit to it?

I'm on a private project that eventually will become open source. We have a few team members, talented enough with the technologies to build apps, but not dedicated developers who can write ...
12
votes
2answers
4k views

Is a merging strategy like Git Flow really an anti-pattern?

My company is using Git, and is using a peculiar branching scheme - work is done in master, and branches are reserved for releases. This works fine, so long as all of the work done in an iteration ...
12
votes
7answers
904 views

Can branching ever be considered a bad practice? [duplicate]

Possible Duplicate: To branch or not to branch? A co-worker is against branching. I use branching all the time. I put the team onto a basic 3 branch system. I create my own feature ...
12
votes
4answers
3k views

Why do git commits not contain the name of the branch they were created on?

When working with git in a team using feature branches, I often find it difficult to understand the branch structure in history. Example: Let's say there was a feature branch feature/make-coffee, ...
11
votes
3answers
559 views

How to refactor when all your development is on branches?

At my company, all of our development (bug fixes and new features) is done on separate branches. When it's complete, we send it off to QA who tests it on that branch, and when they give us the green ...
11
votes
2answers
1k views

A decent git branching model for products that should accompany the version of another, third-party product (and pros and cons of one proposal)

Note: My question is focused in my specific problem (which involves Liferay) but I hope it can be useful for anyone who needs to maintain various versions of a same project on git. I work on a ...
10
votes
3answers
690 views

Git: Fixing a bug affecting two branches

I'm basing my Git repo on A successful Git branching model and was wondering what happens if you have this situation: Say I'm developing on two feature branches A and B, and B requires code from A. ...
10
votes
4answers
2k views

How do you put different versions of your library under version control? Do you use tags? Or branches? Or another method?

I have recently started putting my code under version control (in the lab I'm working, under SVN, and my own codes in github (obviously with git)). Before using version control, I used to do something ...
10
votes
3answers
2k views

Source Control: Roles and Responsibilities - Best Practices

I'm looking for "Best Practices" concerning roles and responsibilities, specifically who is responsible for merges from development branches to trunk (or main). Basically I'm looking for ammunition to ...
10
votes
3answers
221 views

Which is better for small bug fixes and small features - naming branches by ticket number or naming them by feature description?

I am in the middle of a disagreement (cordial, of course) with my lead about proper branch naming. This applies to bug-fix and small feature branches, not long-running feature branches. For ...
9
votes
5answers
9k views

Choosing the right branching strategy for releases

Starting with a new dev team on a new project and we have to define our Branching strategy for our source repository (e.g. Microsoft Team Foundation Server 2010). We've run into a sticky discussion ...
9
votes
4answers
310 views

When is it appropriate to start using the next revision of a tool when dogfooding?

Specifically, I am working on a tool that integrates a DVCS and build system, but I image the challenge I am facing would arise for anyone developing a "meta" tool (compiler, VCS, build system, test ...
9
votes
2answers
1k views

Should you bother with SVN branches if you only ever have one?

If we only work with one branch in Subversion, should we even bother? Can't we just work on the trunk to speed things up? This is how we develop with Subversion: There is a trunk We make a new ...
9
votes
3answers
382 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 ...
9
votes
5answers
418 views

Is it a good practice to have a remote branch for each developer?

Is it considered a good practice to have a remote branch for each individual developer in the project? We're using Git with the following branches: master release develop If each developer had ...
8
votes
6answers
562 views

hginit - #ifdefs ridiculous

I was reading Joel Spolsky's mercurial introduction when it struck me: "And now what they do is this: each new feature is in a big #ifdef block. So they can work in one single trunk, while ...
8
votes
7answers
483 views

How to keep the trunk stable when tests take a long time?

We have three sets of test suites: A "small" suite, taking only a couple of hours to run A "medium" suite that takes multiple hours, usually ran every night (nightly) A "large" suite that takes a ...
7
votes
3answers
1k 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 ...
7
votes
2answers
576 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
6answers
723 views

Branching Strategy for Test Environment

We will be starting a new project this month. The project will be 1 year and production deployment will only occur towards the end of the project. We will be doing iterative development (1 month per ...
7
votes
3answers
501 views

Advice Needed: Developers blocked by waiting on code to merge from another branch using GitFlow

Our team just made the switch from FogBugz & Kiln/Mercurial to Jira & Stash/Git. We are using the Git Flow model for branching, adding subtask branches off of feature branches (relating to ...
7
votes
1answer
279 views

Git bug branching convention

I've been following the successful Git branching model guide for most of my development. I still wonder if the way I handle bug tickets is correct. My current workflow: Once I accept a bug ticket I ...
6
votes
6answers
579 views

What's the best way to explain branching (of source code) to a client?

The situation is that a client requested a number of changes about 9 months ago which they then put on hold with them half done. They've now requested more changes without having made up their mind ...
6
votes
6answers
667 views

Git branches avoided by the office where I work [duplicate]

The place I work at does the following: They manage a dev version of an app They manage another replicate version of that app, they call this the rep version The live version of the app that is ...
6
votes
3answers
3k views

When should development branches be created?

We are moving our project's team from using a single Main/Trunk branch, to multiple Development/Work branches that should be regularly merged into Main. We're basing our new process on this article ...
6
votes
3answers
204 views

Advice: Developing two projects where one is an extension of the other

The Two Projects I work at a pretty small software company, and I'm currently in a situation where I'm at the end of development for "Project A", about to start development for "Project B". Project B ...
6
votes
1answer
2k views

Mercurial branch or rebase?

After using mercurial daily for over a year, we are about to find a better workflow for our DVCS. Inspired by a successful Git branching model we are about to move away from our "push daily work into ...
5
votes
2answers
445 views

How to deal with undesired commits that break long-running release builds?

We ran into an unfortunate situation at work recently and I've been wondering what we can do to avoid similar problems in the future. We make embedded systems. The FPGA code is in one SVN repository ...
5
votes
5answers
2k views

What's the most effective way to share code between .NET applications?

In our work, we have several different .net applications that share a lot of base functionality. We've built these applications using a clean n-tier architecture, but we've hit that moment where we ...
5
votes
1answer
906 views

Obstacles to using Git Flow in Subversion

My team at work is starting a new project, using Subversion as our VCS (you may consider this set in stone for the purpose of this question). We're still in the early stages of the project and are ...
5
votes
3answers
2k views

Maintaining SVN history for a file when merge is done from the dev branch to trunk?

In my org, we use SVN for version control So for each build (done periodically), we merge the code to trunk from the development branch (all the developers checks in to this branch). So when we want ...
5
votes
2answers
2k views

When to reintegrate feature branch?

From SVN 1.5, it supports reintegrate feature. I wonder when I should reintegrate. Should it be done before release or after release? If I do it Before release Pro: It is not forgettable to merge ...
5
votes
3answers
467 views

Forgetting to merge changes from trunk to branch

Recently, I forgot to merge changes from trunk to our maintenance branch. This caused us to rebuild - twice - and put QA on hold for two days while we fixed the mess. Normally, when committing to ...
5
votes
4answers
446 views

Git: rebasing on top of a refactor that affects the target rebase branch

Let's say I have a feature (topic) branch that I keep rebased on top of my development branch. During the course of the project (before merging in my feature branch), I decide that I need to make a ...
5
votes
1answer
3k views

Useful git commit messages for merged branches

As a follow-up to this question: If I'm working on a team by myself, I can maintain useful commit messages when merging branches by squashing all the commits to a single diff and then merging that ...
5
votes
1answer
824 views

Is there an established or defined best practice for source control branching between development and production builds?

I struggled in how to phrase my question, so let me give an example in hopes of making more clear what I am after: I currently work on a dev team responsible for maintaining and adding features to a ...
5
votes
3answers
2k views

Git: rebasing and keeping current to a remote branch - accepted practices?

When developing on a long-running branch (here defined as living longer than one release), what's the most accepted practice(s) to keeping the branch current with its origin while keeping the history ...