To celebrate the release of GATK 4.0, we are giving away free credits for running the GATK4 Best Practices pipelines in FireCloud, our secure online analysis portal. It’s first come first serve, so sign up now to claim your free credits worth $250. Sponsored by Google Cloud. Learn more at

Suggested workflow for updating to GATK 2.4 code base

I'm struggling somewhat with updating my own code to the 2.4 code base, and I would be very happy for any help you might offer on how to do this. First of all, I guess I should switch my upstream repository to (as I'm working in an academic not-for-profit environment).

What I would like to do is to rebase my own devel branch on the master branch of the gatk-protected repository. But trying to do so gives me a lot of conflicts in files that I have not altered in my own branch. Is resolving all of these conflicts one by one the only way to do this, or have I really got some problem with my understanding of how this is done? I'm guessing the later.

Either way it would be really nice to get some pointers on how to figure this one out.



Best Answer


  • CarneiroCarneiro Charlestown, MAMember

    Hi Johan,

    First of all, yes, you should reset your upstream to gatk-protected.

    it's hard to say without looking at your repo. There were indeed a lot of changes in the 2.4 release, and if you have changed any files from the GATK it is very likely that you will get conflicts because we changed them too. Here are a few scenarios I can predict for you:

    1. You made changes to GATK files like walkers, annotations or engine source files.
    2. Your files depended on GATK files that got moved around
    3. Your files lived in directories that got relocated from public to protected

    For #1 there is not much you can do other than going through the conflicts one-by-one. In the future, I'd recommend extending classes and overriding with your modifications instead of modifying them directly, which will always be susceptible to conflicts at every release.

    For #2 you should get away with a rebase with the "-m ours" option.

    For #3 the easiest thing to do is to move your files by hand after a clean clone. But if you're comfortable with resolving the conflicts, you should be able to git mv your directory trees and fix all the conflicts with just a few commands.

    hope this helps,

  • Thank you for the ideas, however I can't seem to make this work. I'm getting conflicts in files which I have never touched. Right now I think that this will actually prompt me to make a move which I have been considering for some time, to move my own code into a separate project and use gatk as an external dependency. Thanks again for the pointers, though. :)

  • A maven package of gatk and queue would make my life a lot easier. If you do this, beer is on me if you ever stop by here in Sweden.

  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie

    Now that's motivation -- consider it done :-)

Sign In or Register to comment.