makes branch now

This commit is contained in:
Peter Cottle 2012-10-22 20:24:29 -07:00
parent 338259de12
commit eeff8da035
2 changed files with 6 additions and 14 deletions

View file

@ -965,7 +965,6 @@ GitEngine.prototype.checkoutStarter = function() {
} }
this.forceBranch(args[0], args[1]); this.forceBranch(args[0], args[1]);
this.checkout(args[0]); this.checkout(args[0]);
return; return;
} }
@ -1056,6 +1055,11 @@ GitEngine.prototype.branchStarter = function() {
}; };
GitEngine.prototype.forceBranch = function(branchName, where) { GitEngine.prototype.forceBranch = function(branchName, where) {
// if branchname doesn't exist...
if (!this.refs[branchName]) {
this.branch(branchName, where);
}
var branch = this.resolveID(branchName); var branch = this.resolveID(branchName);
if (branch.get('type') !== 'branch') { if (branch.get('type') !== 'branch') {
throw new GitError({ throw new GitError({
@ -1064,6 +1068,7 @@ GitEngine.prototype.forceBranch = function(branchName, where) {
} }
var whereCommit = this.getCommitFromRef(where); var whereCommit = this.getCommitFromRef(where);
this.setTargetLocation(branch, whereCommit); this.setTargetLocation(branch, whereCommit);
}; };

View file

@ -26,16 +26,3 @@ Big Bugs to fix:
~~~~~~~~~~ ~~~~~~~~~~
yeah forces moving it to the commit you indicate
which is impossible as far as I can tell, short of detaching, deleting the branch, and doing branch [name] [commit]
(detach in case that's the branch you're currently on)
checkout -B [name] [commit] is equivalent to branch -f [name] [commit] and then checkout [name]
tl;dr "branch" is to "checkout -b" as "branch -f" is to "checkout -B"
seems like "branch -f [name] [commit]" does the following:
git checkout --detach # in case you're on [name]
git branch -D [name] # delete
git branch [name] [commit] # move to given commit
git checkout [name] # switch back