[Letux-kernel] merge process and nightly build on server?

H. Nikolaus Schaller hns at goldelico.com
Mon Jun 6 15:49:41 CEST 2016


Hi,
we shortly discussed about such topics and we probably should extend the discussion.

Currently we have the letux-base branch and several feature branches.
Letux/scripts/merge is a shell script that
1. finds out the latest linux release merged into letux-base (e.g. 4.7-rc1)
2. creates a copy called letux-4.7-rc1
3. takes a 'mergefile' (and optional command line parameters) for a list of feature
   branches which are then merged into the result
4. with option -s the merge is done sequentially to debug merge issues. Default is "octopus"
5. with option -p all feature branches and the result are pushed (with --force) to the
   git repository so that all branches are updated to the local status

This way it works quite well for manual merging and if done by a single user only.

Basically it is possible that fellow developers can use the merge script as well
to build their private "letux-4.7-rc1" base o their local modifications. The only
thing that should not be done is to use the -p option.

But there is a problem - which also exists for the case that we try to run it by cron
on a server:

where does the "mergefile" come from.

Currently it is not checked in and version managed by git. The positive effect is
that it is not changed by the merge process itself. If it were part of e.g. letux-base
we always have to add a commit to letux-base each time we add or modify a
feature branch - and have to repeat the merge process. This is ugly.

The negative effect of not being checked in is that the file is not shared and
not archived and not version-managed. Therefore it is not available on a build
server. Or if it is, it must be updated by a different mechanism than git push.

So that is something where we would need a solution first. How can we
control as a developer group which feature branches are to be included?

In the current setup it is just a mail to add/remove feature branches from the
developer to the person doing the merge (me).

Another issue with automatic (nightly) builds is that if there is a single merge
problem, the whole merge fails. Finding out and fixing is much easier done
when doing a local merge -s. Because you just check the working state at
the failed merge. If it is done remotely, you have to repeat it first.

So I am not really convinced that a build server with automatic merge makes
life really easier...

What do you think?

BR,
Nikolaus

A little outdated (letux-$version => letux-base and letux-next => letux-$version)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Letux Kernel Process.key.pdf
Type: application/pdf
Size: 21185 bytes
Desc: not available
URL: <http://lists.goldelico.com/pipermail/letux-kernel/attachments/20160606/51eae338/attachment-0001.pdf>


More information about the Letux-kernel mailing list