# Maintenance of the maint and master branches of git-po

1 messages from 2012-05-02 to 2012-05-02. Participants: Jiang Xin.
Thread: https://gitlist.dev/t/30386

## Jiang Xin, 2012-05-02 02:42

Subject: Maintenance of the maint and master branches of git-po
Message-ID: <CANYiYbHa_0ZKFwRz-FfJO4fP7E9fCqAaEQ2JfPr_UotzBOGpYQ@mail.gmail.com>
URL: https://gitlist.dev/e/CANYiYbHa_0ZKFwRz-FfJO4fP7E9fCqAaEQ2JfPr_UotzBOGpYQ%40mail.gmail.com

```
The git-po repository (https://github.com/git-l10n/git-po/) has two
branches: maint and master. These two branches track the l10n
updates for the counterparts of git.git.

 * When translaters send pull requests to maint branch of git-po,
   they want their translations go into the next maintenance
   release of git (i. e. 1.7.10.1 for now).

 * When translaters send pull requests to master branch of git-po,
    they want their translations go into the next release of git
    (1.7.11 for now).

When I received pull request(s) to maint branch, I will not only
merge commit(s) to maint branch, but also merge back to
master branch. If not merge maint branch back to master
branch of git-po before I send git-request-pull to Junio, it will
make troubles to the maintenance of git.git:

1. Maint branch can not fast-forward to master branch,
    when new release is out. (See the "Maintenance branch
    management after a feature release" section of
    `git help workflows`)

        $ git checkout maint
        $ git merge --ff-only master

2. Will encounter lots of hard to resolved conflicts when
    merge maint branch back to master branch, because
    of the indepent location lines like "#: filename:line" in
    the git.pot and XX.po files.

So when there are updates in maint branch of git-po, I
will always generate two request-pull to Junio, one for
maint branch, and one for master branch.

To make the merge less pain and less complication, I
use a custom merge driver learned from TopGit.

 * File ".git/info/attributes"

        po/git.pot      merge=ours

 * File ".git/config"

        [merge "ours"]
                name = \"always keep ours\" merge driver
                driver = touch %A

-- 
Jiang Xin

```
