ordering on rebase -i

This commit is contained in:
Peter Cottle 2012-10-23 23:24:02 -07:00
parent 25d2115ecd
commit 5c73cfb5c1
4 changed files with 20 additions and 2 deletions

View file

@ -488,6 +488,10 @@ GitEngine.prototype.commit = function() {
}; };
GitEngine.prototype.resolveID = function(idOrTarget) { GitEngine.prototype.resolveID = function(idOrTarget) {
if (idOrTarget === null || idOrTarget === undefined) {
throw new Error('Dont call this with null / undefined');
}
if (typeof idOrTarget !== 'string') { if (typeof idOrTarget !== 'string') {
return idOrTarget; return idOrTarget;
} }
@ -538,6 +542,7 @@ GitEngine.prototype.resolveStringRef = function(ref) {
GitEngine.prototype.getCommitFromRef = function(ref) { GitEngine.prototype.getCommitFromRef = function(ref) {
var start = this.resolveID(ref); var start = this.resolveID(ref);
// works for both HEAD and just a single layer. aka branch // works for both HEAD and just a single layer. aka branch
while (start.get('type') !== 'commit') { while (start.get('type') !== 'commit') {
start = start.get('target'); start = start.get('target');
@ -644,7 +649,12 @@ GitEngine.prototype.numBackFrom = function(commit, numBack) {
while (pQueue.length && numBack !== 0) { while (pQueue.length && numBack !== 0) {
var popped = pQueue.shift(0); var popped = pQueue.shift(0);
pQueue = pQueue.concat(popped.get('parents')); var parents = popped.get('parents');
if (parents && parents.length) {
pQueue = pQueue.concat(parents);
}
pQueue.sort(this.idSortFunc); pQueue.sort(this.idSortFunc);
numBack--; numBack--;
} }

View file

@ -16,6 +16,7 @@ var InteractiveRebaseView = Backbone.View.extend({
this.rebaseMap = {}; this.rebaseMap = {};
this.entryObjMap = {}; this.entryObjMap = {};
this.rebaseArray.reverse();
// make basic models for each commit // make basic models for each commit
_.each(this.rebaseArray, function(commit) { _.each(this.rebaseArray, function(commit) {
var id = commit.get('id'); var id = commit.get('id');
@ -51,7 +52,7 @@ var InteractiveRebaseView = Backbone.View.extend({
_.each(uiOrder, function(id) { _.each(uiOrder, function(id) {
// the model // the model
if (this.entryObjMap[id].get('pick')) { if (this.entryObjMap[id].get('pick')) {
toRebase.push(this.rebaseMap[id]); toRebase.lshift(this.rebaseMap[id]);
} }
}, this); }, this);

View file

@ -328,6 +328,11 @@ p.commandLine span.prompt {
li.rebaseEntry { li.rebaseEntry {
margin: 10px; margin: 10px;
-webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.5); -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
cursor: move;
}
li.rebaseEntry a#toggleButton {
cursor: pointer;
} }
li.rebaseEntry.notPicked { li.rebaseEntry.notPicked {
@ -478,3 +483,4 @@ li.rebaseEntry.notPicked {
border-top-color: #9bcbeb; border-top-color: #9bcbeb;
background: #9bcbeb; background: #9bcbeb;
} }

View file

@ -468,6 +468,7 @@ GitVisuals.prototype.addEdge = function(idTail, idHead) {
GitVisuals.prototype.collectionChanged = function() { GitVisuals.prototype.collectionChanged = function() {
console.log('git visuals... collection was changed'); console.log('git visuals... collection was changed');
// redo stuff // redo stuff
// TODO
}; };
GitVisuals.prototype.zIndexReflow = function() { GitVisuals.prototype.zIndexReflow = function() {