index-of-git

1.0.0 • Public • Published

index-of-git

NPM version

Given the SHA of a file that existed at any point in the history of a git repo, find the text of that file. This module maintains an in-memory index to make that search fast. It could easily be extended to keep a persistent index, if that turns out to be worthwhile.

It does not currently provide the commit + filename information, because I don't need that, and it would be a bit more work because we'd need to track all the commit + filename pairs which had matching content. And would you want the commits where the filename didn't change, but still had that content?

API

const Index = require('index-of-git')
 
const options = {
      // gitroot: where your repo is, default CWD
      // git: or your own simple-git instance
      // hasher: your own hash function, default vihash
      // variants: lists of argument lists for hasher, default sha256, sha512
}
const ix = new Index(options)
 
const text = await ix.get('sha256-47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU=')
//  => '' since that's the sha256 of the null string, if there's an empty
//     file anywhere in the repo history
//  => undefined  if there's no empty file anywhere in the repo history
 

Package Sidebar

Install

npm i index-of-git

Weekly Downloads

1

Version

1.0.0

License

MIT

Unpacked Size

7.58 kB

Total Files

9

Last publish

Collaborators

  • sandhawke