mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-06-30 09:44:26 +02:00
Change fetch arguments up a bit, start migrating
This commit is contained in:
parent
e5b4ac5b1c
commit
7225e9b7e6
3 changed files with 15 additions and 6 deletions
|
@ -265,8 +265,20 @@ var commandConfig = {
|
||||||
command.twoArgsImpliedOrigin(generalArgs);
|
command.twoArgsImpliedOrigin(generalArgs);
|
||||||
assertOriginSpecified(generalArgs);
|
assertOriginSpecified(generalArgs);
|
||||||
|
|
||||||
if (generalArgs[1]) {
|
var firstArg = generalArgs[1];
|
||||||
var tracking = assertBranchIsRemoteTracking(engine, 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]];
|
options.branches = [engine.refs[tracking]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1051,6 +1051,7 @@ GitEngine.prototype.fetch = function(options) {
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
if (!commitsToMake.length && !options.dontThrowOnNoFetch) {
|
if (!commitsToMake.length && !options.dontThrowOnNoFetch) {
|
||||||
throw new GitError({
|
throw new GitError({
|
||||||
msg: intl.str('git-error-origin-fetch-uptodate')
|
msg: intl.str('git-error-origin-fetch-uptodate')
|
||||||
|
|
4
todo.txt
4
todo.txt
|
@ -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
|
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
|
Cases to handle / things to edit
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue