Skip to content

papandreou/node-gitfakefs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitFakeFs

Emulate (a so far very small subset of) node.js' fs module on top of a local git repository. Point GitFakeFs at a git repository, and optionally a branch/tag/commit, and it'll give you back an fs implementation that gets its data from the repo.

var GitFakeFs = require('gitfakefs'),
    fs = new GitFakeFs('/path/to/repo.git');

fs.readFile('/foo.txt', function (err, contents) {
    // Got the contents of /foo.txt
});

To expose the contents of a branch, tag, or commit, use the 'ref' option:

new GitFakeFs('/path/to/repo.git', {ref: 'HEAD'});
new GitFakeFs('/path/to/repo.git', {ref: 'branchName'});
new GitFakeFs('/path/to/repo.git', {ref: 'tagName'});
new GitFakeFs('/path/to/repo.git', {ref: 'commitId'});

The staged contents:

new GitFakeFs('/path/to/repo.git', {ref: 'HEAD', index: true});

For non-bare repositories you can use the contents of the working copy as fallback when a file or directory doesn't exist:

new GitFakeFs('/path/to/repo.git', {ref: 'HEAD', fallBackToWorkingCopy: true});
new GitFakeFs('/path/to/repo.git', {ref: 'HEAD', index: true, fallBackToWorkingCopy: true});

Finally, you can configure a GitFakeFs instance to only contain the files and directories that have changes in the index:

new GitFakeFs('/path/to/repo.git', {ref: 'HEAD', changesInIndex: true});

Supported functions:

  • readdir
  • readFile
  • stat
  • lstat
  • realpath

Installation

Make sure you have node.js and npm installed, then run:

npm install gitfakefs

License

3-clause BSD license -- see the LICENSE file for details.

About

Emulate node.js' fs module on top of a git repository

Resources

License

Stars

Watchers

Forks

Packages