Skip to end of metadata
Go to start of metadata

Plugin Information

View Jigomerge on the plugin site for more information.

This plugin adds the ability to directly merge Subversion branches in Jenkins. See http://code.google.com/p/jigomerge/

Configuration

Configure your Subversion repository in the Source Code Management section : this is the branch you want to merge to.

In the Build Triggers section, set a value in Build periodically. Do not use Poll SCM !  

Advice : The merge to be effective should be run as often as possible. For exemple set the Build periodically to every hour. This will prevent conflicts as much as possible.

In the Build section, choose Perform svn merge with Jigomerge.

3 fields are mandatory :

  • source : the repository you want to merge from
  • username : the username to merge with
  • password

Optional fields :

  • one by one : if checked, one commit per revision merge
  • eager : if checked, try to merge revisions even if a previous one is conflicting. Use with caution !

Usage

TBD

Roadmap

  • add the ability, from the report view, when a conflict occurs, to choose to
    • ignore a revision
    • choose which revision to keep to resolve the conflict

Changelog

Release 0.8 (2015-08-18)
Release 0.7 (2011-07-08)
Release 0.6 (2011-04-30)
Release 0.5 (2011-04-26)
  • update to jigomerge script 2.2.4
Release 0.3 and 0.4 (2011-04-19)
  • validation script was not persisted
Release 0.2 (2011-03-19)
  • handle unbreakable merge feature with parameter "validation script"
Release 0.1 (2011-03-13)
  • initial release
  • jigomerge-plugin 0.1 uses jigomerge in version 2.2.3 

2 Comments

  1. May I know how this plugin is supposed to work? 

    I keep getting the "Unknown command" error:DEBUG executing command 'svn --non-interactive --username <username> revert -R <workspace>'
    Unknown command: '<workspace>'
    Type 'svn help' for usage.
    DEBUG exit value : 1
    ...
    svn: warning: W155007: '<workspace>' is not a working copy

    DEBUG exit value : 0
    class java.lang.RuntimeException # Failed to reset workspace !
    java.lang.RuntimeException: Failed to reset workspace !
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:54)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
    at SvnMergeTool.resetWorkspace(script1000009.groovy:283)
    at SvnMergeTool.launchSvnMerge(script1000009.groovy:72)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1054)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:704)
    at SvnMergeTool.invokeMethod(script1000009.groovy)
    at hudson.plugins.jigomerge.JigomergeBuilder.perform(JigomergeBuilder.java:101)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:802)
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.build(MavenModuleSetBuild.java:843)
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:640)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:584)
    at hudson.model.Run.execute(Run.java:1592)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:499)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:237)
    Build step 'Perform svn merge with Jigomerge' changed build result to FAILURE

    Thank you.
    -Indra
    Is there a groovy dependency? The same error occurs on master and slave (both are linux). I installed on the slave the groovy and set as "Tools Location" in Node Properties the groovy home.

  2. The plugin throws an error every single time its trying to merge revisions one by one. Any help will be much appreciated. Here is the trace

    Merging 3 revisions ...
    Handling revision 25273 ...
    class org.codehaus.groovy.runtime.InvokerInvocationException # groovy.lang.MissingMethodException: No signature of method: SvnMergeTool.svnMergeAndCommit() is applicable for argument types: (java.lang.String, java.lang.String, null, java.lang.String) values: //url changed for privacy, ...
    org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: SvnMergeTool.svnMergeAndCommit() is applicable for argument types: (java.lang.String, java.lang.String, null, java.lang.String) values: //url changed for privacy, ...
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:97)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1079)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:723)
    at SvnMergeTool.invokeMethod(script1000001.groovy)
    at hudson.plugins.jigomerge.JigomergeBuilder.perform(JigomergeBuilder.java:101)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
    at hudson.model.Build$BuildExecution.build(Build.java:205)
    at hudson.model.Build$BuildExecution.doRun(Build.java:162)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:537)
    at hudson.model.Run.execute(Run.java:1741)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:381)
    Caused by: groovy.lang.MissingMethodException: No signature of method: SvnMergeTool.svnMergeAndCommit() is applicable for argument types: (java.lang.String, java.lang.String, null, java.lang.String) values: //url changed for privacy, ...
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:78)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153)
    at SvnMergeTool.launchSvnMerge(script1000001.groovy:140)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
    ... 15 more
    Build step 'Perform svn merge with Jigomerge' changed build result to FAILURE

    Thanks,
    Smruti..