mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-06-26 16:08:34 +02:00
yay command option parsing makes more sense
This commit is contained in:
parent
6d58c928ae
commit
1ba46f7705
3 changed files with 19 additions and 19 deletions
|
@ -339,5 +339,12 @@ describe('Git Remotes', function() {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('tracks remote with -u', function() {
|
||||||
|
expectTreeAsync(
|
||||||
|
'git clone; git branch foo; git branch -u o/master foo',
|
||||||
|
'{"branches":{"master":{"target":"C1","id":"master","remoteTrackingBranchID":"o/master"},"o/master":{"target":"C1","id":"o/master","remoteTrackingBranchID":null},"foo":{"target":"C1","id":"foo","remoteTrackingBranchID":"o/master"}},"commits":{"C0":{"parents":[],"id":"C0","rootCommit":true},"C1":{"parents":["C0"],"id":"C1"}},"tags":{},"HEAD":{"target":"master","id":"HEAD"},"originTree":{"branches":{"master":{"target":"C1","id":"master","remoteTrackingBranchID":null}},"commits":{"C0":{"parents":[],"id":"C0","rootCommit":true},"C1":{"parents":["C0"],"id":"C1"}},"tags":{},"HEAD":{"target":"master","id":"HEAD"}}}'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -187,16 +187,14 @@ CommandOptionParser.prototype.explodeAndSet = function() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// go through and include all the next args until we hit another option or the end
|
var next = exploded[i + 1];
|
||||||
var optionArgs = [];
|
var optionArgs = [];
|
||||||
var next = i + 1;
|
if (next && next.slice(0,1) !== '-') {
|
||||||
while (next < exploded.length && exploded[next].slice(0,1) != '-') {
|
// only store the next argument as this
|
||||||
optionArgs.push(exploded[next]);
|
// option value if its not another option
|
||||||
next += 1;
|
i++;
|
||||||
|
optionArgs = [next];
|
||||||
}
|
}
|
||||||
i = next - 1;
|
|
||||||
|
|
||||||
// **phew** we are done grabbing those. theseArgs is truthy even with an empty array
|
|
||||||
this.supportedMap[part] = optionArgs;
|
this.supportedMap[part] = optionArgs;
|
||||||
} else {
|
} else {
|
||||||
// must be a general arg
|
// must be a general arg
|
||||||
|
|
|
@ -387,6 +387,7 @@ var commandConfig = {
|
||||||
// handle deletion first
|
// handle deletion first
|
||||||
if (commandOptions['-d'] || commandOptions['-D']) {
|
if (commandOptions['-d'] || commandOptions['-D']) {
|
||||||
var names = commandOptions['-d'] || commandOptions['-D'];
|
var names = commandOptions['-d'] || commandOptions['-D'];
|
||||||
|
names = names.concat(generalArgs);
|
||||||
command.validateArgBounds(names, 1, Number.MAX_VALUE, '-d');
|
command.validateArgBounds(names, 1, Number.MAX_VALUE, '-d');
|
||||||
|
|
||||||
_.each(names, function(name) {
|
_.each(names, function(name) {
|
||||||
|
@ -396,8 +397,7 @@ var commandConfig = {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (commandOptions['-u']) {
|
if (commandOptions['-u']) {
|
||||||
command.acceptNoGeneralArgs();
|
args = commandOptions['-u'].concat(generalArgs);
|
||||||
args = commandOptions['-u'];
|
|
||||||
command.validateArgBounds(args, 1, 2, '-u');
|
command.validateArgBounds(args, 1, 2, '-u');
|
||||||
var remoteBranch = crappyUnescape(args[0]);
|
var remoteBranch = crappyUnescape(args[0]);
|
||||||
var branch = args[1] || engine.getOneBeforeCommit('HEAD').get('id');
|
var branch = args[1] || engine.getOneBeforeCommit('HEAD').get('id');
|
||||||
|
@ -420,7 +420,7 @@ var commandConfig = {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (commandOptions['-f']) {
|
if (commandOptions['-f']) {
|
||||||
args = commandOptions['-f'];
|
args = commandOptions['-f'].concat(generalArgs);
|
||||||
command.twoArgsImpliedHead(args, '-f');
|
command.twoArgsImpliedHead(args, '-f');
|
||||||
|
|
||||||
// we want to force a branch somewhere
|
// we want to force a branch somewhere
|
||||||
|
@ -620,14 +620,9 @@ var commandConfig = {
|
||||||
|
|
||||||
var args = null;
|
var args = null;
|
||||||
if (commandOptions['-b']) {
|
if (commandOptions['-b']) {
|
||||||
if (generalArgs.length) {
|
// the user is really trying to just make a
|
||||||
throw new GitError({
|
// branch and then switch to it. so first:
|
||||||
msg: intl.str('git-error-options')
|
args = commandOptions['-b'].concat(generalArgs);
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// the user is really trying to just make a branch and then switch to it. so first:
|
|
||||||
args = commandOptions['-b'];
|
|
||||||
command.twoArgsImpliedHead(args, '-b');
|
command.twoArgsImpliedHead(args, '-b');
|
||||||
|
|
||||||
var validId = engine.validateBranchName(args[0]);
|
var validId = engine.validateBranchName(args[0]);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue