Skip to content

Development branches

JoseAlcerreca edited this page Mar 29, 2016 · 2 revisions

We use git branches to define the dependencies between different samples and make development easier.

Sample branches

Naming

  • Every sample lives in its own branch like todo-mvp, todo-mvp-loaders, etc.
  • Samples in development are prefixed with "dev-" like dev-todo-mvp-futuresample.
  • Big changes are created in feature branches like dev-todo-mvp-tabletlayout.

Dependencies

Except todo-mvp, every sample depends on another sample. This is done so that changes to a sample can be replicated across its dependants.

Here's a dependency graph:

  • todo-mvp
    • todo-mvp-loaders
      • todo-mvp-contentproviders
    • todo-databinding

A change to todo-mvp must be merged into todo-mvp-loaders and todo-databinding so when this happens, the project maintainers will do something similar to:

$ git checkout todo-mvp-loaders

Make sure it's up-to-date:

$ git pull 

Merge:

$ git merge origin/todo-mvp

This merge will probably contain conflicts. Remember that everything in androidTest*/ will probably have to be merged in, whereas classes under test/ are sample-specific.

$ git mergetool
# resolve, resolve, resolve
$ git commit
$ git push origin todo-mvp-loaders

After this, todo-mvp-contentproviders can be merged with todo-mvp-loaders.

Clone this wiki locally