var NodeGit = require("../");
var normalizeOptions = require("./util/normalize_options");
var lookupWrapper = require("./util/lookupWrapper");

var Remote = NodeGit.Remote;
var setCallbacks = Remote.prototype.setCallbacks;

/**
 * Retrieves the remote by name
 * @async
 * @param {Repository} repo The repo that the remote lives in
 * @param {String|Remote} name The remote to lookup
 * @param {Function} callback
 * @return {Remote}
 */
Remote.lookup = lookupWrapper(Remote);

Remote.prototype.setCallbacks = function(callbacks) {
  callbacks = normalizeOptions(callbacks, NodeGit.RemoteCallbacks);

  return setCallbacks.call(this, callbacks);
};

module.exports = Remote;

@@ -215,16 +215,40 @@
 llbacks;
+%0Avar push = Remote.push;
 %0A%0A/**%0A *
@@ -667,16 +667,577 @@
 s);%0A%7D;%0A%0A
+/**%0A * Pushes to a remote%0A *%0A * @async%0A * @param %7BArray%7D refSpecs The ref specs that should be pushed%0A * @param %7BPushOptions%7D options Options for the checkout%0A * @param %7BSignature%7D signature The identity to use for the reflog of the%0A * updated references%0A * @param %7BString%7D message The message to use for the update reflog messages%0A * @return %7BNumber%7D error code%0A */%0ARemote.push = function(refSpecs, options, signature, message) %7B%0A  options = normalizeOptions(options, NodeGit.PushOptions);%0A%0A  return push.call(this, refSpecs, options, signature, message);%0A%7D;%0A%0A
 module.e

Normalize the remote push options