Skip to content

Commit

Permalink
Put smart host detection behind a configuration, fixes #1764
Browse files Browse the repository at this point in the history
  • Loading branch information
sheerun committed Aug 25, 2015
1 parent fe9a1bb commit 26f80d2
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 9 deletions.
5 changes: 5 additions & 0 deletions lib/core/resolvers/GitRemoteResolver.js
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,11 @@ GitRemoteResolver.prototype._supportsShallowCloning = function () {
return Q.resolve(false);
}


if (!this._host || !this._config.shallowCloneHosts || this._config.shallowCloneHosts.indexOf(this._host) === -1) {
return Q.resolve(false);
}

// Check for protocol - the remote check for hosts supporting shallow cloning is only required for
// HTTP or HTTPS, not for Git or SSH.
// Also check for hosts that have been checked in a previous request and have been found to support
Expand Down
18 changes: 9 additions & 9 deletions test/core/resolvers/gitRemoteResolver.js
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ describe('GitRemoteResolver', function () {
*/}))
);

var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig(), logger);
var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger);

resolver._shallowClone().then(function (shallowCloningSupported) {
expect(shallowCloningSupported).to.be(false);
Expand All @@ -305,7 +305,7 @@ describe('GitRemoteResolver', function () {
*/}))
);

var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig(), logger);
var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger);

resolver._shallowClone().then(function (shallowCloningSupported) {
expect(shallowCloningSupported).to.be(false);
Expand Down Expand Up @@ -347,7 +347,7 @@ describe('GitRemoteResolver', function () {
*/}))
);

var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig(), logger);
var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger);

resolver._shallowClone().then(function (shallowCloningSupported) {
expect(shallowCloningSupported).to.be(true);
Expand Down Expand Up @@ -383,12 +383,12 @@ describe('GitRemoteResolver', function () {
}
);

var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig(), logger);
var resolver = new MyGitRemoteResolver({ source: testSource }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger);

resolver._shallowClone().then(function (shallowCloningSupported) {
expect(shallowCloningSupported).to.be(true);

var resolver2 = new MyGitRemoteResolver({ source: testSource }, defaultConfig(), logger);
var resolver2 = new MyGitRemoteResolver({ source: testSource }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger);

resolver2._shallowClone().then(function (shallowCloningSupported) {
expect(shallowCloningSupported).to.be(true);
Expand Down Expand Up @@ -428,12 +428,12 @@ describe('GitRemoteResolver', function () {
}
);

var resolver = new MyGitRemoteResolver({ source: testSource1 }, defaultConfig(), logger);
var resolver = new MyGitRemoteResolver({ source: testSource1 }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger);

resolver._shallowClone().then(function (shallowCloningSupported) {
expect(shallowCloningSupported).to.be(true);

var resolver2 = new MyGitRemoteResolver({ source: testSource2 }, defaultConfig(), logger);
var resolver2 = new MyGitRemoteResolver({ source: testSource2 }, defaultConfig({ shallowCloneHosts: ['foo'] }), logger);

resolver2._shallowClone().then(function (shallowCloningSupported) {
expect(shallowCloningSupported).to.be(true);
Expand Down Expand Up @@ -482,12 +482,12 @@ describe('GitRemoteResolver', function () {
}
);

var resolver = new MyGitRemoteResolver({ source: testSource1 }, defaultConfig(), logger);
var resolver = new MyGitRemoteResolver({ source: testSource1 }, defaultConfig({ shallowCloneHosts: ['foo', 'foo.bar.baz'] }), logger);

resolver._shallowClone().then(function (shallowCloningSupported) {
expect(shallowCloningSupported).to.be(true);

var resolver2 = new MyGitRemoteResolver({ source: testSource2 }, defaultConfig(), logger);
var resolver2 = new MyGitRemoteResolver({ source: testSource2 }, defaultConfig({ shallowCloneHosts: ['foo', 'foo.bar.baz'] }), logger);

resolver2._shallowClone().then(function (shallowCloningSupported) {
expect(shallowCloningSupported).to.be(true);
Expand Down

0 comments on commit 26f80d2

Please sign in to comment.