diff --git a/src/build-change-graph.js b/src/build-change-graph.js index 7a4a8e6e..71f7fc6a 100644 --- a/src/build-change-graph.js +++ b/src/build-change-graph.js @@ -12,6 +12,7 @@ const { collectPackages } = require('./build-dep-graph'); const minimatch = require('minimatch'); const { getChangedReleasableFiles } = require('./releasable'); const Set = require('superset'); +const path = require('path'); async function getPackageChangedFiles({ fromCommit, @@ -31,10 +32,14 @@ async function getPackageChangedFiles({ newerCommit = fromCommit; } - let committedChanges = await git(['diff', '--name-only', `${olderCommit}...${newerCommit}`, packageCwd], options); + let packageDir = path.relative(options.cwd, packageCwd); + + let committedChanges = await git(['diff', '--name-only', `${olderCommit}...${newerCommit}`], options); committedChanges = getLinesFromOutput(committedChanges); - let dirtyChanges = await git(['status', '--porcelain', packageCwd, '-u'], options); + committedChanges = committedChanges.filter(file => !path.relative(packageDir, file).startsWith('..')); + let dirtyChanges = await git(['status', '--porcelain', '-u'], options); dirtyChanges = getLinesFromOutput(dirtyChanges).map(line => line.substr(3)); + dirtyChanges = dirtyChanges.filter(file => !path.relative(packageDir, file).startsWith('..')); let changedFiles = Array.from(new Set(committedChanges).union(dirtyChanges)); return changedFiles; diff --git a/test/build-change-graph-test.js b/test/build-change-graph-test.js index 47ffab4b..b041f0fe 100644 --- a/test/build-change-graph-test.js +++ b/test/build-change-graph-test.js @@ -14,7 +14,7 @@ const path = require('path'); const fs = { ...require('fs'), ...require('fs').promises }; describe(buildChangeGraph, function() { - this.timeout(5e3); + // this.timeout(5e3); // eslint-disable-next-line mocha/no-setup-in-describe setUpSinon();