Releases: ForNeVeR/Fenrir
Fenrir v1.1.0
Fixed
- #162: "Invalid hash" when traversing a repository. This issue happened with repositories where multiple pack files are present.
Changed
- Updated the dependency versions.
Fenrir v1.0.0
Changed
-
Breaking change summary:
- most of the APIs that accept any file system paths now require them wrapped in
TruePath.LocalPath, - the newly introduced type
Fenrir.Git.Sha1Hashis now thoroughly used in the public API, - a lot of synchronous functions performing blocking I/O have been converted to asynchronous,
- a lot of APIs have been removed from the public surface.
- most of the APIs that accept any file system paths now require them wrapped in
-
Breaking changes:
Commands.SHA1returns aSha1Hashnow;Commands.TreeStreams.Hashesis now an array ofSha1Hashobjects;Commands.commitBodyToStreamhas been moved toCommits.WriteCommitBody, and now now requires non-curried arguments;Commands.createEmptyRepohas been renamed toInitializeRepository, and now requires aLocalPathas an argument;Commands.getRawObjectPathhas been renamed toObjects.GetRawObjectPath, now requiresLocalPathandSha1Hashas arguments;Commands.guillotineObjecthas been moved toObjects.Guillotine, and now requires non-curried arguments;Commands.headifyStreamhas been moved toObjects.WriteObject, and now requires non-curries arguments and returns aSha1Hash;Commands.parseCommitBodyhas been moved toCommits.ReadCommit, now requiresPackIndex,LocalPathandSha1Hashas arguments (non-curried anymore), and returns aTask(i.e., made asynchronous);Commands.parseTreeBodyhas been moved toTrees.ParseTreeBody, now requiresPackIndex,LocalPathandSha1Hashas arguments, and returns aTask;Commands.readHeaderhas been renamed toObjects.ReadHeaderFromStream;Commands.readObjectHeaderhas been moved toObjects.ReadHeader, now requiresPackIndex(see below),LocalPathandSha1Hashas arguments, returns aTask;Commands.streamToCommitBodyhas been moved toCommits.ReadCommitBody;Commands.treeBodyToStreamhas been moved toTrees.WriteTreeBody, and now requires non-curried arguments;Commands.updateObjectInTreenow requires aPackIndex,Sha1Hashes andLocalPathas arguments (non-curried), and returns aTask;Commands.verifyPackhas been renamed toVerifyPackFile, now requires aLocalPathas an argument, and requires the arguments in non-curried form;Commands.writeObjectHeaderhas been moved toObjects.WriteHeader, and now requires non-curried arguments;Commands.writeStreamToFilehas been moved toObjects.WriteToFile, and now requiresLocalPathandSha1Hashas arguments (non-curried);Commands.writeTreeObjectshas been renamed toWriteTreeObjects, now requiresLocalPathas an argument, and requires non-curried arguments;Metadata.CommitBody.Parentsis now an array ofSha1Hashes;Metadata.CommitBody.Treeis now aSha1Hash;Metadata.TreeAtom.Hashis now aSha1Hash;Metadatais no longer a module but now a namespace, meaning all the nested types are now top-level types in the namespace;Ref.CommitObjectIdis now aSha1Hash;Refs.ReadHeadRefhas been renamed toReadHead;Refs.isHeadDetachedhas been renamed toIsHeadDetached, and now requires aLocalPathas an argument;Refs.readRefshas been renamed toReadRefs, and now requires aLocalPathas an argument;Refs.updateAllRefshas been renamed toUpdateAllRefs, now requiresLocalPathandSha1Hashes as arguments;Refs.updateHeadhas been renamed toUpdateHead, now requiresSha1HashandLocalPathas arguments (non-curried form);Sha1.calcSHA1Hashhas been renamed toCalculateHardened, and now returns aSha1Hash;Zlib.packObjecthas been renamed toPackObject, and now requires the arguments in the non-curried form;Zlib.unpackObjectAndReturnPackedLengthhas been renamed toUnpackObjectAndReturnPackedLength, and now requires the arguments in the non-curried form;Zlib.unpackObjecthas been renamed toUnpackObject, and now requires the arguments in the non-curried form.
-
Other changes:
- #111: added an API and implementation for faster commit enumeration.
Packing.PackedObject.Streamis now a generalStreaminstead of aMemoryStream.
Removed
- Breaking:
Commandsfunctions have been removed from the public API:SHA1,changeHashInCommit,changeHashInTree,doAndRewind,getHeadlessCommitBody,getHeadlessTreeBody,hashOfObjectInTree,refsCommand,streamToTreeBody;
DeltaCommandsmodule has been removed from the public API;PackVeriticationmodule has been removed from the public API;Refsfunctions have been removed from the public API:identifyRefs,updateRef;
- everything from
Sha1module except for theCalculateHardenedfunction (see above) has been removed from the public API; Toolsmodule has been removed from the public API- (this includes all the extension methods for
BinaryReaderprovided by the package);
- (this includes all the extension methods for
UbcCheckmodule has been removed from the public API;Zlib.getDecodedStreamhas been removed from the public API.
Added
-
The whole public API has been covered by documentation.
-
A new
Commitsmodule, with several functions moved from theCommandsmodule (see above). -
Commits.TraverseCommitsfor listing all the parent commits of a certain commit. -
A new
Objectsmodule, with several functions moved from theCommandsmodule (see above). -
A new
Treesmodule, with several functions moved from theCommandsmodule (see above). -
A new type,
Metadata.Commit— for keeping aCommitBodytogether with itsHash. -
A new type,
PackIndex— to preserve and efficiently use the pack index data between different commands — for example, for faster commit traversal (#111). -
A new type,
Sha1Hash, as a quick wrapper over an SHA-1 hash value (represented as raw bytes).
Fenrir v0.2.0
Fenrir v0.1.0
This is the first library release. It includes various functions, mainly to be able to read the repository's reference list, access commits attached to each reference, and read and parse any Git object's contents.