[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/javascript-forks/nodegit.nodegit/master/lib/index.js [Back]  [Original]

var NodeGit = require("../");

var Index = NodeGit.Index;
var Status = NodeGit.Status;
var Pathspec = NodeGit.Pathspec;

/**
 * Return an array of the entries in this index.
 * @return {Array} an array of IndexEntrys
 */
Index.prototype.entries = function() {
  var size = this.entryCount();
  var result = [];

  for (var i = 0; i < size; i++) {
    result.push(this.getByIndex(i));
  }

  return result;
};

var addAll = Index.prototype.addAll;
Index.prototype.addAll = function(pathspec, flags, matchedCallback) {
  // This status path code is here to speedup addall, which currently is
  // excessively slow due to adding every single unignored file to the index
  // even if it has no changes. Remove this when it's fixed in libgit2
  // https://github.com/libgit2/libgit2/issues/2687
  var paths = [];
  var repo = this.owner();
  var statusCB = function(path) {
    paths.push(path);
  };
  var idx = this;
  var ps = Pathspec.create(pathspec || "*");

  return Status.foreach(repo, statusCB)
    .then(function() {
      return paths;
    })
    .then(function(paths) {
      paths = paths.filter(function(path) {
        return !!(ps.matchesPath(0, path));
      });
      return addAll.call(idx, paths, flags, matchedCallback, null);
    });
};

var removeAll = Index.prototype.removeAll;
Index.prototype.removeAll = function(pathspec, matchedCallback) {
  return removeAll.call(this, pathspec || "*", matchedCallback, null);
};

var updateAll = Index.prototype.updateAll;
Index.prototype.updateAll = function(pathspec, matchedCallback) {
  return updateAll.call(this, pathspec || "*", matchedCallback, null);
};

Web Proxy Viewer  |  New URL  |  Original Page