Skip to content

Commit

Permalink
Merge pull request #9 from keymetrics/fix_local_branch
Browse files Browse the repository at this point in the history
Don't crash prevNext when branch is local only
  • Loading branch information
jshkurti committed Apr 24, 2015
2 parents 3e7ff76 + 39023e2 commit 8ead461
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 4 deletions.
31 changes: 27 additions & 4 deletions lib/git.js
Expand Up @@ -71,8 +71,25 @@ git.parse = function(folder, cb) {
});
};

var getRemoteBrancheExistence = function(data, cb) {
exec("cd '"+folder+"';LC_ALL=en_US.UTF-8 git show-ref refs/remotes/"+data.remote+"/"+data.branch, {timeout: TIMEOUT},
function(err, stdout, stderr) {
if (err)
data.branch_exists_on_remote = false;
else
data.branch_exists_on_remote = true;

return cb(null, data);
});
};

var getPrevNext = function(data, cb) {
exec("cd '"+folder+"';LC_ALL=en_US.UTF-8 git log "+data.remote+"/"+data.branch+" --pretty=oneline",
var prefix = '';

if (data.branch_exists_on_remote)
prefix = data.remote + '/';

exec("cd '"+folder+"';LC_ALL=en_US.UTF-8 git log "+ prefix + data.branch +" --pretty=oneline",
{timeout: TIMEOUT},
function(err, stdout, stderr) {
if(err !== null)
Expand Down Expand Up @@ -110,7 +127,7 @@ git.parse = function(folder, cb) {
});
};

async.waterfall([getUrl, getMeta, getStaged, getBranch, getRemote, getPrevNext, getDate],
async.waterfall([getUrl, getMeta, getStaged, getBranch, getRemote, getRemoteBrancheExistence, getPrevNext, getDate],
function(err, data) {
if (err !== null)
return cb(err);
Expand All @@ -120,10 +137,16 @@ git.parse = function(folder, cb) {

git.isUpdated = function(folder, cb) {
git.parse(folder, function(err, data) {
var prefix = '';

if (err !== null)
return cb(err);
exec("cd '"+folder+"';LC_ALL=en_US.UTF-8 git remote update >> /dev/null 2>&1; git log "+data.remote
+"/"+data.branch+" --pretty=oneline -n 1", {timeout: 60000},

if (data.branch_exists_on_remote)
prefix = data.remote + '/';

exec("cd '"+folder+"';LC_ALL=en_US.UTF-8 git remote update >> /dev/null 2>&1; git log "+ prefix+data.branch+
" --pretty=oneline -n 1", {timeout: 60000},
function(err, stdout, stderr) {
var res = {};

Expand Down
2 changes: 2 additions & 0 deletions test/git_scenario.mocha.js
Expand Up @@ -45,6 +45,8 @@ if (shell.which('git') !== null) {

meta.type.should.equal('git');
meta.branch.should.equal('master');

should(meta.branch_exists_on_remote).be.true
should.exist(meta.comment);
should.exist(meta.url);
should.exist(meta.revision);
Expand Down

0 comments on commit 8ead461

Please sign in to comment.