git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [JGIT PATCH 00/10] Object access improvements
@ 2009-04-21  1:21 Shawn O. Pearce
  2009-04-21  1:21 ` [JGIT PATCH 01/10] Safely handle closing an already closed WindowedFile Shawn O. Pearce
  0 siblings, 1 reply; 17+ messages in thread
From: Shawn O. Pearce @ 2009-04-21  1:21 UTC (permalink / raw)
  To: Robin Rosenberg; +Cc: git

This series tries to address issue 79[1] and GERRIT-81[2] by
detecting when packs have been overwritten on disk, or when
new packs have appeared and old packs have disappeared.

The first 5 patches are quite trivial and are just things I
found while working on the real issue.

Patch 6 is rather intrusive.  It starts a refactoring I have
always wanted to do, which is to split the object database out
of the Repository class, and also start to divorce it from the
local filesystem.  The library is in the same state after patch
5 as it was before patch 5; that is issue 79 is still an issue,
but everything else is fine.

Patch 7 and 8 fix issue 79.

Patch 9 is a rewritten version of your 1/3 posted Sun 19 Apr,
providing test cases for issue 79 / GERRIT-81.

Patch 10 is a broken test case.  Basically as I explain in the
commit message of 7, PackWriter can still crash randomly.

With 1-9 applied, issue 79 can be marked fixed, but GERRIT-81 is
still a problem, as any concurrent PackWriter thread may randomly
crash during a repack.

[1] http://code.google.com/p/egit/issues/detail?id=79
[2] http://jira.source.android.com/jira/browse/GERRIT-81

Shawn O. Pearce (10):
  Safely handle closing an already closed WindowedFile
  Change empty tree test case to use a temporary repository
  Replace hand-coded read fully loop with NB.readFully
  Clear the reverse index when closing a PackFile
  Introduce a new exception type for an in-place pack modification
  Refactor object database access with new abstraction
  Rescan packs if a pack is modified in-place (part 1)
  Scan for new packs if GIT_DIR/objects/pack has been modified
  Add test cases for loading new (or replaced) pack files
  BROKEN TEST: ObjectLoader stays valid across repacks

 .../org/spearce/jgit/lib/ConcurrentRepackTest.java |  252 +++++++++++
 .../org/spearce/jgit/lib/RepositoryTestCase.java   |    2 -
 .../tst/org/spearce/jgit/lib/T0003_Basic.java      |   11 +-
 .../tst/org/spearce/jgit/lib/T0004_PackReader.java |    1 -
 .../spearce/jgit/errors/PackMismatchException.java |   55 +++
 .../src/org/spearce/jgit/lib/ObjectDatabase.java   |  367 ++++++++++++++++
 .../src/org/spearce/jgit/lib/ObjectDirectory.java  |  438 ++++++++++++++++++++
 .../src/org/spearce/jgit/lib/PackFile.java         |   36 ++-
 .../src/org/spearce/jgit/lib/Repository.java       |  174 +--------
 .../org/spearce/jgit/lib/UnpackedObjectLoader.java |   34 +-
 .../src/org/spearce/jgit/lib/WindowedFile.java     |   16 +-
 11 files changed, 1183 insertions(+), 203 deletions(-)
 create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/lib/ConcurrentRepackTest.java
 create mode 100644 org.spearce.jgit/src/org/spearce/jgit/errors/PackMismatchException.java
 create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/ObjectDatabase.java
 create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/ObjectDirectory.java

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

end of thread, other threads:[~2009-04-22 23:04 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-21  1:21 [JGIT PATCH 00/10] Object access improvements Shawn O. Pearce
2009-04-21  1:21 ` [JGIT PATCH 01/10] Safely handle closing an already closed WindowedFile Shawn O. Pearce
2009-04-21  1:21   ` [JGIT PATCH 02/10] Change empty tree test case to use a temporary repository Shawn O. Pearce
2009-04-21  1:21     ` [JGIT PATCH 03/10] Replace hand-coded read fully loop with NB.readFully Shawn O. Pearce
2009-04-21  1:21       ` [JGIT PATCH 04/10] Clear the reverse index when closing a PackFile Shawn O. Pearce
2009-04-21  1:21         ` [JGIT PATCH 05/10] Introduce a new exception type for an in-place pack modification Shawn O. Pearce
2009-04-21  1:21           ` [JGIT PATCH 06/10] Refactor object database access with new abstraction Shawn O. Pearce
2009-04-21  1:21             ` [JGIT PATCH 07/10] Rescan packs if a pack is modified in-place (part 1) Shawn O. Pearce
2009-04-21  1:21               ` [JGIT PATCH 08/10] Scan for new packs if GIT_DIR/objects/pack has been modified Shawn O. Pearce
2009-04-21  1:21                 ` [JGIT PATCH 09/10] Add test cases for loading new (or replaced) pack files Shawn O. Pearce
2009-04-21  1:21                   ` [JGIT PATCH 10/10] BROKEN TEST: ObjectLoader stays valid across repacks Shawn O. Pearce
2009-04-21 23:16                     ` Robin Rosenberg
2009-04-22 16:33                       ` Shawn O. Pearce
2009-04-22 23:02                       ` Shawn O. Pearce
2009-04-21  2:10                   ` [JGIT PATCH v2 09/10] Add test cases for loading new (or replaced) pack files Shawn O. Pearce
2009-04-21  1:39                 ` [JGIT PATCH 08/10] Scan for new packs if GIT_DIR/objects/pack has been modified Shawn O. Pearce
2009-04-21  2:08                   ` [JGIT PATCH v2 " 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).