|[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 , and has some nice API features . 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 , github , and orcz .  http://egit.eclipse.org/r/974  http://github.com/spearce/jgit/tree/rename-repository  http://repo.or.cz/w/jgit/spearce.git/shortlog/refs/heads/rename-repository  http://repo.or.cz/w/jgit/spearce.git/commit/3a7aec03e07ac853df5a00cbf06e6cd5e4ba2bc2  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.
Back to the top