[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[jgit-dev] Refactoring Repository work
|
I am very close to something that is sane. Like anything else I
seem to do, the series is huge, but compiles, passes the tests,
and does what I set out to do: make Repository abstract. It also
seems to be faster [4], and has some nice API features [5].
At this point, I have no plans to go back and edit these commits.
Unless there is a really serious bug in one of these that someone
else can identify, and even then, I'd probably fix it as a follow-up
instead of squashed edit.
What's next on my plate is:
* Refactor IndexPack so receive doesn't require FileRepository
* Validate all ObjectInserter, ObjectReaders are released
* Implement ObjectStream for large binaries
* Use ObjectStream when blobs are processed
I'm going to try to get these done this coming week.
The series is available on egit [1], github [2], and orcz [3].
[1] http://egit.eclipse.org/r/974
[2] http://github.com/spearce/jgit/tree/rename-repository
[3] http://repo.or.cz/w/jgit/spearce.git/shortlog/refs/heads/rename-repository
[4] http://repo.or.cz/w/jgit/spearce.git/commit/3a7aec03e07ac853df5a00cbf06e6cd5e4ba2bc2
[5] http://repo.or.cz/w/jgit/spearce.git/blob/532421d98925f23ddaa63c8d5f22be24879a6385:/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryBuilder.java
Shawn O. Pearce (45):
Remove test of the unsupported core.legacyHeaders variable
Use higher level Config types when possible
Use CoreConfig, UserConfig and TransferConfig directly
Use RevTag/RevCommit to sort in a PlotWalk
Replace manual peel loops with RevWalk.peel
Rewrite resolve in terms of RevWalk
UploadPack: Permit flushing progress messages under smart HTTP
Disable topological sorting in PackWriter
DirCache must use getIndexFile
Use FileKey to resolve Git repository arguments
Download pack-*.idx to /tmp if not on local filesystem
Refactor amazon-s3:// property file loading to support no directory
Move additional have enumeration to Repository
Cleanup Repository.create()
Delegate repository access to refs, objects
Remove RepositoryConfig and use FileBasedConfig instead
Rename Repository 'config' as 'repoConfig'
Add RepositoryState.BARE
Consistently use getDirectory() for work tree state
Consistently fail work tree methods on bare repositories
Make lib.Repository abstract and lib.FileRepository its implementation
Use FileRepository where we assume other file semantics
Change Repository.getConfig() to return non-file Configs
Refactor object writing responsiblities to ObjectDatabase
Start using ObjectInserter instead of ObjectWriter
Refactor alternate object databases below ObjectDirectory
Replace WindowCache with ObjectReader
Use ObjectInserter for loose objects in WalkFetchConnection
Remove Repository.toFile(ObjectId)
Refactor repository construction to builder class
Rename Repository getWorkDir to getWorkTree
Redo event listeners to be more generic
Allow Repository.getDirectory() to be null
Use getObjectsDatabase().getDirectory() to find objects
Extract ObjectToPack to be top-level
Extract PackFile specific code to ObjectToPack subclass
Reclaim some bits in ObjectToPack flags field
Redo PackWriter object reuse selection
Redo PackWriter object reuse output
Implement zero-copy for single window objects
Move FileRepository to storage.file.FileRepository
Tighten up local packed object representation during packing
Remove getRawSize, getRawType from ObjectLoader
Simplify ObjectLoaders coming from PackFile
Move PackWriter over to storage.pack.PackWriter
171 files changed, 4923 insertions(+), 3636 deletions(-)
--
Shawn.