Skip to content

Changes

Summary

  1. Update Orbit to the Oxygen version R20170516192513 (details)
  2. Run auto GC in the background (details)
  3. ArchiveCommand: Create prefix entry with commit time (details)
  4. JGit v4.7.1.201706071930-r (details)
  5. Prepare 4.7.2-SNAPSHOT builds (details)
  6. CloneCommand#setCallback should return 'this' (details)
  7. SubmoduleUpdateCommand#setCallback should return 'this' (details)
  8. Fix capitalization of command help summaries (details)
  9. Fetch: Add --recurse-submodules and --no-recurse-submodules options (details)
  10. Allow to use an external ExecutorService for background auto-gc (details)
  11. Use a dedicated executor to run auto-gc in command line interface (details)
Commit 5bfeec4fdbe72ec7f4dac252b98c8bad05898ef1 by Matthias Sohn
Update Orbit to the Oxygen version R20170516192513

Change-Id: I13575c77540149d383747a34754ac338ed60fb52
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.5.tpd
The file was addedorg.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/R20170516192513-Oxygen.tpd
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.tpd
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.target
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.target
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.5.target
The file was removedorg.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/S20170306214312-Oxygen.tpd
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.tpd
Commit 6b1e3c58b16651dc72ec79a614d507e014d18393 by Matthias Sohn
Run auto GC in the background

When running an automatic GC on a FileRepository, when the caller
passes a NullProgressMonitor, run the GC in a background thread. Use a
thread pool of size 1 to limit the number of background threads spawned
for background gc in the same application. In the next minor release we
can make the thread pool configurable.

In some cases, the auto GC limit is lower than the true number of
unreachable loose objects, so auto GC will run after every (e.g) fetch
operation.  This leads to the appearance of poor fetch performance.
Since these GCs will never make progress (until either the objects
become referenced, or the two week timeout expires), blocking on them
simply reduces throughput.

In the event that an auto GC would make progress, it's still OK if it
runs in the background. The progress will still happen.

This matches the behavior of regular git.

Git (and now jgit) uses the lock file for gc.log to prevent simultaneous
runs of background gc. Further, it writes errors to gc.log, and won't
run background gc if that file is present and recent. If gc.log is too
old (according to the config gc.logexpiry), it will be ignored.

Change-Id: I3870cadb4a0a6763feff252e6eaef99f4aa8d0df
Signed-off-by: David Turner <dturner@twosigma.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
The file was addedorg.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GcLog.java
The file was modified org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ConfigTest.java
The file was modified org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
The file was modified org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
The file was modified org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java
The file was modified org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
The file was modified org.eclipse.jgit/.settings/.api_filters
The file was modified org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java
The file was modified org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
Commit a66e60a98620c5ba9cd3d9fc8f97f268229589e6 by David Pursehouse
ArchiveCommand: Create prefix entry with commit time

The cgit archive command creates a prefix (root) directory entry
in the archive file. That entry's time is set to the commit time.

This patch makes jgit's behavior consistent with with cgit:

prefix: hoge/     -> creates prefix directory "hoge/" entry.
prefix: hoge////  -> creates prefix directory "hoge/" entry.
prefix: hoge/foo  -> does not create prefix directory entry, but for
                     each file/directory entry, prefix is added.

Change-Id: I2610e40ce37972c5f7456fdca6337e7fb07176e5
Signed-off-by: Yasuhiro Takagi <ytakagi@bea.hi-ho.ne.jp>
The file was modified org.eclipse.jgit/src/org/eclipse/jgit/api/ArchiveCommand.java
The file was modified org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ArchiveTest.java
Commit 1d1429697595040c3321e7c5406329b7e8fff48c by Matthias Sohn
JGit v4.7.1.201706071930-r

Change-Id: I28cd8fbe995d76c8a00e7db6ddf826e983d89043
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml
The file was modified org.eclipse.jgit.archive/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.ant/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml
The file was modified org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.http.test/pom.xml
The file was modified org.eclipse.jgit.ui/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.http.server/pom.xml
The file was modified org.eclipse.jgit.lfs.server.test/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml
The file was modified org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.pgm.test/pom.xml
The file was modified org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
The file was modified org.eclipse.jgit.pgm/pom.xml
The file was modified org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
The file was modified org.eclipse.jgit.archive/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml
The file was modified pom.xml
The file was modified org.eclipse.jgit.lfs.server/pom.xml
The file was modified org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.test/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml
The file was modified org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.test/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml
The file was modified org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml
The file was modified org.eclipse.jgit.lfs/pom.xml
The file was modified org.eclipse.jgit.ant/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.junit/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.ant.test/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml
The file was modified org.eclipse.jgit.junit.http/pom.xml
The file was modified org.eclipse.jgit.packaging/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/pom.xml
The file was modified org.eclipse.jgit.lfs.test/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml
The file was modified org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml
The file was modified org.eclipse.jgit.ui/pom.xml
The file was modified org.eclipse.jgit.junit/pom.xml
The file was modified org.eclipse.jgit.http.apache/pom.xml
The file was modified org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml
The file was modified org.eclipse.jgit/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/feature.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml
The file was modified org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml
Commit 8afd9b164846e15a52cb85cd9093d9c94a4fc864 by Matthias Sohn
Prepare 4.7.2-SNAPSHOT builds

Change-Id: I7c127bd402cd84c68d8f33a32c6aad093a2264c8
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
The file was modified org.eclipse.jgit.http.apache/pom.xml
The file was modified org.eclipse.jgit/META-INF/MANIFEST.MF
The file was modified pom.xml
The file was modified org.eclipse.jgit.lfs.test/pom.xml
The file was modified org.eclipse.jgit.ant/pom.xml
The file was modified org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.pgm.test/pom.xml
The file was modified org.eclipse.jgit.lfs.server/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml
The file was modified org.eclipse.jgit.ui/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/feature.xml
The file was modified org.eclipse.jgit.lfs/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml
The file was modified org.eclipse.jgit.archive/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml
The file was modified org.eclipse.jgit.ui/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.lfs.server.test/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml
The file was modified org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.ant.test/pom.xml
The file was modified org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.http.server/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.junit/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml
The file was modified org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.http.server/pom.xml
The file was modified org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF
The file was modified org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF
The file was modified org.eclipse.jgit.http.test/pom.xml
The file was modified org.eclipse.jgit.junit.http/pom.xml
The file was modified org.eclipse.jgit.ant/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/pom.xml
The file was modified org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.packaging/pom.xml
The file was modified org.eclipse.jgit.archive/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml
The file was modified org.eclipse.jgit.pgm/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.test/pom.xml
The file was modified org.eclipse.jgit.test/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit/pom.xml
The file was modified org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml
The file was modified org.eclipse.jgit.junit/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml
The file was modified org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.pgm/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml
The file was modified org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF
The file was modified org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF
Commit 9c7b95684c87eb82f6b8641188c2d51802dc7c34 by Matthias Sohn
CloneCommand#setCallback should return 'this'

The other methods in this class follow the builder pattern, and
return 'this', allowing multiple method calls to be chained in a
single statement.

Update the setCallback method to do the same.

Change-Id: I0366d28bf66ba47f08ee7eee636d613c9fe079f5
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
The file was modified org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java
Commit 4acad15086bb03c3b75a2ed82a3b57e412dfd518 by Matthias Sohn
SubmoduleUpdateCommand#setCallback should return 'this'

The other methods in this class follow the builder pattern, and
return 'this', allowing multiple method calls to be chained in a
single statement.

Update the setCallback method to do the same.
Change-Id: I4ddaacd6d50601f47f61eb6be8b62c8d59cce062
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
The file was modified org.eclipse.jgit/src/org/eclipse/jgit/api/SubmoduleUpdateCommand.java
Commit 325b51dbd4ada37ab8890f38f2bbc046ee9bb92e by David Pursehouse
Fix capitalization of command help summaries

Change-Id: Ibb245fdca5470efa6340af019b452dd17b01e9c2
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
The file was modified org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
Commit b6f954ad426f91561b4aa09d7ba23652516e7b0a by Matthias Sohn
Fetch: Add --recurse-submodules and --no-recurse-submodules options

Add options to control recursion into submodules on fetch.

Add a callback interface on FetchCommand, to allow Fetch to display
an update "Fetching submodule XYZ" for each submodule.

Change-Id: Id805044b57289ee0f384b434aba1dbd2fd317e5b
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
The file was modified org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
The file was modified org.eclipse.jgit/src/org/eclipse/jgit/api/FetchCommand.java
The file was modified org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java
The file was modified org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Fetch.java
The file was modified org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java
The file was modified org.eclipse.jgit/src/org/eclipse/jgit/lib/SubmoduleConfig.java
Commit 18ae9bb57db46d7d8720394cf409d56cd4b750f7 by Matthias Sohn
Allow to use an external ExecutorService for background auto-gc

If set use the external executor, otherwise use JGit's own simple
WorkQueue. Move WorkQueue to an internal package so we can reuse it
without exposing it in the public API.

Change-Id: I060d62ffd6692362a88b4bf13ee07b0dc857abe9
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
The file was modified org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java
The file was removedorg.eclipse.jgit/src/org/eclipse/jgit/lib/WorkQueue.java
The file was modified org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
The file was modified org.eclipse.jgit/META-INF/MANIFEST.MF
The file was addedorg.eclipse.jgit/src/org/eclipse/jgit/lib/internal/WorkQueue.java
The file was modified org.eclipse.jgit/src/org/eclipse/jgit/lib/BatchingProgressMonitor.java
Commit 8c59e64412881db8b9291c68bb49cdfa67e66586 by Matthias Sohn
Use a dedicated executor to run auto-gc in command line interface

WorkQueue uses daemon threads so auto-gc would not be executed after
short-lived commands run in command line. Hence use a dedicated executor
which we shutdown when the command finishes.

Change-Id: I0c2429ecfa04387389d159168ba78a020a696228
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
The file was modified org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Main.java