GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - git-lfs/gitobj: gitobj reads and writes Git objects.

BranchesTags
Open more actions menu

Latest commit

 

History

252 Commits
252 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
errors
errors
 
 
pack
pack
 
 
script
script
 
 
storage
storage
 
 
vendor
vendor
 
 
LICENSE.md
LICENSE.md
 
 
README.md
README.md
 
 
SECURITY.md
SECURITY.md
 
 
backend.go
backend.go
 
 
backend_nix.go
backend_nix.go
 
 
backend_test.go
backend_test.go
 
 
backend_windows.go
backend_windows.go
 
 
blob.go
blob.go
 
 
blob_test.go
blob_test.go
 
 
commit.go
commit.go
 
 
commit_test.go
commit_test.go
 
 
errors.go
errors.go
 
 
errors_test.go
errors_test.go
 
 
file_storer.go
file_storer.go
 
 
go.mod
go.mod
 
 
go.sum
go.sum
 
 
memory_storer.go
memory_storer.go
 
 
memory_storer_test.go
memory_storer_test.go
 
 
object.go
object.go
 
 
object_db.go
object_db.go
 
 
object_db_test.go
object_db_test.go
 
 
object_reader.go
object_reader.go
 
 
object_reader_test.go
object_reader_test.go
 
 
object_type.go
object_type.go
 
 
object_type_test.go
object_type_test.go
 
 
object_writer.go
object_writer.go
 
 
object_writer_test.go
object_writer_test.go
 
 
storer.go
storer.go
 
 
tag.go
tag.go
 
 
tag_test.go
tag_test.go
 
 
tree.go
tree.go
 
 
tree_test.go
tree_test.go
 
 

Repository files navigation

gitobj

CI status

Package gitobj reads and writes loose and packed Git objects.

Getting Started

To access a repository's objects, begin by "opening" that repository for use:

package main

import (
	"github.com/git-lfs/gitobj"
)

func main() {
	repo, err := gitobj.FromFilesystem("/path/to/repo.git", "")
	if err != nil {
		panic(err)
	}
	defer repo.Close()
}

You can then open objects for inspection with the Blob(), Commit(), Tag(), or Tree() functions:

func main() {
	repo, err := gitobj.FromFilesystem("/path/to/repo.git", "")
	if err != nil {
		panic(err)
	}
	defer repo.Close()

	commit, err := repo.Commit([]byte{...})
	if err != nil {
		panic(err)
	}
}

Once an object is opened or an instance is held, it can be saved to the object database using the WriteBlob(), WriteCommit(), WriteTag(), or WriteTree() functions:

func main() {
	repo, err := gitobj.FromFilesystem("/path/to/repo.git", "")
	if err != nil {
		panic(err)
	}
	defer repo.Close()

	commit, err := repo.Commit([]byte{...})
	if err != nil {
		panic(err)
	}

	commit.Message = "Hello from gitobj!"
	commit.ExtraHeaders = append(commit.ExtraHeaders, &gitobj.ExtraHeader{
		K: "Signed-off-by",
		V: "Jane Doe <[email protected]>",
	})

	if _, err := repository.WriteCommit(commit); err != nil {
		panic(err)
	}
}

Packed Objects

Package gitobj has support for reading "packed" objects (i.e., objects found in packfiles) via package github.com/git-lfs/gitobj/pack. Package pack implements searching pack index (.idx) files and locating the corresponding delta-base chain in the appropriate pack file. It understands both version 1 and version 2 of the packfile specification.

gitobj will always try to locate a loose object first. If a loose object cannot be found with the appropriate SHA-1, the repository's packfile(s) will be searched. If an object is located in a packfile, that object will be reconstructed along its delta-base chain and then returned transparently.

More information

For more: https://godoc.org/github.com/git-lfs/gitobj.

License

MIT.

About

gitobj reads and writes Git objects.

Resources

Readme
MIT license

Security policy

Security policy
Activity
Custom properties

Stars

39 stars

Watchers

2 watching

Forks

15 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.