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

51
votes
12answers
12k 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 ...
46
votes
2answers
28k 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 ...
38
votes
8answers
7k 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. ...
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 ...
28
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. ...
23
votes
4answers
4k 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 ...
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
4k 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 ...
20
votes
2answers
6k 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 ...
19
votes
3answers
2k 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 ...
19
votes
4answers
3k 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 ...
18
votes
2answers
5k 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 ...
17
votes
6answers
951 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 ...
15
votes
6answers
906 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
7answers
1k 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
4k 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, ...
12
votes
4answers
3k 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 ...
12
votes
3answers
659 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
747 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
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
250 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
10k 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
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 ...
9
votes
4answers
313 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
6answers
338 views

In git, how to do versioning for a dozen libraries all worked at in parallel

We are doing projects, but we reuse a lot of code between the projects and have lots of libraries that contain our common code. As we implement new projects we find more ways to factor out common code ...
9
votes
3answers
398 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
436 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
580 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
492 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
340 views

Reusing a merged branch, good practice?

Currently, I used to create a new branch each time I have to add a new feature to my application. When my feature is finished and functional, I merge it with the master branch. But later, when I ...
7
votes
2answers
644 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
4answers
811 views

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
6answers
985 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
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 ...
7
votes
1answer
293 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
605 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
702 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
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 ...
6
votes
3answers
205 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
526 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
2answers
361 views

Why does Git have tags?

I've read Git branching and tagging best practices and git tagging comments - best practices, but I don't see a direct answer to something I've wondered for a long time: Why does Git have tags? ...
5
votes
1answer
1k 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
3k 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
472 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 ...