Often I need to apply some small fixes (to make them run on my environment) or even change some parts of the software (to tailor it to my needs) to software from outside. However this obviously creates problem with updating said software, even when it changes nothing related to my fix. It would be easier when the software provided integration for some kind of plugins but more often than not it doesn't.

What would be an ideal workflow regarding that? Most of the projects are git repos I pulled from outside. How should I apply my changes so that I can update painlessly? You can assume that external changes are much more often and larger than my own ones, so reviewing each one of them won't be a solution.

  • If you can't review them, why the need to keep up to date? Unless you are waiting for major bugfixes or features, freezing to a certain release seems a very viable option. Update only when necessary saves a lot of time.
    – Wrikken
    Nov 13, 2012 at 22:56

1 Answer 1


The most straightforward way is to create a local branch in your git repository and then merge the remote changes into your branch as they arrive. If you think of the software as "my modified version of the upstream project", then this ought to make sense.

However, another option is to use quilt (summary; offical page). It is a way to manage sets of patches on top of outside software. This might make more sense if you think of the software as "the upstream project plus my changes", and every time the upstream project changes you want to get the new stuff and then apply your changes (or modify your changes to cleanly apply).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.