git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [JGIT PATCH 00/11] Repository instance caching
@ 2009-07-11 20:19 Shawn O. Pearce
  2009-07-11 20:19 ` [JGIT PATCH 01/11] Change Daemon to use concurrent collections for exported repositories Shawn O. Pearce
  0 siblings, 1 reply; 14+ messages in thread
From: Shawn O. Pearce @ 2009-07-11 20:19 UTC (permalink / raw)
  To: Robin Rosenberg; +Cc: git

This series lays the groundwork for caching Repository instances
within the JRE, such as a server daemon might want when it is
accessing multiple repositories, like a git:// daemon needs to do.

We also modify the way alternates are handled, checking to see if
an alternate is actually an objects directory for a Repository,
and if so, using the Repository instance from the cache in the
alternate chain.  This permits better reuse of pack files windows
when repositories are using alternates.  Based on this support we can
also now implement the ".have" logic in the ReceivePack server code.

I plan to follow onto this series with work to support submodules in
a server setting, e.g. processing the .gitmodules directly from the
object database and being able to examine the submodule Repository.

Shawn O. Pearce (11):
  Change Daemon to use concurrent collections for exported repositories
  Make Daemon's exportAll check not require synchronization
  Don't retry ".git" suffix in daemon if already tried
  Refactor ref advertisement code from server implementations
  Don't advertise HEAD from ReceivePack
  Add a use reference counter to Repository
  Introduce RepositoryCache to cache handles of Repository objects
  Change Daemon to use RepositoryCache
  Expose the Repository's ObjectDatabase object
  Use cached Repository instances when resolving alternates
  Send .have lines in ReceivePack for alternate repositories

 .../org/spearce/jgit/lib/RepositoryCacheTest.java  |  126 +++++++
 .../org/spearce/jgit/lib/RepositoryTestCase.java   |   16 +-
 .../jgit/errors/RepositoryNotFoundException.java   |   65 ++++
 .../jgit/lib/AlternateRepositoryDatabase.java      |  127 +++++++
 .../src/org/spearce/jgit/lib/ObjectDatabase.java   |   16 +-
 .../src/org/spearce/jgit/lib/ObjectDirectory.java  |   18 +-
 .../src/org/spearce/jgit/lib/Repository.java       |   18 +-
 .../src/org/spearce/jgit/lib/RepositoryCache.java  |  386 ++++++++++++++++++++
 .../src/org/spearce/jgit/transport/Daemon.java     |   76 ++---
 .../org/spearce/jgit/transport/DaemonService.java  |   14 +-
 .../org/spearce/jgit/transport/ReceivePack.java    |   67 +---
 .../org/spearce/jgit/transport/RefAdvertiser.java  |  189 ++++++++++
 .../src/org/spearce/jgit/transport/UploadPack.java |   93 +-----
 13 files changed, 1019 insertions(+), 192 deletions(-)
 create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryCacheTest.java
 create mode 100644 org.spearce.jgit/src/org/spearce/jgit/errors/RepositoryNotFoundException.java
 create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/AlternateRepositoryDatabase.java
 create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryCache.java
 create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/RefAdvertiser.java

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2009-07-21 15:28 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-11 20:19 [JGIT PATCH 00/11] Repository instance caching Shawn O. Pearce
2009-07-11 20:19 ` [JGIT PATCH 01/11] Change Daemon to use concurrent collections for exported repositories Shawn O. Pearce
2009-07-11 20:19   ` [JGIT PATCH 02/11] Make Daemon's exportAll check not require synchronization Shawn O. Pearce
2009-07-11 20:19     ` [JGIT PATCH 03/11] Don't retry ".git" suffix in daemon if already tried Shawn O. Pearce
2009-07-11 20:19       ` [JGIT PATCH 04/11] Refactor ref advertisement code from server implementations Shawn O. Pearce
2009-07-11 20:19         ` [JGIT PATCH 05/11] Don't advertise HEAD from ReceivePack Shawn O. Pearce
2009-07-11 20:19           ` [JGIT PATCH 06/11] Add a use reference counter to Repository Shawn O. Pearce
2009-07-11 20:19             ` [JGIT PATCH 07/11] Introduce RepositoryCache to cache handles of Repository objects Shawn O. Pearce
2009-07-11 20:19               ` [JGIT PATCH 08/11] Change Daemon to use RepositoryCache Shawn O. Pearce
2009-07-11 20:19                 ` [JGIT PATCH 09/11] Expose the Repository's ObjectDatabase object Shawn O. Pearce
2009-07-11 20:19                   ` [JGIT PATCH 10/11] Use cached Repository instances when resolving alternates Shawn O. Pearce
2009-07-11 20:19                     ` [JGIT PATCH 11/11] Send .have lines in ReceivePack for alternate repositories Shawn O. Pearce
2009-07-21 15:22           ` [JGIT PATCH 05/11] Don't advertise HEAD from ReceivePack Robin Rosenberg
2009-07-21 15:28             ` Shawn O. Pearce

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).