Metadata-Version: 1.1
Name: git-build-branch
Version: 0.1.13
Summary: Utility tool for building Git branches my merging multiple other branches together.
Home-page: https://github.com/dimagi/git-build-branch
Author: Dimagi
Author-email: dev@dimagi.com
License: BSD license
Description: ==================
        git-build-branch
        ==================
        
        
        .. image:: https://img.shields.io/pypi/v/git-build-branch.svg
                :target: https://pypi.python.org/pypi/git-build-branch
        
        
        Utility tool for building Git branches by merging multiple other branches together.
        
        
        * Free software: BSD license
        
        For guidelines on contributing to the project please read the CONTRIBUTING_ documentation.
        
        .. _CONTRIBUTING: CONTRIBUTING.rst
        
        
        Documentation
        -------------
        In some cases it may be desirable to have full control over what code is deployed. This can
        be accomplished by creating a YAML configuration file to describe what should be included in your branch.
        
        The format of the file is as follows:
        
        .. code-block:: yaml
        
            trunk: master
            name: autostaging  # name of the branch to build
            branches:  # list of branches to merge into final branch
              - feature1
              - feature2
              - forkowner:feature3 # branch from fork of repository
            submodules:
              submodules/module1:
                branches:
                  - feature1
                  - forkowner:feature2 # branch from fork of repository
              submodules/module2:
                trunk: develop
                branches:
                  - feature2
        
        To add some safety around this file you should use the ``safe-commit-files`` utility:
        
        .. code-block:: shell
        
            safe-commit-files --push /path/to/branch_config.yml
        
        Building the branch
        ~~~~~~~~~~~~~~~~~~~
        This configuration file can be used to build a deploy branch:
        
        .. code-block:: bash
        
            git checkout master
            git-build-branch path/to/branch_config.yml
        
        Conflict Resolution
        ~~~~~~~~~~~~~~~~~~~
        
        First, determine where the conflict lies.
        
        a). branch ``foo`` conflicts with ``master``
        
        .. code-block:: shell
        
            git checkout -b foo origin/foo
            git pull origin master
        
            # try to resolve conflict
        
            git push origin foo
        
        b). branch ``foo`` conflicts with branch ``bar``
        
        You can't just merge foo into bar or vice versa, otherwise the PR
        for foo will contain commits from bar.  Instead make a third,
        conflict-resolution branch:
        
        .. code-block:: shell
        
            git checkout -b foo+bar --no-track origin/foo
            git pull origin bar
        
            # try to resolve conflict
        
            git push origin foo+bar
        
        Now add the branch ``foo+bar`` to ``branch_config.yml`` and move branches foo and
        bar to right below it.
        
        Later on branch B gets merged into master and removed from ``branch_config.yml``.
        
        Perhaps the person who removes it also notices the A+B and does the
        following. Otherwise anyone who comes along and sees A+B but not both
        branches can feel free to assume the following need to be done.
        
        * Merge A+B into A. Since B is now gone, you want to merge the
          resolution into A, otherwise A will conflict with master.
        
        * Remove A+B from ``branch_config.yml``. It's no longer necessary since it's
          now a subset of A.
        
        If you are unsure of how to resolve a conflict, notify the branch owner.
        
        
Keywords: git-build-branch
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
