NewOdbBackendLoose creates a backend for loose objects.
(objectsDir string, compressionLevel int, doFsync bool, dirMode os.FileMode, fileMode os.FileMode)
| 94 | |
| 95 | // NewOdbBackendLoose creates a backend for loose objects. |
| 96 | func NewOdbBackendLoose(objectsDir string, compressionLevel int, doFsync bool, dirMode os.FileMode, fileMode os.FileMode) (backend *OdbBackend, err error) { |
| 97 | runtime.LockOSThread() |
| 98 | defer runtime.UnlockOSThread() |
| 99 | |
| 100 | var odbLoose *C.git_odb_backend = nil |
| 101 | var doFsyncInt C.int |
| 102 | if doFsync { |
| 103 | doFsyncInt = C.int(1) |
| 104 | } |
| 105 | |
| 106 | cstr := C.CString(objectsDir) |
| 107 | defer C.free(unsafe.Pointer(cstr)) |
| 108 | |
| 109 | ret := C.git_odb_backend_loose(&odbLoose, cstr, C.int(compressionLevel), doFsyncInt, C.uint(dirMode), C.uint(fileMode)) |
| 110 | if ret < 0 { |
| 111 | return nil, MakeGitError(ret) |
| 112 | } |
| 113 | return NewOdbBackendFromC(unsafe.Pointer(odbLoose)), nil |
| 114 | } |
| 115 | |
| 116 | func (v *Odb) ReadHeader(oid *Oid) (uint64, ObjectType, error) { |
| 117 | runtime.LockOSThread() |
searching dependent graphs…