[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jgit-dev] Vote for Committer status for David Borowitz was started by Shawn Pearce

technology.jgit Committers,
This automatically generated message signals that Shawn Pearce has
nominated David Borowitz as a Committer on the technology.jgit project. The
reason given is as follows:

Dave has contributed 41 commits to JGit, mostly in the wire protocol format
and DFS unit tests. As a contributor to Dulwich (Python implementation of
Git) Dave has a good understanding of the wire protocols involved.

Dave's commits to JGit:

commit 70ae16d708e0a207035872a16943f8b9151f33cd
Author: Dave Borowitz 
Date:   Tue Sep 18 19:49:35 2012 +0200

    Fix resolving expression with ~ and ^ than extends beyond history
    resolve("foo~X") where X is greater than the distance from foo to the
    root should return null, but 2a2362fb introduced a bug causing it to
    either return resolve("foo") or NPE. Add a test for the correct
    Also add an analogous test for foo^X where X is greater than the
    number of parents (which was not broken by that commit).
    Change-Id: Ic580081ece57c8c2df29b652897b425ecb34e11f

 .../eclipse/jgit/lib/RepositoryResolveTest.java    | 23
 .../src/org/eclipse/jgit/lib/Repository.java       |  5 ++++-
 2 files changed, 27 insertions(+), 1 deletion(-)

commit dc23a7cc421f09da42192c54ea8d54fb2ca30dfb
Author: Dave Borowitz 
Date:   Wed Jun 27 13:55:25 2012 -0700

    Make InMemoryRepository pack names globally unique
    It was easy to create multiple packs with exactly the same name and
    same DfsRepositoryDescription in a test, which can poison the
    DfsBlockCache. The javadoc for DfsObjDatabase.newPack() explicitly
    says pack names should be unique within an entire DFS, so do this by
    making the packId AtomicInteger static.
    Arguably, test writers shouldn't be doing things like putting
    'new DfsRepositoryDescription("test")' in a setUp() method, but that's
    a natural thing to do, and we don't document this restriction
    Change-Id: I9477413ab3950d83b7d17e173fbc0a3e064896e3

 .../src/org/eclipse/jgit/storage/dfs/InMemoryRepository.java           | 3
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 2444aa231a3a9618a413b7e42e8120b42258702d
Author: Dave Borowitz 
Date:   Mon Jun 25 10:46:36 2012 -0700

    Use the working tree's .gitmodules in SubmoduleWalk.forIndex()
    This was broken in fe1f1b8f8aba60fdd1ad6f0f72e9c9180978cc60, which
    preferred the index over the working tree when both were present.
    Change-Id: I97dcf9a088adcbd0187fa7eec9ef34445ce3a981
    Signed-off-by: Kevin Sawicki 

 .../eclipse/jgit/submodule/SubmoduleWalkTest.java  |  6 ++---
 .../org/eclipse/jgit/submodule/SubmoduleWalk.java  | 28
 2 files changed, 12 insertions(+), 22 deletions(-)

commit 330c3cae728d113e5d2fd62124c26edfee45c7e2
Author: Dave Borowitz 
Date:   Wed Jun 20 14:53:59 2012 -0700

    Serve 403 from RepositoryFilter on ServiceMayNotContinueException
    This has no effect on Git clients, but for browsers, 403 Forbidden may
    be more appropriate. 500 Internal Server Error implies that there is
    a problem with the server, whereas ServiceMayNotContinueException is
    specifically intended to cover cases where the server is functioning
    correctly but has determined that the request may not proceed.
    Change-Id: I825abd2a029d372060103655eabf488a0547c1e8

 .../src/org/eclipse/jgit/http/server/RepositoryFilter.java              |
2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fe1f1b8f8aba60fdd1ad6f0f72e9c9180978cc60
Author: Dave Borowitz 
Date:   Thu Jun 14 15:07:13 2012 -0700

    Read .gitmodules config from the tree in SubmoduleWalk
    It is not always appropriate to use the .gitmodules file from the
    working tree, for example if reading the modules at a specific commit.
    And sometimes it is impossible, as in a bare repository.
    When using the static factory methods, automatically set up the
    appropriate root tree so lazy loading of the config file reads from
    the appropriate place. Leave the current behavior of looking in the
    working tree as a fallback for the case where walking the index.
    Change-Id: I71b7ed3ba16c80b0adb8c5fd85b5c37fd4aef8eb

 .../eclipse/jgit/submodule/SubmoduleWalkTest.java  | 144
 .../org/eclipse/jgit/internal/JGitText.properties  |   1 +
 .../src/org/eclipse/jgit/internal/JGitText.java    |   1 +
 .../org/eclipse/jgit/submodule/SubmoduleWalk.java  | 149
 4 files changed, 288 insertions(+), 7 deletions(-)

commit 9346f1cc942cf320130cb303f4299a027d8d306a
Author: Dave Borowitz 
Date:   Fri Jun 15 11:05:12 2012 -0700

    Add a CommitBuilder method to edit arbitrary DirCacheEntrys
    Change-Id: Ic2f5ec28621219a8ff1272674e2bf2c8d36eb107

 .../src/org/eclipse/jgit/junit/TestRepository.java                | 8
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 458f64c6ea94da114cd99243302dfaacc7194d7c
Author: Dave Borowitz 
Date:   Thu Jun 14 15:06:09 2012 -0700

    Add a release() method to SubmoduleWalk
    We need a way to release the underlying TreeWalk. Also, use this
    method to release walks from the static factory methods on error or
    when submodules are not found.
    Change-Id: I6bedc2db78bcd577aef2cfe6715bb981a26dcfd7

 .../org/eclipse/jgit/submodule/SubmoduleWalk.java  | 41
 1 file changed, 29 insertions(+), 12 deletions(-)

commit b12f80e71ca2eee6ac121a8e8a3d271408ca3982
Author: Dave Borowitz 
Date:   Fri Jun 8 12:13:23 2012 -0700

    Add MetaFilter.serveRegex(Pattern)
    This allows the use of precompiled patterns, such as those compiled
    Change-Id: I1c87fea98e246004aecbae3aabaf1d21fbf3176e

 .../src/org/eclipse/jgit/http/server/glue/MetaFilter.java    | 12
 .../src/org/eclipse/jgit/http/server/glue/RegexPipeline.java |  4 ++++
 2 files changed, 16 insertions(+)

commit 61c4e39067777633ea5d6d02f7493b4c459aef20
Author: Dave Borowitz 
Date:   Thu Jun 7 12:08:48 2012 -0700

    Expand RegexPipeline documentation
    Include some behaviors that were not clear to me until I had used it a
    few times.
    Warn about broken behavior for capture groups that do not match. It
    would be nice to support these, but even for the cases where it's
    clear what the behavior should be, it would be infeasible to
    For example, consider the second group of the regex "(/a)/b(/c)?"
    matched against the path "/a/b". We might want getServletPath() to
    return "/a/b" and getPathInfo() to return null, but this is hard to
    implement: there's no easy way to say "the substring up to the point
    where (/c) would have matched if it were in the string even though
    it's not." And even if we could, it's not clear there is even a right
    answer in the general case.
    Moreover, ideally we could warn about such broken patterns at servlet
    initialization time, rather than at runtime, but even answering the
    question of whether there are capture groups that might not match
    requires more customized regular expression parsing than we want to
    embark on. Hence, the best we can do is document how it fails.
    Change-Id: I7bd5011f5bd387f9345a0e79b22a4d7ed918a190

 .../eclipse/jgit/http/server/glue/RegexPipeline.java  | 19
 1 file changed, 13 insertions(+), 6 deletions(-)

commit 7016504ecc1c7eeda721ff1c34f4af0684cd9c2e
Author: Dave Borowitz 
Date:   Thu Jun 7 11:41:25 2012 -0700

    Add simple tests for RegexPipeline
    Change-Id: Ie800c55702ea9724b393be0a8b36e0e4da1a6e0d

 .../eclipse/jgit/http/test/RegexPipelineTest.java  | 209
 1 file changed, 209 insertions(+)

commit 37307af6b4e5a9b28518d94f8db6c279361995b3
Author: Dave Borowitz 
Date:   Tue Mar 20 07:45:12 2012 -0700

    Enable call chaining on LsRemoteCommand methods
    Change-Id: I706332386415892d7a964b241442832ad79fa223

 .../src/org/eclipse/jgit/api/LsRemoteCommand.java          | 14
 1 file changed, 10 insertions(+), 4 deletions(-)

commit cc37cb777e57f6a5a8e0068945d322ac0f6834e2
Author: Dave Borowitz 
Date:   Thu May 3 16:44:53 2012 -0700

    Factor a base class out of ReceivePack
    We are working on a publish/subscribe based git protocol, and we want
    reuse several parts of the ReceivePack-like code for reading commands
    and processing a pack. In this new implementation, the connection
    management will be very different, in particular, there may be multiple
    packs received on a single open connection. So, hoist out as much as we
    can from ReceivePack, mostly just leaving behind the single-connection
    version in that class.
    Change-Id: I5567aad6ae77951f73f59c1f91996d934ea88334

 .../jgit/transport/AbstractAdvertiseRefsHook.java  |    2 +-
 .../eclipse/jgit/transport/AdvertiseRefsHook.java  |    8 +-
 .../jgit/transport/AdvertiseRefsHookChain.java     |    6 +-
 .../eclipse/jgit/transport/BaseReceivePack.java    | 1294
 .../org/eclipse/jgit/transport/ReceiveCommand.java |    8 +-
 .../org/eclipse/jgit/transport/ReceivePack.java    | 1136
 6 files changed, 1322 insertions(+), 1132 deletions(-)

commit 55bf06b43d8e8ed2f15357e4ecf26eefbff31e29
Author: Dave Borowitz 
Date:   Mon Mar 26 10:19:40 2012 -0700

    Allow RepositoryResolver to throw ServiceMayNotContinueException
    Implementations may want to send an error message to the user, which
    doesn't really fit with any of the existing exception types.
    ServiceMayNotContinueException, on the other hand, is documented as
    always containing a user-visible error string, so use that.
    Modify the git and HTTP transport mechanisms to properly relay this
    message to the end user.
    Change-Id: I362e67ea46102a145bf2c6284d38788537c9735f

 .../src/org/eclipse/jgit/http/server/RepositoryFilter.java    |  4 ++++
 org.eclipse.jgit/src/org/eclipse/jgit/transport/Daemon.java   |  3 ++-
 .../src/org/eclipse/jgit/transport/DaemonService.java         | 11
 .../eclipse/jgit/transport/resolver/RepositoryResolver.java   |  8
 4 files changed, 23 insertions(+), 3 deletions(-)

commit d794a4fde3a712d275644c58b21323807845a7fb
Author: Dave Borowitz 
Date:   Mon Mar 26 09:53:32 2012 -0700

    Clarify documentation of exceptions in RepositoryResolver
    Change-Id: Idf805f76f24bfa1f3552366197e0ed4e45cb2b74

 .../org/eclipse/jgit/transport/resolver/RepositoryResolver.java  | 9
 1 file changed, 5 insertions(+), 4 deletions(-)

commit e0531ace35b9c8eca9ded0a7b1540de3c49dbde6
Author: Dave Borowitz 
Date:   Fri Mar 23 14:38:06 2012 -0700

    Properly parse first line in ReceivePack with no '\0'
    Change-Id: Ic98e17aff4e4b3c3fa0359082bab689e4522e3d7

 org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 9bc26efe9dd1346d4318717bbc930bde81e60515
Author: Dave Borowitz 
Date:   Thu Mar 15 15:46:39 2012 -0700

    Pass a DfsRepositoryDescription to InMemoryRepository
    This was likely intended originally, but this class had never been
    used, so the mistake went unnoticed.
    Change-Id: I5e0e9f22ebf707c11d0581511c7a56b182188f77

 .../src/org/eclipse/jgit/storage/dfs/InMemoryRepository.java          | 4
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 039c785d9f0eac3fcb78b9dc2bf61796b82d3401
Author: Dave Borowitz 
Date:   Wed Mar 7 11:56:56 2012 -0800

    Try to send HTTP error messages over sideband
    When a client POSTs to /git-{upload,receive}-pack, the first line
    includes their client capabilities. As soon as the C git client sends
    side-band(-64k), it goes into a state where it chokes on data not sent
    in a valid sideband channel.
    GitSmartHttpTools.sendError() is called early in the request, likely
    before a {Upload,Receive}Pack handler is assigned or, even so, before
    has read the request. In some cases we must read the first line
    within sendError() to tell whether sideband is needed.
    Change-Id: I8277fd45a4ec3b71fa8f87404b4f5d1a09e0f384

 .../jgit/http/server/GitSmartHttpTools.java        | 133
 .../org/eclipse/jgit/transport/ReceivePack.java    |  17 +++
 .../jgit/transport/RequestNotYetReadException.java |  63 ++++++++++
 .../jgit/transport/SideBandOutputStream.java       |  19 +--
 .../src/org/eclipse/jgit/transport/UploadPack.java |  18 +++
 5 files changed, 231 insertions(+), 19 deletions(-)

commit d2787d481efcd5f883d52eed5029be380196f0ef
Author: Dave Borowitz 
Date:   Wed Mar 7 12:53:49 2012 -0800

    Extract the capability parsing logic in {Upload,Receive}Pack
    Change-Id: I7ac4e0ae98872a74b01162b5ca936fb15e2f8cff

 .../org/eclipse/jgit/transport/ReceivePack.java    | 43
 .../src/org/eclipse/jgit/transport/UploadPack.java | 49
 2 files changed, 78 insertions(+), 14 deletions(-)

commit 2b0044f2225d5ba10c74a5f4b210a9301ab06a60
Author: Dave Borowitz 
Date:   Wed Mar 7 12:52:19 2012 -0800

    Make capability strings in BasePack{Fetch,Push}Connection public
    Change-Id: Ib475dfc087705ea40e1db37ec9ef28a67fde6d72

 .../jgit/transport/BasePackFetchConnection.java    | 30
 .../jgit/transport/BasePackPushConnection.java     | 12 ++++++---
 2 files changed, 28 insertions(+), 14 deletions(-)

commit eea8581da5b61fb882be24e5657528b761a379e0
Author: Dave Borowitz 
Date:   Wed Mar 7 12:21:50 2012 -0800

    Fix a typo in "capabilities" in ReceivePack
    Change-Id: Ib26adf954dcb90403be9d6ed3b7a425a724c67d0

 .../src/org/eclipse/jgit/transport/ReceivePack.java          | 12
 1 file changed, 6 insertions(+), 6 deletions(-)

commit d023f2c78bb18ae81817436fb592cd51283eede4
Author: Dave Borowitz 
Date:   Mon Feb 27 12:15:49 2012 -0800

    Extract filterCommands as a static method on ReceiveCommand
    Change-Id: I24501f95185878d09b54562e48cb4e7e45dd3968

 .../org/eclipse/jgit/transport/ReceiveCommand.java | 22
 .../org/eclipse/jgit/transport/ReceivePack.java    | 19
 2 files changed, 28 insertions(+), 13 deletions(-)

commit 903e1b81d43af97e9aff611c77e82cb0969530d8
Author: Dave Borowitz 
Date:   Tue Feb 14 10:33:05 2012 -0800

    Remove PreUploadHook.onPreAdvertiseRefs
    AdvertiseRefsHook.advertiseRefs subsumes this behavior.
    Change-Id: Id2d1ebb2503c9ba79eda58aaea2fd76ec233427f

 .../org/eclipse/jgit/transport/PreUploadHook.java    | 20
 .../eclipse/jgit/transport/PreUploadHookChain.java   |  6 ------
 .../src/org/eclipse/jgit/transport/UploadPack.java   |  1 -
 3 files changed, 27 deletions(-)

commit 9d41dbd9585794bacff736d7b353ee3f17bc5a2b
Author: Dave Borowitz 
Date:   Tue Feb 14 14:54:45 2012 -0800

    Add an AdvertiseRefsHookChain, similar to the other hook chains
    Change-Id: I3bb0dc86047fe0446d18e0055f714092a658d228

 .../jgit/transport/AdvertiseRefsHookChain.java     | 98
 1 file changed, 98 insertions(+)

commit 1f2022e3a7e9482caa4823e031504b6bbe8246af
Author: Dave Borowitz 
Date:   Wed Feb 8 14:30:04 2012 -0800

    Modify refs in UploadPack/ReceivePack using a hook interface
    This is intended to replace the RefFilter interface (but does not yet,
    for backwards compatibility). That interface required lots of extra
    scanning and copying in filter cases such as only advertising a subtree
    of the refs directory. Instead, provide a hook that can be executed
    right before ref advertisement, using the public methods on
    UploadPack/ReceivePack to explicitly set the map of advertised refs.
    Change-Id: I0067019a191c8148af2cfb71a675f2258c5af0ca

 .../jgit/http/server/SmartServiceInfoRefs.java     |   4 +-
 .../jgit/http/server/UploadPackServlet.java        |   4 +-
 .../ReceivePackAdvertiseRefsHookTest.java          | 575
 .../jgit/transport/ReceivePackRefFilterTest.java   | 574
 .../jgit/transport/AbstractAdvertiseRefsHook.java  | 105 ++++
 .../eclipse/jgit/transport/AdvertiseRefsHook.java  |  87 ++++
 .../org/eclipse/jgit/transport/PreUploadHook.java  |  30 +-
 .../eclipse/jgit/transport/PreUploadHookChain.java |   8 +-
 .../org/eclipse/jgit/transport/ReceivePack.java    | 127 ++++-
 .../transport/ServiceMayNotContinueException.java  |  77 +++
 .../src/org/eclipse/jgit/transport/UploadPack.java |  80 ++-
 .../UploadPackMayNotContinueException.java         |  23 +-
 12 files changed, 1040 insertions(+), 654 deletions(-)

commit 7acd333e7d2e19b48534e3e9c72b19486d6e1b9a
Author: Dave Borowitz 
Date:   Wed Feb 8 14:30:08 2012 -0800

    Fix a typo referring to RevFilter as RefFilter
    Change-Id: I173efca7540b522d386216d1bd229e9a061263b2

 org.eclipse.jgit/resources/org/eclipse/jgit/JGitText.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bb8f0bec4ab255b58bb3bc5b393e2d8f2dcc6155
Author: Dave Borowitz 
Date:   Mon Feb 27 11:56:55 2012 -0800

    Minor javadoc wording fixes in ReceivePack
    Change-Id: I5b409ef39aee890bcd7d4277e36b85ac4dc48281

 org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 27cbdaf4975b01a23a95e94b6367318d3c7c4e0b
Author: Dave Borowitz 
Date:   Mon Feb 27 11:54:19 2012 -0800

    Expose an OutputStream from ReceivePack for sending client messages
    Callers may want to format and flush their own output, for example in a
    PreReceiveHook that creates its own TextProgressMonitor. The actual
    underlying msgOut can change over the lifetime of ReceivePack, so we
    implement a small wrapper.
    Change-Id: I57b6d6cad2542aaa93dcadc06cb3e933e81bcd3d

 .../org/eclipse/jgit/transport/ReceivePack.java    | 67
 1 file changed, 55 insertions(+), 12 deletions(-)

commit 4a01f47e824aba1898ee7aa1f0677b8014210cfb
Author: Dave Borowitz 
Date:   Wed Feb 15 11:10:52 2012 -0800

    Allow creating ReceiveCommands with a specified type
    This allows callers who know in advance whether a command is UPDATE or
    UPDATE_NONFASTFORWARD to specify this in the constructor rather than
    with a separate method call.
    Change-Id: Iae483594a4ff370ff75d17a7b0648c5590b3d1bd

 .../org/eclipse/jgit/transport/ReceiveCommand.java | 22
 1 file changed, 22 insertions(+)

commit 4bf22ff6e840b190e0a019e86cce19001dc587f4
Author: Dave Borowitz 
Date:   Tue Feb 7 15:16:40 2012 -0800

    Execute ReceiveCommands via a method rather than in ReceivePack
    This allows a PreReceiveHook to easily "take over" all of the
    ReceiveCommands passed to it, preventing any of them from being handled
    within the ReceivePack core.
    Change-Id: I2a8c1fc44e8dcadf22cd97a8ec4ee79d4d9d08f1

 .../org/eclipse/jgit/transport/ReceiveCommand.java | 78
 .../org/eclipse/jgit/transport/ReceivePack.java    | 68
 2 files changed, 79 insertions(+), 67 deletions(-)

commit 84c80be1dc45885969e2d0fa0421f709b8706453
Author: Dave Borowitz 
Date:   Tue Dec 13 11:00:19 2011 -0800

    Fire DfsPacksChangedEvents when committing packs.
    Once a pack has been committed with commitPack(), we know that the pack
    list has changed but we don't re-scan the underlying storage.
    Change-Id: Ia7b35df4442a5f5dfe7e817edcc77b44b5410d08

 .../eclipse/jgit/storage/dfs/DfsObjDatabase.java   | 24
 .../jgit/storage/dfs/InMemoryRepository.java       |  2 +-
 2 files changed, 24 insertions(+), 2 deletions(-)

commit 629c61513c96920efe44da9d5fe2a7669bf943bb
Author: Dave Borowitz 
Date:   Thu Dec 8 08:21:01 2011 -0800

    Add simple chain implementations of transport hooks and loggers
    Allows callers to effectively run multiple hooks and loggers without
    modifying the UploadPack/ReceivePack interface.
    Change-Id: I5b388816b63036ffff08ef3a9b857ccb764cb8c4

 .../jgit/transport/PostReceiveHookChain.java       |  90 ++++++++++++++++
 .../jgit/transport/PreReceiveHookChain.java        |  89 ++++++++++++++++
 .../eclipse/jgit/transport/PreUploadHookChain.java | 115
 .../jgit/transport/UploadPackLoggerChain.java      |  90 ++++++++++++++++
 4 files changed, 384 insertions(+)

commit d6172dc0de2cbaeb0bd38a9d30278dd5f9b140b3
Author: Dave Borowitz 
Date:   Thu Dec 8 08:00:39 2011 -0800

    Add a no-op UploadPackLogger and use it by default
    This matches the behavior of the hooks in UploadPack.
    Change-Id: I21277e52ee9452237d87084f06bb140dfa6bf608

 org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java  | 9
 .../src/org/eclipse/jgit/transport/UploadPackLogger.java         | 7
 2 files changed, 14 insertions(+), 2 deletions(-)

commit 2b584b92165f8dc711a2a4dfb00d49af8fe84a3a
Author: Dave Borowitz 
Date:   Thu Nov 10 12:58:13 2011 -0800

    Keep track of a static collection of all PackWriter instances
    Stored in a weak concurrent hash map, which we clean up while
    Usually the weak reference behavior should not be necessary because
    PackWriters should be released with release(), but we still want to
    avoid leaks when dealing with broken client code.
    Change-Id: I337abb952ac6524f7f920fedf04065edf84d01d2

 .../org/eclipse/jgit/storage/pack/PackWriter.java  | 52
 1 file changed, 52 insertions(+)

commit f26b79d04453b64ab9eead7130b099c7c90fd9ab
Author: Dave Borowitz 
Date:   Thu Nov 10 12:53:50 2011 -0800

    Estimate the amount of memory used by a PackWriter
    Memory usage is dominated by three terms:
     - The maximum memory allocated to each delta window.
     - The maximum size of a single file held in memory during delta
     - ObjectToPack instances owned by the writer.
    For the first two terms, rather than doing complex instrumentation of
    the DeltaWindows, we just overestimate based on the config parameters
    (though we may underestimate if the maximum size is not set).
    For the ObjectToPack instances, we do some rough byte accounting of the
    underlying Java object representation.
    Change-Id: I23fe3cf9d260a91f1aeb6ea22d75af8ddb9b1939

 .../org/eclipse/jgit/storage/pack/PackWriter.java  | 45
 1 file changed, 42 insertions(+), 3 deletions(-)

commit 16b8ebf2d1d099ac355767b1b1853ae7bf8854f1
Author: Dave Borowitz 
Date:   Thu Nov 10 12:49:15 2011 -0800

    Add an object encapsulating the state of a PackWriter
    Exposes essentially the same state machine to the programmer as is
    exposed to the client via a ProgressMonitor, using a wrapper around
    Change-Id: Ic3622b4acea65d2b9b3551c668806981fa7293e3

 .../resources/org/eclipse/jgit/JGitText.properties |   1 +
 .../src/org/eclipse/jgit/JGitText.java             |   1 +
 .../org/eclipse/jgit/storage/pack/PackWriter.java  | 120
 3 files changed, 108 insertions(+), 14 deletions(-)

commit 0f8e486a4d5f4e232c4a01119fec0e5d0148620d
Author: Dave Borowitz 
Date:   Wed Oct 19 15:55:14 2011 -0700

    Add a listener for changes to a DfsObjDatabase's pack files
    Intended for cross-request use, so only refers to
    DfsRepositoryDescriptions rather than DfsRepositorys.
    Change-Id: I2633e472c9264d91d632069f608d53d4bdd0fc09

 .../eclipse/jgit/storage/dfs/DfsObjDatabase.java   | 17 ++++--
 .../jgit/storage/dfs/DfsPacksChangedEvent.java     | 60
 .../jgit/storage/dfs/DfsPacksChangedListener.java  | 57
 3 files changed, 131 insertions(+), 3 deletions(-)

commit d55eb351061de32f208a924ce076bb8903e9c379
Author: Dave Borowitz 
Date:   Thu Nov 3 12:57:58 2011 -0700

    Expose the reverse index size in the DfsPackDescription
    This is analogous to the getPackSize() and getIndexSize() methods.
    Change-Id: I207c0c93f9145826d84b3610eb4319fca074ee0d

 .../src/org/eclipse/jgit/storage/dfs/DfsPackDescription.java      | 7
 .../src/org/eclipse/jgit/storage/dfs/DfsPackFile.java             | 8
 2 files changed, 10 insertions(+), 5 deletions(-)

commit 4fc1af68501c70407ade42dc13906061939a499c
Author: Dave Borowitz 
Date:   Thu Nov 3 12:54:21 2011 -0700

    Add a DfsPackFile method to get the number of cached bytes
    The counter is actually stored in the DfsPackKey so it can be
    manipulated by the cache.
    Change-Id: I10cee76c92d65c68d1aa1a9dd0c4fd7173c4cede

 .../src/org/eclipse/jgit/storage/dfs/DfsBlockCache.java       | 11
 .../src/org/eclipse/jgit/storage/dfs/DfsPackFile.java         |  5 +++++
 .../src/org/eclipse/jgit/storage/dfs/DfsPackKey.java          |  5 +++++
 3 files changed, 19 insertions(+), 2 deletions(-)

commit dff9d56b946552b4a6b802908a22793f95d3738c
Author: Dave Borowitz 
Date:   Thu Nov 3 12:52:19 2011 -0700

    Expose the list of pack files in the DfsBlockCache
    Callers may want to inspect the contents of the cache, which this
    them to do in a read-only fashion without any locking.
    Change-Id: Ifd78e8ce34e26e5cc33e9dd61d70c593ce479ee0

 .../org/eclipse/jgit/storage/dfs/DfsBlockCache.java | 21
 1 file changed, 19 insertions(+), 2 deletions(-)

commit 35d72ac806d73f0c2c2a1a9882321d08044bb6f8
Author: Dave Borowitz 
Date:   Fri Oct 7 15:31:19 2011 -0700

    Add a DFS repository description and reference it in each pack
    Just as DfsPackDescription describes a pack but does not imply it is
    open in memory, a DfsRepositoryDescription describes a repository at a
    basic level without it necessarily being open.
    Change-Id: I890b5fccdda12c1090cfabf4083b5c0e98d717f6

 .../eclipse/jgit/storage/dfs/DfsObjDatabase.java   | 16 +++-
 .../jgit/storage/dfs/DfsPackDescription.java       | 21 ++++-
 .../eclipse/jgit/storage/dfs/DfsRepository.java    |  8 ++
 .../jgit/storage/dfs/DfsRepositoryBuilder.java     | 21 +++++
 .../jgit/storage/dfs/DfsRepositoryDescription.java | 91
 .../jgit/storage/dfs/InMemoryRepository.java       | 22 ++++--
 6 files changed, 165 insertions(+), 14 deletions(-)

commit 5a38e5b440d884d95d503c34fa5b81a7a0e41be8
Author: Dave Borowitz 
Date:   Thu Nov 3 12:43:03 2011 -0700

    Clarify the docstring of DfsBlockCache.reconfigure()
    The docstring was copied from the local filesystem cache code, which
    actually attempted to reconfigure the cache on the fly. The DFS cache
    designed to be "reconfigured" exactly once.
    Change-Id: Ia0b01f5d6b6b3d3a68d65a5c229ff67c1cede5bc

 org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsBlockCache.java | 5
 1 file changed, 2 insertions(+), 3 deletions(-)

The vote is being held via the MyFoundation portal: voters *must* use the
portal for the votes to be properly recorded.  The voting will continue
until either all 10 existing Committers have voted or until they have been
given enough time to vote, even if they do not do so (defined as at least
one week). David Borowitz must receive at least three +1s and no -1s for a
successful election.

Eligible Committers must cast their votes through their My Foundation
portal page (do NOT just reply to this email; your vote will not be
correctly recorded unless you use the portal):


The project Committers eligible to vote are:

    Chris Aniszczyk
    Christian Halstrick
    Mathias Kinzler
    Stefan Lay
    Shawn Pearce
    Robin Rosenberg
    Kevin Sawicki
    Matthias Sohn
    Gunnar Wagenknecht
    Sasa Zivkov

*NOTE*: Successful elections are left open for a maximum of 120 days to
allow for processing of paperwork.  After that time the election will be
expired, regardless of its current status.  Should papework processing on
the part of the candidate take more time than allowed, a new election will
have to be held.

If you have any questions, please do not hesitate to contact your project
lead, PMC member, or the EMO <emo@xxxxxxxxxxx>