Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/imcuttle/git-range-files
Get files by git commit range or hash
https://github.com/imcuttle/git-range-files
commit-range git staged
Last synced: about 1 month ago
JSON representation
Get files by git commit range or hash
- Host: GitHub
- URL: https://github.com/imcuttle/git-range-files
- Owner: imcuttle
- License: mit
- Created: 2018-03-21T13:49:44.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-01-07T14:52:18.000Z (almost 3 years ago)
- Last Synced: 2024-10-20T02:47:05.687Z (3 months ago)
- Topics: commit-range, git, staged
- Language: JavaScript
- Size: 16.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: License
Awesome Lists containing this project
README
# Git Range Files [![Build Status](https://travis-ci.org/imcuttle/git-range-files.svg?branch=master)](https://travis-ci.org/imcuttle/git-range-files)
This module returns an array of git range files and their status acording to git.
Inspired By [staged-git-files](https://github.com/mcwhittemore/staged-git-files).
## How it works?
* git version < 2.0.0 execute
git diff --name-status b8c40a94db582718...813f2c4911e926c0
* git version >= 2.0.0 execute
git -c core.quotepath=false diff --name-status b8c40a94db582718...813f2c4911e926c0
## Usage
`npm install git-range-files`
```js
var grf = require('git-range-files');
grf(function(err, results) {
// WHAT EVER YOU SO PLEASE
});grf({ head: 'f5f240fad3f6...e87900fad3f6' }, function(err, results){
// WHAT EVER YOU SO PLEASE
});
```**Example Results**
```json
[
{
"filename": "package.json",
"status": "Added"
},
{
"filename": "readme.md",
"status": "Modified"
},
{
"filename": "index.js",
"status": "Renamed"
}
]
```## Usage as a cli
```sh
$ grf
Added package.json
Modified readme.md
Renamed index.js
```## API
### grf({ filter, head, relative }, callback)
Get a list of git range files from `head`
* filter: string of git status codes. No spaces
* relative: `string` or `boolean` (`true` by default)
When run from a subdirectory of the project, it can be told to exclude changes outside the directory and
show pathnames relative to it with this option. When you are not in a subdirectory (e.g. in a bare
repository), you can name which subdirectory to make the output relative to by giving a as an
argument.
* callback:
* err: the error
* results: file object array.### grf.getHead(callback)
Get head that will be used in the diff to ID which files are waiting to be staged.
* callback
* err: the error
* head: the git commit id which is aliased to head.### grf.readFile(filename, [options], callback)
This is a proxy for [fs.readFile](http://nodejs.org/api/fs.html#fs_fs_readfile_filename_options_callback) with one change. The filename will be relative to the `grf.cwd`
### grf.debug
Boolean that flips logging on and off. By default this is false. If true, all git commands will be console logged.
### grf.includeContent
If true, include content will add a `content` or `err` param to the file object.
* Default Value: false
* Content Param: the content of the file staged
* Err Param: the error message received while trying to read the file.### grf.cwd
The current working directory. AKA: where the .git folder you care about is.
# Default Value: is equal to process.cwd() of your app.g
## Statuses
**SGF-Status (git status code)**
* Added (A)
* Copied (C)
* Deleted (D)
* Modified (M)
* Renamed (R)
* Type-Change (T) [i.e. regular file, symlink, submodule, etc.]
* Unmerged (U)
* Unknown (X)