Skip to content
This repository was archived by the owner on Sep 11, 2020. It is now read-only.

Support non packed objects #68

Merged
merged 40 commits into from
Aug 30, 2016
Merged

Support non packed objects #68

merged 40 commits into from
Aug 30, 2016

Conversation

sonatard
Copy link
Contributor

@sonatard sonatard commented Aug 17, 2016

Support non packed objects for v4 branch.

Enable to get objects from .git/objects/HASHDIR/HASHFILE in func (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 for func (r *Repository) Commits() (*CommitIter, error).
I'm considering how to implement iterator.
#51

@sonatard sonatard changed the base branch from master to v4 August 17, 2016 03:18
@codecov-io
Copy link

codecov-io commented Aug 17, 2016

Current coverage is 65.89% (diff: 46.83%)

No coverage report found for v4 at 89f8bda.

Powered by Codecov. Last update 89f8bda...7165b45

@sonatard
Copy link
Contributor Author

sonatard commented Aug 17, 2016

d346525 support iterator. but it has a problem.

Commits() iterator isn't sorted by Committer.When.

@sonatard sonatard force-pushed the v4-non-packed branch 2 times, most recently from 07449f2 to d346525 Compare August 17, 2016 05:13
@mcuadros
Copy link
Contributor

@alcortesm PTAL

func (r *Reader) FillObject(obj core.Object) error {
obj.SetType(r.header.t)
obj.SetSize(r.header.size)
w, _ := obj.Writer()
Copy link
Contributor

@alcortesm alcortesm Aug 18, 2016

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.

@alcortesm
Copy link
Contributor

alcortesm commented Aug 18, 2016

Thanks for your contribution @sona-tar, There are some issues in you PR, above you will find some comments about them:

  • minor style changes
  • bugs in your code (wrong regexps)
  • it is missing tests
  • and I think you have broken the FsSuite.TestIterCompareWithMemoryStorage test.

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) {
Copy link
Contributor

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.

@alcortesm
Copy link
Contributor

It is ok if the commit iterator does not return commits sorted by Commiter.When.

sona-tar added 26 commits August 30, 2016 19:06
Return error that gets error except for ErrObjfileNotFound from getFromUnpacked()
…ror)

return core.ErrObjectNotFound, if index pointer is nil.
@sonatard
Copy link
Contributor Author

I rebased to v4.

Can I fixup this PR commits to one commit?
rebase is so hard...

@mcuadros mcuadros merged commit d7e1fee into src-d:v4 Aug 30, 2016
mcuadros pushed a commit that referenced this pull request Jan 31, 2017
* 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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants