diff --git a/lib/submodule.js b/lib/submodule.js index 534fb2c9c..92b0e6ec0 100644 --- a/lib/submodule.js +++ b/lib/submodule.js @@ -23,17 +23,28 @@ Submodule.foreach = function(repo, callback) { * @return {Number} 0 on success, any non-zero return value from a callback */ Submodule.prototype.update = function(init, options) { - var fetchOpts = normalizeFetchOptions(options && options.fetchOpts); + var fetchOpts; + var checkoutOpts; if (options) { options = shallowClone(options); + fetchOpts = options.fetchOpts; + checkoutOpts = options.checkoutOpts; delete options.fetchOpts; + delete options.checkoutOpts; } - + options = normalizeOptions(options, NodeGit.SubmoduleUpdateOptions); - if (options) { - options.fetchOpts = fetchOpts; + if (fetchOpts) { + options.fetchOpts = normalizeFetchOptions(fetchOpts); + } + + if (checkoutOpts) { + options.checkoutOpts = normalizeOptions( + checkoutOpts, + NodeGit.CheckoutOptions + ); } return _update.call(this, init, options);