Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
JGit/New and Noteworthy/0.8
< JGit | New and Noteworthy
Porcelain API
There's a new Git class that simplifies working with the JGit APIs.
// record a few commits Git git = new Git(db); git.commit().setMessage("initial commit").call(); git.commit().setMessage("second commit").setCommitter(committer).call(); git.commit().setMessage("third commit").setAuthor(author).call();
Merging
Fast-forward and Already up-to-date merges are now supported.
Internationalization
Exception messages are now translatable.
Standalone command utility `jgit` has translatable help/usage/output text.
Translations to languages other than English is now welcome.
Performance
Pack creation (during push, or when used as a server) uses about 50% less memory. This can be a significant savings for projects with 1 million+ objects.
Commits
There were a 157 commits total!
be86767d7150f2d3a2988c620dc627635a88c937 JGit 0.8.1 7804045c661ca0e88c893d8a1e3eb3711239aa6f Bump all features during release 99cf3d7a3bd57059d7537e16aac53923a096fe01 Describe how to generate iplog. 1489bd157c33b72927985402ed40afd799f569da eclipse-iplog: Use contribution rather than bug element 92e739413d8814918d9bb037da2b457554c86f9c eclipse-iplog: Add new consumes element to IP log 735467365ccb301fa5b379f321224a6fed3afdd7 Update cache of IPzilla CQ 3904 4f346afa1a173c7fc864c119ba1cbb95bbc7edba eclipse-ipzilla: Correctly parse result with empty last field 072ad087ff274ed8e0bee2fc941ced3d82ff6f4f Externalize strings in Commit command 16419dad35792bd4f9c8cc6eaff38faa7c9cd522 Don't use interruptable pread() to access pack files 5b0e73b849d19c9f072c4c6738a5d5adae413112 Add a merge command to the jgit API 6ca9843f3ebbea152969a8b795efce1d4ff15dbf Added merge support to CommitCommand 3c667b328ae086dcbfe159a22b3c86779a4590e5 Test root locale translations f3d8a8ecad614906a2c4ec0077cdb24129da6c6d Externalize strings from JGit 2e961989e42b1fe7e8bd9eaa7a3d2e88a0d1d001 Fix SSH deadlock during OutOfMemoryError b3247ba5244d95e0d2c850a3fa1f69668a5790f5 Fix race condition in StreamCopyThread ae972e774e2eb8c72585ad3d4e02687a5c2df66f Remove unnecessary truncation of in-pack size during copy b6d0586befb3417a72730443770abb223b9cae83 Reduce the size of PackWriter's ObjectToPack instances cb5bc195406aaead0de6fa563b4b8aaacb8d20b8 Reduce size of PackedObjectLoader by dropping long to int 9c4d42e94dbf199a9cef46a4b9286552c8633f4f Factor out duplicate Inflater setup in WindowCursor d8f20745bfe781116acd42c53c6a974439abde80 Squash OffsetCache into WindowCache 3cb59216f50f0af652dd0204654f820fed0e36fc Avoid unnecessary second read on OBJ_OFS_DELTA headers 3cba5377dfdad8c36d1f3b0642f56549821b8676 Fix hang when fetching over SSH f999b4aa63289cc5fb2941e9fa5f47e742e23fac Fix interrupted write in StreamCopyThread 3f143b8d6b5c20098e041e22be42216e668a4a0b Fix missing flush in StreamCopyThread a54e0bae687d4a3600fab87b1182d7303f097a92 Add commit command to the pgm package 04eb1ca4d4047529f36cbec6ed77098d3ab0171c Fix Maven Javadoc generation problem d7d035cbaa504834c6ef8e9110da583f8c41f26a Add missing pom dependency to org.eclipse.jgit.junit e36c2aa845c638cb656d11b90f67f6fd66aa1d6d Expose org.eclipse.jgit.junit via jgit p2 repository f3fb5824ba45197787bc4ffb81fafcd576c60291 Add builder-style API to jgit and Commit & Log cmd a496410df9d9d2ff72c662d229329cae302a0edc A stages field and getter for GitIndex entry introduced b9ab040b45f0a0329d76fc919b0111414fdaf035 Added MERGING_RESOLVED repository state dd63f5cfc17d6f52a54e0c6442ea3bed42043b36 Fix FooterLine.matches(FooterKey) on same length keys c10e13415705d63e4d5d2487ca6fff1fe1ff10bb Fix handling of corruption for truncated objects 02400552a05d13c3c318311b8af6fb4eef945d0e Lock down maven plugin versions 23583e59bbd707d4f10e15af7c1c4f2874e13685 Fix ReceivePackRefFilterTest on Windows f1946b0669b7f992133c350f650ae4c9a701f9b4 Cleaning up provider and feature names 374c28057a33c580f40a7c78ad906ee9f4d0587e Don't insert the same pack twice into a pack list a0a52897ed3fb66ff8a7e1737bf854042f77f0ce Favor earlier PackFile instances over later duplicates eeed0abd1626eb972059252bdc1c68b5bb8faf78 Cleanup duplicated object reuse code in PackWriter dafa8fbff42be3c644061fa6c81d149097bd31fd Fix NPE during InflaterCache return after corrupt loose object 585dcb7a1ce7fd9e9cbd8f61f8bc6ab9afcb329c ReceivePack: Clarify the check reachable option a770205070b52199e5c561f407ee0b0168dd8b9f ReceivePack: Micro-optimize object lookup when checking connectivity 6029bb24adafd4434f362c58e2f00c0057502f45 ReceivePack: Correct type of not provided object 2bb8defa5447c15a4fcbf23aaace9f11995f3ad0 IndexPack: Tighten up new and base object bookkeeping 329a0e1689f2493b7034d15185f4fbf59c9e49bb ReceivePack: Remove need new,base object id properties 8279361de8ca9a216c6dbfcc02591c011308223b ReceivePack: Discard IndexPack as soon as possible 7a91b180c193fa9fc168e4ccdf2215a41db73353 ReceivePack: fix ensureProvidedObjectsVisible on thin packs 466bec3cc9dad4166f80d05044111f9198308f8a ObjectIdSubclassMap: Correct Iterator to throw NoSuchElementException 4cc7b1c5b0e383ae3d65798e35f759441417fed8 ObjectIdSubclassMap: Add isEmpty() method 06ee913c8d5cd1afaa3c5573430f07e5655e1edf IndexPack: Correct thin pack fix using less than 20 bytes 5c780b387f5d2da42885907a58b6829f0f825263 Fix unit tests using MockSystemReader with user configuation 6da38b9474f943b66c6594c58510aec234742669 Optimize ref scanning cc905e7d4be2334cdea984cf478901e904770292 Make Repository.getConfig aware of changed config 5c377a8e8100d61dac3db5d48493c53f72bf8e7f Update build to use Tycho 0.8 b919a943481a5271aeb2a603c1cac05559e1d354 Speed up check for modifications of tracked resources fa4c3fe461064e24bc20954a713f0c09e13d6a18 JGit plugin not compatible with Eclipse 3.4 2b6c555aee869b7ef01c5953a143ca18583af182 Make parsing of PersonIdent from raw byte array fault-tolerant. be863689766bd74451ce687f8580cccd458b0d4b Qualify post-0.7.1 builds 22d712ba515b4076bd65e651c1b8deb2fa53dcc3 JGit 0.7.1 0dc93a2f4ab0c9ef8293c825c393fe0bad8b110a Fix EGit deadlock listing branches of SSH remote 14e469c44e3863299278abfb09b50d171cdc8aba Qualify builds as 0.8.0 7182fbc422571e014e6b565db373ca9452229d14 Qualify post-0.7.0 builds 72b8fa786afd60b99d5c53626f9f55b29c0e552e JGit 0.7.0 764f1635d4fec81e178bd98a08400eee2f633de0 tools/version.sh: Update OSGi manifest files 0553d4466a7a24f1bb4963e15d5231660e810359 Drop CQ 3448 from IP log 0f95d2d0462f8badd3cdb1fadb6dbb3fe84074b4 Add a paranoid 'must be provided' option to ReceivePack 89cdc3b713c214a8f7142ef0d0df714027ad9876 Reuse the line buffer between strings in PacketLineIn c0f093899f8c027fb4e0f4418ac19b0f8ad6be16 http.server: Use TemporaryBuffer and compress some responses 2156aa894cefbabd322fc405138c306bb4e939cd Reduce multi-level buffered streams in transport code 882d03f70e089bfad2fe2e84f4f9cd69e805e332 Fix smart HTTP client buffer alignment d8c3e98d73a4fb7409580a7d9f3395ac506f7e5d Use "ERR message" for early ReceivePack problems 1f4a30b80d734d28baeb48fb45013716f0afb7a4 Catch and report "ERR message" during remote advertisements 243b0d64a68990b10a3e6e0d5612cd5bb25626f8 Wait for EOF on stderr before finishing SSH channel 673b3984bdc540da99e1c390cf31f455896a1cda Capture non-progress side band #2 messages and put in result d33f939e8eb47795c1ec8e89a605303770e95f34 ReceivePack: Enable side-band-64k capability for status reports 4c44810df406115c811890336eaa131a8413149b Use more restrictive patterns for sideband progress scraping 3a9295b8942639b8ac9f161a84b20fe15896e6b6 Prefix remote progress tasks with "remote: " b7e8cefc9216ee852499cb15935f879df1e1e3b7 Decode side-band channel number as unsigned integer f2dc9f0bfe0bd521a9a2cf446b5210d8c85b583a Refactor SideBandInputStream construction 0af5944cac5e09ee99f242d029c89f924e4dd294 Refactor SideBandOutputStream to be buffered 24875de6bd864fa7082e1c96bf8aebe9950c3e54 Fix NLS to build under Java 5 2c14e78a225f4bb7d7d1e82ace2bacee5a6b153e s/StringBuffer/StringBuilder as appropriate where no concurrency is needed 48af6a5f539f66e6880a862f046160e5d4ee9af4 IP Log: Update initial contribution CQ 3448 4a73596ce4308a59813dd14b74bec2ce7a406b80 eclipse-iplog: Skip the initial contribution 8e2c17ca2addd984f1ba239aca27f19698606ed9 eclipse-iplog: Require at least one project section c94c631eda9e85b419fa41fa891b07b947ad6242 eclipse-iplog: Correct line counts in initial commit 41bc1738a4bbec12406a611b5d9f6ff7669c9431 eclipse-ipzilla: Make sure login was successful 6c64148f666dad0046086b65eb4912dafafe7a20 pgm: Report not in git repository rather than NPE 2ae9a85045915a38af2c300aa1874304fd8ea17b Provide NLS support in JGit. 578225870ad6530b57af4584a11a0dd0bad0b7a8 Script to fix license headers and copyrights in Java sources 19126f70e9e5645278b38239c01d990c32d44af2 Allow users of ReceivePack access to the objects being sent dd931bd9785661ac4145b3625b94e9f23c29cb03 Don't doubly wrap TransportException in smart HTTP client 908bfb6805eca9cb96a2cff0477256d2e47ad456 Fix TimeoutInputStreamTest, TimeoutOutputStreamTest assertions e54d33b6873f0b392640f9200398861210ac9374 Add a RefFilter interface to ReceivePack and UploadPack efdcb16be3d34e97bb05d9ddaea538ba2d906eca Remove pointless boolean during native push 3dd067042f60cabe970b0f5bc05d13988c93ddb3 http.test: Use JUnit 3 test runner 1ca22467f521853f4c4d93ebba2b744798aaa327 http.test: Add missing plugin.properties to build d207c69ff494c3f6154a9b4f76a6fe9165647961 http.test: Use JGit Format and compiler settings 8bf5ff6f1b7f38f6d64ac05aed0706c322ec60d2 Update build to use Tycho 0.7.0 23827fefc0019f58b3abe7051cc95f0d7e7adf73 Intermediate workaround for JGit's lack of core.autocrlf support 76b98230055444b0baded4ff1aa87da3b77e2b45 Use keep(1) instead of add() when skipping an entry 29b8fa84e680ce090ed355afd6052c4be9137a0c Don't allow DirCacheEntry with mode of 0 329abf721214f60077c9b17cc2c4235bdeed2c4f Disallow creating invalid DirCacheEntry records ad94dca1ac2a5c9756aa099790524bdd086bdc2a Adding some Eclipse-related legal files to JGit c581672557f0fb014babeb79c15d7f79fb206908 Ensure RawText closes the FileInputStream when read is complete 179a9ba4a2f33b52c74c9a9685985232ace68c89 Cleanup OSGi Import-Package specifications to use versions 0e137c4d9e5c245424e78208a104fbc8b3aaee2a Micro-optimize CanonicalTreeParser next() for ObjectWalk db54736e714e3c7e8e54b38bbf9f1c2d0026d15d Fix ObjectWalk corruption when skipping over empty trees 0d94a5ca666abbc787392565bbeb96c47dd36e7e Ensure the tree parser resets in ObjectWalk 986d616ed4f1fc4cfcf3fbc4d5ad4569030b748a Correct ObjectWalk error message when bad object is found 784b24dde151a967229c2f8c2f08b0827709bd4d Correctly skip over unrecognized optional dircache extensions 434e7884e5b7db7a4314e80c33a3b98f045050b9 Remove RepositoryTestCase from DirCacheCGitCompatabilityTest d9fc01b8b2043e0e0bcf719c62be3d5889ac9954 Fix .classpath to make jgit easily runnable from inside eclipse efa8b52df5627b0d0d17e312e9d585b6232ceed6 Fix server side NPE during push to empty repository 1e48c338dc237d5d4e314646d7b4d775249065c9 Generate an Eclipse IP log with jgit eclipse-iplog 48e9a010ae9cfee5cc2daae2bf20d510ab9c108f Add unsetSection to Config to remove an entire block 0cf7fd2cc5804290eac7ea31234e356a9e82ee01 Update the update site URL and corresponding feature.properties. f2d5187ea1843c4ce3824874c145e1f40e4cff57 Fix racy HTTP tests by waiting for requests to finish 869c8434f6bfa6093299031942026084a5610165 Don't confuse empty configuration variables with booleans e905d93f9f88bf9a5a549cc1355385ac1029cbb4 Disable the JRE HTTP cache, if any 08a77c04b4574ca4b282154d4ed4ab85cf2fcaa2 Check for remote server exec failures and report 7c82df1114537fe221eeb2d8ac79b3eab9fa7225 Relax ObjectChecker to permit missing tagger lines 0238a21b624abf079ae21835a13067d2c8dedd81 Correct bundle, provider names to be consistent 927437ce3aad331a6982f9e25a65a600a5f12b4a Correct indentation in org.eclipse.jgit.packaging/pom.xml 56f6d9ebc372b6e64065ccf9d6aebf96bb91abc8 Make HTTP test project work in Eclipse 36f05a9c27e6961b10df0b65014ffc869f4f8686 Optimize RefAdvertiser performance by avoiding sorting 57f6f6a6bb50bf4916a32723c4f32bac616a1da6 branch: Add -m option to rename a branch 73b6efc9289d6f7b6c147f4c2e2c62d2134fd7f3 Replace writeSymref with RefUpdate.link 01b5392cdbc12ce2e21fd1d1afbd61fdf97e1c38 Rewrite reference handling to be abstract and accurate 407fe631aec08ec4b0f24462b3fa2cee67a83914 Use build timestamp as OSGi version qualifier ab697ff18b09e5d49e028b7a32844d408b02ccf2 Create new RefList and RefMap utility types cc64794b245a094175d817bce6b581d4dddb47cf Added caching for loose object lookup during pack indexing 9151264e7d4eddcc6d65b1e0ce31e5cde9b9ad37 Adding PDE API Tools nature to JGit 2df9cf253571838f28c4a5b4b1bbbb9cc7b6b15e Remove redundant Maven plugin declarations from sub-modules 1c785d6902278f17a92759dc20787a63003e0b03 Introduce a named constant for the ".git" directory extension 0b8b6b5309f2510f1a2e1c3d77942fa9470dd324 Introduce a named constant for the .git directory. f245579820f8113ae767864772731e8ad97b5a1f Maven 3/Tycho build for JGit feature f5eb0d93660786213b98dadde7d93c5605454495 Add JUnit tests for HTTP transport d5bc8be743a6308509f36a2bd2f9414030eea9ea Download HEAD by itself if not in info/refs 8c836c6f21a07897faae41c6132ba49e66025328 client side smart HTTP 2e5214462e7f7d93ff39b522c2343105443393c9 server side: smart fetch over HTTP 81fea92ef725ab2d685b02052da30a76fb9c5582 server side: smart push over HTTP 5e33a1de831fcbac4ff53cadacfdfc8e7b204ffe Simple dumb HTTP server for Git 71b34847299f0c8f6923fe37fdd509f57fd35830 Expose PacketLineOut for reuse outside of the transport package 7ed6805425d69826ad19c96b352a6fd533ee4cb4 Expose RefAdvertiser for reuse outside of the transport package e187618b6bc098f367d36c945f8518e4b2aeb63f Teach UploadPack how to use an RPC style interface 2a5c8cb46c797b756b247d57f70a90d3939e149c Teach ReceivePack how to use an RPC style interface 3f8fdc03253264cae2172c168b5c959ea09a4c9d Refactor TemporaryBuffer to support reuse in other contexts a22b8f5fac9dd9b99333d709e6ef8f09ca6cd0d7 Implement multi_ack_detailed protocol extension f945c424d0cc7688cd160fd5ed9636cd2479e378 Abstract out utility functions for creating test commits 23cb7f9d5c1fa1c57cc59350ff16a9ecff527313 Fix PersonIdent to always use SystemReader de45869e1dc28fa99951709b9485a35dbcea4444 Fix RefWriter creation of info/refs to omit HEAD f88cac039eaa834859b2b2e748c0d8bb0ad82e67 Move TestRng to our JUnit helper package 15e2b45a818137fd0d6dcd102b0db1a26bc4321b Correct spelling error in StringUtils javadoc 20b4d4740aea3b0f51063211f3b69261ced0a5d9 Finish removing Apache Felix maven-bundle-plugin cbab08fb2885b3024e7786e7665efad2b0579310 Fix merge for "Partial revert "Switch build to Apache Felix maven-bundle-plugin"" 5eac1a4896175065065133dbc8d213dacba201b3 Partial revert "Switch build to Apache Felix maven-bundle-plugin"