civicrm/civicrm-core — pull request #385 by totten (2013-04-11 07:12:43+00:00)
Title: Add tools/scripts/merge-forward

Add script for merging changes from the maintenance branch (4.3) to the main development branch (master). Example:

./tools/scripts/merge-forward packages upstream 4.3 master
./tools/scripts/merge-forward joomla upstream 4.3 master
./tools/scripts/merge-forward WordPress upstream 4.3 master
./tools/scripts/merge-forward drupal upstream 7.x-4.3 7.x-master
./tools/scripts/merge-forward drupal upstream 6.x-4.3 6.x-master
./tools/scripts/merge-forward . upstream 4.3 master

If there are no conflicts or no changes, then the script is automatic. If there are conflicts, then they must be resolved and the new changes pushed.

(Note: I also played around with integrating this functionality into givi so that all repos could be merged with a single command. It proved difficult to provide a developer-experience that was easy to use/understand -- i.e. putting merge-forward into givi required either a lot of code or a lot of questions/options for the developer. The current approach requires a few more commands but should feel trivial in the usual cases and comprehensible in the hard cases.)