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

119
votes
9answers
10k views

Maintain hundreds of customized branches over master branch

Currently we have one master branch for our PHP application in a shared repository. We have more than 500 clients who are subscribers of our software, most of whom have some customization for ...
63
votes
12answers
17k 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 ...
63
votes
2answers
45k 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 ...
44
votes
8answers
9k 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
11answers
3k 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. ... ...
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 ...
26
votes
2answers
7k 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 ...
26
votes
4answers
5k 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 ...
25
votes
10answers
5k 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 ...
25
votes
2answers
8k 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 ...
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
3k 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, etc....
20
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 ...
17
votes
6answers
2k 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 ...
17
votes
5answers
6k 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, ...
17
votes
4answers
4k 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 ...
17
votes
5answers
1k 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 ...
15
votes
6answers
1k 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 clean/...
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
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
2answers
458 views

Big project layout : adding new feature on multiple sub-projects

I want to know how to manage a big project with many components with version control management system. In my current project there are 4 major parts. Web Server Admin console Platform. The web ...
11
votes
6answers
529 views

How can we only include ready-to-be-released features in our production releases every other week?

I'm a software developer on a fairly large agile team (we have eight developers actively making changes to a single code repository). Every two weeks, we push a new version of our software to ...
11
votes
5answers
14k 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 ...
11
votes
3answers
1k 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 ...
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
849 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
3k 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
6answers
536 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 ...
10
votes
1answer
4k 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 ...
10
votes
3answers
353 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 long-...
9
votes
4answers
323 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
4answers
2k 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 ...
9
votes
2answers
2k 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
421 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
491 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
598 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
512 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 ...
8
votes
3answers
269 views

Git branching strategy for long-running unreleased code

At our team, in addition to individual units of work (Stories), we have longer-running themes of work (Epics). Multiple stories make an epic. Traditionally we've had feature branches for each Story, ...
8
votes
4answers
240 views

Should You Improve Code Quality Whilst Working on a Feature Branch

I really like this article about leaving the code/camp site in a nicer state than you found it - it seems like a practical approach in the real world to keep on top of code cleanliness. I also ...
7
votes
1answer
2k 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 ...
7
votes
5answers
4k 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 ...
7
votes
2answers
770 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
2k 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
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 ...
7
votes
1answer
314 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
637 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
753 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
4k 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
122 views

Do we need to create local branches for the enhancements we are working on?

We just started implementing the Git source control for our project and the Admin says we should not be creating any new branches for the enhancements that we are working on instead everybody should ...