Introduction ------------ automerge is a set of scripts used to manage continuous integration of a set of branches being developed against mainline. Functionally, it aspires to do what linux-next does. ci-merge: The script that actually merges the branches together based on a config file listing the various branches. ci-report: Reports any warnings/errors resulting from the build ci-test: Run some tests on the new build ci-blame: Helper script used to report the commit ID that introduced a new warning/error in the build ci-config: Helper script that returns the configuration for the branches to be used ci.conf.sample: Sample configuration file Quick Start ----------- $ Setup a config file. You can do this by creating you own from ci.conf.sample, e.g. in $HOME/.automerge/config, or point to an existing with using --config/-f option $ export LOCAL_LINUX_REPO=~/work/sources/linux-ci.git $ export RR_CACHE=ssh://git@git.linaro.org/landing-teams/working/qualcomm/automerge-rrcache.git (Interactive run) $ ci-merge -l $LOCAL_LINUX_REPO -c $RR_CACHE -f ~/.automerge/automerge-ci.conf -n Conflict Resolution and sharing a rerere cache within a team ------------------------------------------------------------ The following example is used by the Qualcomm Landing Team to update their shared rerere cache: 1. Make sure you have a local linux repo (LOCAL_LINUX_REPO) 2. If needed, add any new branches to the config file pointed to by -f or autodetected by ci-config. The Qualcomm Landing Team configs live here[1] 3. Run automerge locally with any new branch or branch modifications $ cd <LOCAL_LINUX_REPO> $ export RR_CACHE=ssh://git@git.linaro.org/landing-teams/working/qualcomm/automerge-rrcache.git $ ci-merge -c $RR_CACHE -f ~/.automerge/automerge-ci.conf -n Resolve the merge conflicts till ci-merge runs successfully 4. Commit the rr-cache from .git/rr-cache and then push to git.linaro.org $ git commit $ git push (You might need to setup a pushurl for the rr-cache git repo for git push to work) 5. Push your changes to automerge configs or branches to glo[1] 6. Rerun step 3 again. There should be no conflict now, since the resolution was pushed in step 4. [1] https://git.linaro.org/landing-teams/working/qualcomm/configs.git