kourge / ggit Goto Github PK
View Code? Open in Web Editor NEWa Git library written in Go
a Git library written in Go
Both format.PackIndexV1
and format.PackIndexV2
are undocumented and the difference between the two is unclear. A brief overview of how the two index formats differ is needed.
We define our own implementation of Errorf
, which does fmt.Sprintf
and wraps the result in errors.New
. TODO: migrate to fmt.Errorf
, which does exactly that.
The core.Tree
struct provides public no way to retrieve the entries it contains. Add a public Entries
method that returns a slice of core.TreeEntry
structs.
Per the v2 pack index format description, for an entry, a 32-bit offset with its MSB set to 1 means the the 31-bit LSBs form an index to the higher offsets table, which contains zero or more unsigned 64-bit integers that represent the true offset of an entry when the offset is greater than 2 GiB.
format.PackIndexV2.OffsetForPos
currently assumes that this is never the case and always casts a 32-bit offset to an int64
, even if its MSB is set to 1.
The core.TreeEntry
struct contains a field named Sha
of type core.Sha1
. Everywhere else, public fields of type core.Sha1
are named Sha1
, so this instance should be changed for consistency.
core.GitMode
should format as non-left-padded octal digits, not left-zero-padded to six octal digits. For example, a GitMode
of value 040000
should print itself as 40000
, not 040000
.
b3586d6 introduces the format.Pack
type, but its Open
method will never close the corresponding index file if an error occurred while decoding it.
Hello @kourge,
I'm very interested on ggit and I'd like to know what's the status of it and your plans in the future for it.
You put a lot of effort in the project and then for some reason you didn't continue.
Do you, by chance, have any roadmap or TODO list of things that need to be polished or reviewed?
P.D: Project structure is super nice. Congrats!
In the util
package, a type currently called GapSlice
is a misnomer. It is named after a gap buffer, which is related to but not to be confused with a piece table, the actual data structure that the current type implements. TODO: rename the type to PieceSlice
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.