title: Jenkins - Unable to find current origin/dev revision in submodule path 'submodule-project'
body: <p>I have a Jenkins job that pulls a git repo with submodule included in <code>.gitsubmodule</code> file. The first time that I pulled the repo, there was no issue, but after I have pushed some changes to the submodule, Jenkins no longer pulls the updated submodule repo. It only pulls the changes made in the main repo.</p>
  
  <p>So I have tried enabling the <em>"Update tracking submodules to tip of branch"</em> option:
  <a href="https://i.stack.imgur.com/Yb1mt.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Yb1mt.png" alt="enter image description here"></a></p>
  
  <p>But I get the following error:</p>
  
  <pre><code> &gt; /usr/bin/git submodule update --init --recursive --remote submodule-project
  FATAL: Command "/usr/bin/git submodule update --init --recursive --remote submodule-project" returned status code 1:
  stdout: 
  stderr: fatal: Needed a single revision
  Unable to find current origin/dev revision in submodule path 'submodule-project'
  
  hudson.plugins.git.GitException: Command "/usr/bin/git submodule update --init --recursive --remote submodule-project" returned status code 1:
  stdout: 
  stderr: fatal: Needed a single revision
  Unable to find current origin/dev revision in submodule path 'submodule-project'
  
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1924)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1643)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:71)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$7.execute(CliGitAPIImpl.java:1097)
      at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:153)
      at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:146)
      at hudson.remoting.UserRequest.perform(UserRequest.java:120)
      at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      at hudson.remoting.Request$2.run(Request.java:326)
      at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      at java.lang.Thread.run(Thread.java:748)
      at ......remote call to IS-MEAN_Slave(Native Method)
      at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1416)
      at hudson.remoting.UserResponse.retrieve(UserRequest.java:220)
      at hudson.remoting.Channel.call(Channel.java:781)
      at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:146)
      at sun.reflect.GeneratedMethodAccessor442.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:132)
      at com.sun.proxy.$Proxy65.execute(Unknown Source)
      at hudson.plugins.git.extensions.impl.SubmoduleOption.onCheckoutCompleted(SubmoduleOption.java:107)
      at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1188)
      at hudson.scm.SCM.checkout(SCM.java:485)
      at hudson.model.AbstractProject.checkout(AbstractProject.java:1276)
      at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:607)
      at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
      at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529)
      at hudson.model.Run.execute(Run.java:1738)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      at hudson.model.ResourceController.execute(ResourceController.java:98)
      at hudson.model.Executor.run(Executor.java:410)
  Finished: FAILURE
  </code></pre>
  
  <p>My .<code>gitmodule</code> file looks like this:</p>
  
  <pre><code>[submodule "submodule-project"]
      path = submodule-project
      url = &lt;path-to-submodule-project&gt;.git
      branch = dev
  </code></pre>
  
  <p>Any idea how to resolve this?</p>
  
  <p>Note: I could not find many references for syntax of .gitmodules file, but I think I am using <code>branch</code> option correctly. Please point out for any mistakes.</p>