-
Notifications
You must be signed in to change notification settings - Fork 534
Conversation
Current coverage is 65.89% (diff: 46.83%)
|
86eb298
to
804e099
Compare
d346525 support iterator. but it has a problem.
|
07449f2
to
d346525
Compare
@alcortesm PTAL |
func (r *Reader) FillObject(obj core.Object) error { | ||
obj.SetType(r.header.t) | ||
obj.SetSize(r.header.size) | ||
w, _ := obj.Writer() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please, don't ignore errors, they are quite important and we need to know when something fails and way.
Thanks for your contribution @sona-tar, There are some issues in you PR, above you will find some comments about them:
Also, using regexp can be quite CPU expensive for such a simple task, we are not sure we can afford to waste so much CPU. |
@@ -36,9 +37,66 @@ func (s *ObjectStorage) Set(core.Object) (core.Hash, error) { | |||
return core.ZeroHash, fmt.Errorf("not implemented yet") | |||
} | |||
|
|||
func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add a comment to this public method, so go doc can know about it.
It is ok if the commit iterator does not return commits sorted by Commiter.When. |
Return error that gets error except for ErrObjfileNotFound from getFromUnpacked()
…ror) return core.ErrObjectNotFound, if index pointer is nil.
1bcffaf
to
3c2050e
Compare
I rebased to v4. Can I fixup this PR commits to one commit? |
* Support non packed git objects * Support non packed git objects for Iterator * Fix error handling from Writer() in FillObject() * Fix format in func (r *Reader) FillObject(obj core.Object) error * Fix to return d.addRefsFromPackedRefs() error And if packed-refs dosen't exist not to return error in d.addRefsFromPackedRefs * Remove debug code * Add GoDoc for func (d *DotGit) Objectfile(h core.Hash) (fs.FS, string, error) * Add GoDoc for func (r *Reader) FillObject(obj core.Object) error * Add GoDoc for func (d *DotGit) Objectfiles() (fs.FS, []core.Hash, error) * Fix format in func (d *DotGit) Objectfile(h core.Hash) (fs.FS, string, error) * Rename value dotGitobjcts -> objsDir * Change regexp.Compile -> regexp.MustCompile * Move regexp to variable initialization * Rename regexp value to be more coherent * Fix object directory name and object file name to correct character * Faster Objectfiles func * Add test for FillObject * Add GoDoc for func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) * defer Close() * Return name values for defer function overwrite the error value. * Fix error handling in func (s *ObjectStorage) Get() Return error that gets error except for ErrObjfileNotFound from getFromUnpacked() * Rename getFromObject -> getFromUnpacked * Add test for func (d *DotGit) Objectfile(h core.Hash) (fs.FS, string, error) * Add test for func (d *DotGit) Objectfiles() (fs.FS, []core.Hash, error) * Faster check git object name * Faster dotgit_test.go * Fix Godoc for Objectfiles func * Refactor variable name in Objectfiles func * Fix GoDoc for objectfile func * Fix TestObjectfile func and TestObjectfiles func * Rename fixobj -> fixObj in Test Objectfile func * Fix test compare method * Refactor Get func in object.go * Refactor getFromUnpacked func in object.go * Fix GoDoc for ErrObjfileNotFound * Fix TestObjectfiles for not guarantee the slice order * Change error no such file or directory to target file not found * Change spec func (s *ObjectStorage) Get(h core.Hash) (core.Object, error) return core.ErrObjectNotFound, if index pointer is nil. * Add space * storage: Add object type hint parameter to ObjectStorage.getFromUnpacked
Support non packed objects for v4 branch.
Enable to get objects from
.git/objects/HASHDIR/HASHFILE
infunc (s *ObjectStorage) Get(h core.Hash) (core.Object, error)
.Now not support Iterator in
func (s *ObjectStorage) Iter(t core.ObjectType) (core.ObjectIter, error)
, but we should support iterator forfunc (r *Repository) Commits() (*CommitIter, error)
.I'm considering how to implement iterator.
#51