fix workDir argument. change public to private
Add a ChangelogCommand test to GitAPITestCase

The changelog() method returns no content from JGit, even though the
same method from CGit returns the expected content.  Rather than allow
that significant difference in behavior to distract from other work,
this test only executes on CGit.
Fix JGit test_show_revision_for_merge - line ending sanitization

The test_show_revision_for_merge fails on the JGit implementation on
Windows, but runs successfully on Linux. The same test runs
successfully on both JGit and C Git on Windows and Linux.

The difference seems to be in line ending handling in the diff output
from JGit on Windows.  The output includes the \r character in
addition to the \n character.  Rather than attempt to modify the
output of JGit for Windows, this change adapts the test to that output
difference by removing the leading and trailing white space characters
from the file name in the transformed diff output that is created
during test execution.

This does not alter the behavior of the production code.
[JENKINS-19994] Close files opened by JGit operations

The JGit Repository object opens files and requires that the close()
method on the repository object is called to close the files.

The JGit RevWalk object documentation states that the dispose()
method should be called on the RevWalk object to unlock any resources
it is holding.

The JGit ObjectReader documentation status that its resources should
be released by calling the release() method.

This change is not enough to allow workspace cleanup in all cases, since
there are other cases (outside the JGit implementation) which will cause
files to be kept open in the workspace.  Refer to JENKINS-20585 for one
example.
Add abort() method to ChangelogCommand fluent API

The JGit implementation of changelog calculation opens a JGit
repository object and a RevWalk object to compute the changelog.
Those objects open files.  The execute() method closes those opened
files.  Unfortunately, there is a case in GitSCM which does not call
execute().  The objects go out of scope from that call, but the files
remain open, which prevents the workspace from being deleted on
Windows (and leaks file descriptors).

All ChangelogCommand instances need to either call execute() or
abort() before they go out of scope.
Merge pull request #61 from MarkEWaite/JENKINS-19994-jgit-close-files

[JENKINS-19994] jgit close files
printing localized error message on SSLException since current error message is not enough to determine that there is a ssl problem
Throw GitLockFailedException on repository lock failure

Refs #17, #31
Merge pull request #43 from mshibuya/feature-checkout-lock-failure

Throw GitLockFailedException on repository lock failure
Merge pull request #62 from asbachb/master

Provide a more detailed error message when an SSLException occurs on checkout
Merge pull request #60 from MarkEWaite/master-fix-test-case-windows-diff-for-JGit

Fix JGit test_show_revision_for_merge - line ending sanitization
unused
confusing message
[maven-release-plugin] prepare release git-client-1.6.1
Add test of deprecated lsTree method
Add tests of CloneCommand implementations

The CliGit and JGit implementations are different as noted in the
comments of the test methods.

Refer to the comments in the source file for some of the difference
detected by the tests.
If CloneCommand base object has repository, close it at end of execute()
Attempt to close repo opened by fetch, hoping to close another file

Desparately need a unit test oriented way to identify the stack trace
of the code which opened a file so that the test failure can be
assigned to a specific stack trace.
Add test of getTagNames with no filter
Merge pull request #66 from MarkEWaite/master-add-getTagNames-no-filter-test

Add test of getTagNames with no filter