Trigger build for new changeset on git-branch

Hi,
I have a git-repository and i have a configuration which should be executed everytime when a new commit is found. To realize this I created a trigger on this configuration (Type repository, Trigger on All branches). The repository is configured to monitor all branches.
Now i got two now commits on a branch (one normal commti a one mergecommit from the master into the branch). The Result that i expected ws to have 2 new running build but i got 6.
What i’m expecting is that continua should detect if there is a new chngeset and build only this.

Hi Albrecht,

We’ve done some testing and have found that Continua CI can pick up two changesets a merge commit. We are now working on a fix to ignore the duplicated merge changeset. 

This does not however explain why you would be getting 6 builds for the two changesets. Is it possible that the merge from the master branch included a set of commits which had not previously been pushed. Note that Continua CI triggers a build for every new changeset that it detects if the trigger quiet period is set to 0. If you set the trigger period higher, then one build will accumulate all new changesets within the given time period.

Can you check the Changes tab of the Configuration view which shows the full list of changesets received by Continua CI - are there any duplicated on this page? Also look at the Changes tab for each build - are there more than one builds for the same changeset id? 

If you can send screenshots of these pages and also a git log graph (e.g. git log --all --graph --decorate --format="%h (%ci) %d %s") to support@finalbuilder.com, we’ll look into reproducing your scenario. If you are able to reproduce the issue with debug logging enabled and send us a log then would help us to quickly find the cause of the issue.

Hi Dave,
I could reproduce the problem. The steps i made:

  • create a commit from the master into a new branch (Testcommit A on testbranch) and push.
  • create 2 new commits on the master (Testcommit B and C) and push.
  • merge master into testbranch and push.

-> the first three commits are triggered correct. But after pushing the merge Continua recognizes the merge-commit twice and testcommit B and testcommit C as commits on the testbranch and triggers builds for them.
On Changes-tab on the configuration i can see that testcommit B, testcommit C and the mergecommit are recognized twice (one for master and one for the testbranch). I’ve send a email with a screenshot from the changes-tab to support@finalbuilder.com.
The trigger-quiet-period is set to 0. I want to have a build for every commit a build. But not more like in this example testcommit B and C.

Hi Albrecht,

Thank you for the screenshots. We see the problem now.

It’s basically due to a general annoyance we have with Git. If you poll the repository before the merge, then commit b and c are on branch master. If you poll it after the merge then these commits are on branch TestBranch. Git doesn’t provide us with details on which branch a change was originally committed to. We previously had issues where triggers for a specific branch would miss a changeset after a merge, so we store the changeset against both branches and this triggers a build for both branches.

We’re now looking into what changes we can make to get this working as you expect. 

Hi Dave,
I see that the new update (1.8.1.682) fixes the problem. On my first tests it works without problems. Thanks for help.