Hello!

For those who work with the SyncEvolution upstream repository: I have
implemented a new mechanism for testing patches before integrating them
into a branch.

Any branch which gets pushed as "for-master/<branch name>" will get
merged into the "master" branch by the runtest.py script and thus be
covered by the nightly testing. That also works for older branches, like
syncevolution-1-2-branch.

The commit message below has the details. As an example, the following
test run included a "for-master/pohly" branch which had three commits.
This is reported in the HTML overview page in a new section:

http://syncev.meego.com/latest/head-lucid-amd64-sources/nightly.html
--------------------------------
Source Information 
syncevolution
origin/for-master/pohly: okay
syncevolution-1-2 + 195 commit(s) = 1e2a79c
working directory dirty
Patches:
Patrick Ohly - sync modes: added refresh/one-way-from-local/remote (BMC #23537)
Patrick Ohly - phone sync: delete<->delete conflict + phone calendar+todo sync 
(BMC #23744)
Patrick Ohly - phone sync: delete<->delete conflict + phone calendar+todo sync, 
part II (BMC #23744)

libsynthesis
libsynthesis_3.4.0.16+syncevolution-1-2 + 4 commit(s) = b7944db
working directory clean
---------------------------------

commit 3e9fc042dc47d090e87b5a7dccce5945128fec65
Author: Patrick Ohly <patrick.o...@intel.com>
Date:   Thu Oct 27 16:44:44 2011 +0000

    testing: automatically integrate branches (BMC #735)
    
    Branches committed to the libsynthesis or SyncEvolution git repo with
    a name of "for-<branch>/<name>" will be automatically merged into
    <branch> before starting the testing:
       --sourcedir <dir with existing repos> --workdir <dir with merged repos>
    
    The result can be reused as-is in further runtests.py invocation by using
       --sourcedir <merged repos> --no-sourcedir-copy
    
    Any local, *uncommitted* changes will be preserved and applied to
    the merged sources (git stash). *Committed* changes will *not* be
    applied. Always push them immediately.
    
    Because there is a risk of loosing work when these rules are not
    followed, the current state of the tree is stored as a branch created
    with "git stash create" under the names
    <branch>-nightly-before-<date+time> and <branch>-nightly. The latter
    gets overwritten during each run.
    
    These branches can be used to cherry-pick commits or restore the tree
    as it was before the automatic merging ("git stash branch <branchname>
    <branch>-nightly").
    
    Result reporting includes information about the resulting code
    revision.  This includes the names of all branches which were
    available for merging and whether that succeeded or failed. The output
    of "git describe" is also included, always with a hash (even when it
    matches a tag, in case that the tag gets moved) and whether the
    working tree was dirty. All commits applied to the base branch are
    listed in "git am" format.
    
    This is done because the merged code is not pushed. This would clutter
    the upstream code repository.
    
    The "for-" prefix (instead of just "<branch>/") was added because git
    got confused when <branch> was both a real branch and a directory of
    other branches.

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.


_______________________________________________
SyncEvolution mailing list
SyncEvolution@syncevolution.org
http://lists.syncevolution.org/listinfo/syncevolution

Reply via email to