Change fetch arguments up a bit, start migrating

This commit is contained in:
Peter Cottle 2013-10-16 19:41:59 -07:00
parent e5b4ac5b1c
commit 7225e9b7e6
3 changed files with 15 additions and 6 deletions

View file

@ -265,8 +265,20 @@ var commandConfig = {
command.twoArgsImpliedOrigin(generalArgs);
assertOriginSpecified(generalArgs);
if (generalArgs[1]) {
var tracking = assertBranchIsRemoteTracking(engine, generalArgs[1]);
var firstArg = generalArgs[1];
if (firstArg && isColonRefspec(firstArg)) {
var refspecParts = firstArg.split(':');
options.source = refspecParts[0];
options.destination = refspecParts[1];
// destination will be created by fetch, but check source
assertIsRef(engine.origin, options.source);
} else if (firstArg) {
// here is the deal -- its JUST like git push. the first arg
// is used as both the destination and the source, so we need
// to make sure it exists as the source on REMOTE and then
// the destination will be created locally
var tracking = assertBranchIsRemoteTracking(engine, firstArg);
options.branches = [engine.refs[tracking]];
}

View file

@ -1051,6 +1051,7 @@ GitEngine.prototype.fetch = function(options) {
)
));
}, this);
if (!commitsToMake.length && !options.dontThrowOnNoFetch) {
throw new GitError({
msg: intl.str('git-error-origin-fetch-uptodate')

View file

@ -19,10 +19,6 @@ Argument things:
aka fetch + merge, just like expected. ill probably still update o/master just for sanity. master is the source on the remote and HEAD is the source on local (place to merge). o/master gets updated regardless
so "git push origin branchNotOnLocal" fails but "git push origin someBranch" will make the someBranch on remote.
3) HOWEVER if I'm git push-ing on banana and I say "git push origin master" then it pretends Im checked out on master. aka master is both source and destination, as expected. this is really 3
Cases to handle / things to edit
=======================