Notice: Some of the services that support the smooth operation of our websites are still in the process of being restored. As a result, certain features—such as images and committer paperwork—may be temporarily unavailable. Our team is actively working to resolve these issues and restore full functionality as soon as possible.

Thank you for your patience and understanding.

Election for Han-Wen Nienhuys as Committer on Eclipse JGit: Java implementation of Git

Role Type
Criteria

Over the last 3 years Han-Wen has contributed a stream of high quality patches [1].

Most notably he implemented reftable [2] for FileRepository [3] which provides a number
of advantages over the traditional storage format of loose and packed refs:
* O(1) write performance, even for deletions and transactions.
* atomic updates to the ref database.
* O(log N) lookup and prefix scans
* free from restrictions imposed by the file system: it is
case-sensitive even on case-insensitive file systems, and has
no inherent limitations for directory/file conflicts
* prefix compression reduces space usage for repetitive ref names,
such as gerrit's refs/changes/xx/xxxxx format.

He is also is working on a corresponding Go and C implementation [4] to ensure support for
the new storage format in all major git implementations.

Hence I think it's overdue that we welcome Han-Wen as a committer on the project.

[1]
* 7386f73bb - Remove reftree and ketch (5 weeks ago)<Han-Wen Nienhuys>
* 30fb4808f - Update reftable storage repo layout (11 months ago)<Han-Wen Nienhuys>
* 753fbaf11 - Simplify ReftableCompactor (11 months ago)<Han-Wen Nienhuys>
* c217d33ff - Documentation/technical/reftable: improve repo layout (12 months ago)<Han-Wen Nienhuys>
* 79266a1fe - reftable: don't check deadline on the first try (12 months ago)<Han-Wen Nienhuys>
* 936a031ca - reftable: clarify comment (12 months ago)<Han-Wen Nienhuys>
* 8c9f7656c - reftable: clear cache on full compaction (12 months ago)<Han-Wen Nienhuys>
* dd203f03c - reftable: remove outdated comment (12 months ago)<Han-Wen Nienhuys>
* 0bf256443 - reftable: clarify that LogCursor may return a null ReflogEntry (12 months ago)<Han-Wen Nienhuys>
* 00252730d - Add ReftableNumbersNotIncreasingException#toString (1 year ago)<Han-Wen Nienhuys>
* 5185d288c - Introduce RefDatabase#hasFastTipsWithSha1 (1 year, 2 months ago)<Han-Wen Nienhuys>
* 9cb8e2f31 - RepositoryCache: don't require HEAD in git repositories (1 year, 2 months ago)<Han-Wen Nienhuys>
* e0744891f - FileRepository: cleanup refs outside refs/ on reftable conversion (1 year, 2 months ago)<Han-Wen Nienhuys>
* 0356613f4 - pgm: add write stats to BenchmarkReftable (1 year, 2 months ago)<Han-Wen Nienhuys>
* a8f4bf6ab - pgm: add command to convert repo to reftable (1 year, 2 months ago)<Han-Wen Nienhuys>
* 38586d54d - file: implement FileReftableDatabase (1 year, 2 months ago)<Han-Wen Nienhuys>
* 63fba337b - Run Eclipse formatter on BatchRefUpdateTest (1 year, 2 months ago)<Han-Wen Nienhuys>
* 74bfec411 - Move KetchSystem.delay to FileUtils. (1 year, 2 months ago)<Han-Wen Nienhuys>
* 7c75a68b9 - reftable: enforce ascending order in sortAndWriteRefs (1 year, 3 months ago)<Han-Wen Nienhuys>
* cf11a03bc - Documentation/technical/reftable: change suggested file names (1 year, 3 months ago)<Han-Wen Nienhuys>
* e4fd171da - reftable: remove assert calls (1 year, 3 months ago)<Han-Wen Nienhuys>
* 2b1e94272 - reftable: split off generic code from DFS code (1 year, 3 months ago)<Han-Wen Nienhuys>
* 218bacdc1 - reftable: fix lookup by ID in merged reftables (1 year, 3 months ago)<Han-Wen Nienhuys>
* a358d0c53 - reftable: move AutoCloseable to ReftableReader (1 year, 4 months ago)<Han-Wen Nienhuys>
* c517725b8 - Documentation/technical/reftable: document rename in reflog. (1 year, 5 months ago)<Han-Wen Nienhuys>
* e5880d953 - reftable: pass OutputStream at construction time (1 year, 4 months ago)<Han-Wen Nienhuys>
* d75a6b5d8 - dfs: rename ReftableStack to DfsReftableStack (1 year, 4 months ago)<Han-Wen Nienhuys>
* 33dc08c16 - reftable: add maxUpdateIndex to Reftable (1 year, 4 months ago)<Han-Wen Nienhuys>
* c78fbf23a - dfs: use ReftableConfig() constructor in DfsReftableDatabase (1 year, 4 months ago)<Han-Wen Nienhuys>
* 434e6c732 - dfs: use RefDatabase API for exactRef in ReftableBatchRefUpdate (1 year, 4 months ago)<Han-Wen Nienhuys>
* 5c390cf9d - reftable: add OutputStream argument to ReftableWriter constructor (1 year, 4 months ago)<Han-Wen Nienhuys>
* 90efbd216 - reftable: read file footer in ReftableReader#allRefs (1 year, 4 months ago)<Han-Wen Nienhuys>
* 726bcc4fd - reftable: add ReftableReflogReader (1 year, 4 months ago)<Han-Wen Nienhuys>
* 0e3d4a273 - BatchRefUpdate: repro racy atomic update, and fix it (1 year, 5 months ago)<Han-Wen Nienhuys>
* d7ee5aafe - reftable: increment pointer *after* reading uint16 (1 year, 5 months ago)<Han-Wen Nienhuys>
* 81801d6f9 - reftable: test absense of prefix matching in Reflog (1 year, 5 months ago)<Han-Wen Nienhuys>
* 9f9163cbc - reftable: enforce ordering for ref and log writes (1 year, 5 months ago)<Han-Wen Nienhuys>
* ca3b4b608 - reftable: add some more comments (1 year, 5 months ago)<Han-Wen Nienhuys>
* ca9107d16 - reftable: fix seeking to refs in reflog implementation (1 year, 5 months ago)<Han-Wen Nienhuys>
* e60b9e187 - FileSnapshot: fix bug with timestamp thresholding (1 year, 6 months ago)<Han-Wen Nienhuys>
* 84e6c24e5 - FileSnapshot#equals: consider UNKNOWN_SIZE (1 year, 6 months ago)<Han-Wen Nienhuys>
* bbff3ff00 - Clarify error message for invalid Windows characters (1 year, 10 months ago)<Han-Wen Nienhuys>
* 8a5b044a9 - InternalPushConnection: don't swallow RuntimeException (2 years, 3 months ago)<Han-Wen Nienhuys>
* d1dc49e96 - Use a TreeMap to construct the list of renamed projects (2 years, 5 months ago)<Han-Wen Nienhuys>
* f3ec7cf3f - Remove further unnecessary 'final' keywords (2 years, 8 months ago)<Han-Wen Nienhuys>
* 6d370d837 - Remove 'final' in parameter lists (2 years, 8 months ago)<Han-Wen Nienhuys>
* f6873ffe5 - Fixup javadoc and formatting in RawText and RawParseUtils (2 years, 8 months ago)<Han-Wen Nienhuys>
* 08d2e0188 - Introduce new RawText constructor and RawParseUtils.lineMapOrBinary (2 years, 8 months ago)<Han-Wen Nienhuys>
* 6a420613f - RepoCommand: generate relative submodule URLs from absolute URLs. (2 years, 11 months ago)<Han-Wen Nienhuys>
* 3214171de - RepoCommand: don't record new commit if tree did not change (2 years, 11 months ago)<Han-Wen Nienhuys>
* 446a7096e - RepoCommand: persist unreadable submodules in .gitmodules (2 years, 11 months ago)<Han-Wen Nienhuys>
* 35bb7ccc4 - Declare LFS dependency on GSON for Bazel build (2 years, 11 months ago)<Han-Wen Nienhuys>
* f40ebed12 - Make SideBandInputStream public (3 years ago)<Han-Wen Nienhuys>
* dc24383b6 - Revert "Throw BinaryBlobException from RawParseUtils#lineMap." (3 years, 3 months ago)<Han-Wen NIenhuys>
* f5ae26f74 - Fix typo in comment (3 years, 3 months ago)<Han-Wen Nienhuys>
* f2e64cd89 - Throw BinaryBlobException from RawParseUtils#lineMap. (3 years, 3 months ago)<Han-Wen Nienhuys>
* ced658c44 - Avoid loading and merging binary data in ResolveMerger (3 years, 3 months ago)<Han-Wen Nienhuys>
* 2b444d781 - Introduce ObjectLoader.Filter for delegation (3 years, 3 months ago)<Han-Wen Nienhuys>
* ea2a4e3ab - Introduce RawText#load. (3 years, 3 months ago)<Han-Wen Nienhuys>
* a551b6469 - Treat RawText of binary data as file with one single line. (3 years, 6 months ago)<Han-Wen Nienhuys>
* ab0eedcea - Trim boilerplate in RawParseUtils_LineMapTest. (3 years, 6 months ago)<Han-Wen Nienhuys>
* 832808bd5 - Fix out-of-bounds exception in RepoCommand#relative (3 years, 8 months ago)<Han-Wen Nienhuys>
* fe5437e96 - Fix RepoCommand to allow for relative URLs (3 years, 9 months ago)<Han-Wen Nienhuys>
* f17ec3928 - Cleanup and test trailing slash handling in ManifestParser (3 years, 9 months ago)<Han-Wen Nienhuys>
* 84d855cda - ManifestParser: Throw exception if remote does not have fetch attribute (3 years, 9 months ago)<Han-Wen Nienhuys>
* f32d65759 - Document the intended use of RepoCommand#setURI() (3 years, 10 months ago)<Han-Wen Nienhuys>
* 6e652846f - Noop changes to ManifestParser (3 years, 10 months ago)<Han-Wen Nienhuys>
* 27b05c7d7 - Consistently use 'path' for the path to a subrepo in RepoCommand (3 years, 10 months ago)<Han-Wen Nienhuys>

[2] https://github.com/eclipse/jgit/blob/master/Documentation/technical/ref…
[3] https://git.eclipse.org/r/c/jgit/jgit/+/146568
[4] https://github.com/google/reftable

Nominated by
Date
-
Status
This election has been approved by the PMC.
Voter Vote Comments
Matthias Sohn +1 +1 implied by nomination
Christian Halstrick +1
Terry Parker +1
Sasa Zivkov +1

PMC Approval

  • Gunnar Wagenknecht (+1) Welcome!