Sh3ll
OdayForums


Server : Apache
System : Linux profile 3.10.0-1160.88.1.el7.x86_64 #1 SMP Tue Mar 7 15:41:52 UTC 2023 x86_64
User : apache ( 48)
PHP Version : 8.0.28
Disable Function : NONE
Directory :  /lib/node_modules/pm2/node_modules/js-git/lib/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/node_modules/pm2/node_modules/js-git/lib/find-common.js
function oneCall(fn) {
  var done = false;
  return function () {
    if (done) return;
    done = true;
    return fn.apply(this, arguments);
  };
}

module.exports = findCommon;

function findCommon(repo, a, b, callback) {
  callback = oneCall(callback);
  var ahead = 0, behind = 0;
  var aStream, bStream;
  var aCommit, bCommit;

  if (a === b) return callback(null, ahead, behind);
  repo.logWalk(a, onAStream);
  repo.logWalk(b, onBStream);

  function onAStream(err, stream) {
    if (err) return callback(err);
    aStream = stream;
    aStream.read(onA);
  }

  function onBStream(err, stream) {
    if (err) return callback(err);
    bStream = stream;
    bStream.read(onB);
  }

  function onA(err, commit) {
    if (!commit) return callback(err || new Error("No common commit"));
    aCommit = commit;
    if (bCommit) compare();
  }

  function onB(err, commit) {
    if (!commit) return callback(err || new Error("No common commit"));
    bCommit = commit;
    if (aCommit) compare();
  }

  function compare() {
    if (aCommit.hash === bCommit.hash) return callback(null, ahead, behind);
    if (aCommit.author.date.seconds > bCommit.author.date.seconds) {
      ahead++;
      aStream.read(onA);
    }
    else {
      behind++;
      bStream.read(onB);
    }
  }

}

ZeroDay Forums Mini