The git plugin presents a user interface and implements most of the Jenkins
git use cases, including things like choosing which branches to monitor,
polling for changes, publishing changes and tags, ignoring commits based on
message content or submitter, remembering reference repositories,
remembering timeout values, etc.

The git client plugin provides a git SCM abstraction and allows the user to
select one of two implementations, either command line git, or the pure
Java JGit implementation.  It is called by the git plugin (and by other
plugins which need git functionality).  The git client plugin was created
as a result of the refactoring which created git plugin 2.x.  The git
plugin 1.x code was hard to maintain, so Kohsuke Kawaguchi, Nicolas de
Loof, and others created the git plugin 2.x implementation, with the git
client plugin extracted as a git SCM API.

If the command line git implementation is chosen, then the command line git
installed on the slave which executes the job is used to perform the git
operations.  If the JGit implementation is chosen, then git operations are
performed within the Jenkins process.

The command line git implementation is the "reference implementation".  It
has the most features, and seems to be the most frequently used.  There are
a number of limitations in the JGit implementation which don't exist in the
command line git implementation.  Those use cases which it implements are
generally as capable as the command line git implementation.  There is a
little more information on command line git vs. JGit at
https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-WhyNotJGit
 .

Mark Waite

On Mon, Feb 8, 2016 at 11:58 AM Ashish Yadav <ashish.ya...@firemon.com>
wrote:

> I am running Jenkins LTS v1.609.3 on CentOS.
>
> I have the following plugins installed.
> git plugin v2.2.7
> git client v1.11.0
>
>
> However, I also have git installed on master and the slaves.
>
> Master - - git version 1.7.12.4
> Slave #1- git version 1.8.2.1
> Slave #2 - git version 1.7.12.4
> Slave #3 - git version 1.8.3.1
> Slave #4 - git version 1.8.3.1
> Slave #5 - git version 1.8.3.1
> Slave #6  - git version 1.7.1
> Slave# 7 - git version 1.8.3.1
> Slave #8  - git version 1.8.2.1
>
>
> When a job executes on the master or the slave, which ‘git’ is it using?
> Is it the version installed on the server or the git client plugin?
> Also, why do I need both the git and git client plugin? Why not just the
> git client plugin?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jenkinsci-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-users/D2DE416D.1595E%25ashish.yadav%40firemon.com
> <https://groups.google.com/d/msgid/jenkinsci-users/D2DE416D.1595E%25ashish.yadav%40firemon.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/CAO49JtEAWtW1T%3D6%3DgQfXFCxwfVMGWsF%2BA_QRbqgaZ%2BNXBXSiqg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to