Skip to content

shazow/go-git

 
 

Repository files navigation

GoDoc License Build Status

go-git

Pure-Go implementation of Git as a library.

MOVED: Future work on this library is maintained at https://src.sourcegraph.com/go-git.


Origins

This is a fork of gogits/git (which was originally a fork of speedata/gogit). Unfortunately, gogits/git is no longer maintained and is not accepting PRs, so this is a new extension of that work.

shazow/go-git is not backwards-compatible with gogits/git.

Goals

Short term

go-git's API should not be considered stable until these goals have been achieved.

  • Remove features that depend on shelling out to git.
  • Remove redundant features (in progress).
  • Add key features to support implementing sourcegraph/go-vcs's Repository interface. (See shazow/go-vcs#1)
    • Walk tree filesystem
    • Walk commit ancestry
    • Diff
    • Blame
    • Subrepositories
    • Search

Long term

  • Add a storage driver interface for repositories with virtual/in-memory repository support.
  • Improve test coverage.
  • Improve query performance with caching and bitmap indexes.
  • Rework use of locks (probably get rid of them, require consumer to manage repository locking).

Sponsors

Work on this fork is sponsored by Sourcegraph.

License

  • shazow/go-git changes are released under Apache v2.
  • gogits/git (major rewrite of original MIT code) is licensed under Apache v2.
  • speedata/gogit is licensed under MIT.

About

Fork of gogits/git with many changes/additions/removals.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%