mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-07-04 11:44:27 +02:00
#701 -- allow ability to check for leftover branches in goal compare
This commit is contained in:
parent
6e9ede0023
commit
6e8135a062
2 changed files with 36 additions and 0 deletions
|
@ -49,6 +49,18 @@ describe('Tree Compare', function() {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('compares with considering leftover branches', function() {
|
||||||
|
testMethod(
|
||||||
|
{
|
||||||
|
compareAllBranchesAndEnforceBranchCleanup: true,
|
||||||
|
},
|
||||||
|
'{"branches":{"master":{"target":"C2","id":"master","remoteTrackingBranchID":null},"foo":{"target":"C2","id":"foo","remoteTrackingBranchID":null}},"commits":{"C0":{"parents":[],"id":"C0","rootCommit":true},"C1":{"parents":["C0"],"id":"C1"},"C2":{"parents":["C1"],"id":"C2"}},"tags":{},"HEAD":{"target":"foo","id":"HEAD"}}',
|
||||||
|
{
|
||||||
|
'{"branches":{"master":{"target":"C2","id":"master","remoteTrackingBranchID":null},"foo":{"target":"C2","id":"foo","remoteTrackingBranchID":null},"randoBran":{"target":"C2","id":"randoBran","remoteTrackingBranchID":null}},"commits":{"C0":{"parents":[],"id":"C0","rootCommit":true},"C1":{"parents":["C0"],"id":"C1"},"C2":{"parents":["C1"],"id":"C2"}},"tags":{},"HEAD":{"target":"foo","id":"HEAD"}}': false,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it('deep compares on origin tree', function() {
|
it('deep compares on origin tree', function() {
|
||||||
testMethod(
|
testMethod(
|
||||||
{}, // checked for all methods so this doesn't matter
|
{}, // checked for all methods so this doesn't matter
|
||||||
|
|
|
@ -54,6 +54,10 @@ TreeCompare.dispatchShallow = function(levelBlob, goalTreeString, treeToCompare)
|
||||||
return TreeCompare.compareBranchWithinTrees(
|
return TreeCompare.compareBranchWithinTrees(
|
||||||
treeToCompare, goalTreeString, 'master'
|
treeToCompare, goalTreeString, 'master'
|
||||||
);
|
);
|
||||||
|
case !!levelBlob.compareAllBranchesAndEnforceBranchCleanup:
|
||||||
|
return TreeCompare.compareAllBranchesAndEnforceBranchCleanup(
|
||||||
|
treeToCompare, goalTreeString
|
||||||
|
);
|
||||||
case !!levelBlob.compareOnlyBranches:
|
case !!levelBlob.compareOnlyBranches:
|
||||||
return TreeCompare.compareAllBranchesWithinTrees(
|
return TreeCompare.compareAllBranchesWithinTrees(
|
||||||
treeToCompare, goalTreeString
|
treeToCompare, goalTreeString
|
||||||
|
@ -88,6 +92,26 @@ TreeCompare.compareAllBranchesWithinTreesAndHEAD = function(treeToCompare, goalT
|
||||||
this.compareAllTagsWithinTrees(treeToCompare, goalTree);
|
this.compareAllTagsWithinTrees(treeToCompare, goalTree);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
TreeCompare.compareAllBranchesAndEnforceBranchCleanup = function(treeToCompare, goalTree) {
|
||||||
|
treeToCompare = this.convertTreeSafe(treeToCompare);
|
||||||
|
goalTree = this.convertTreeSafe(goalTree);
|
||||||
|
|
||||||
|
// Unlike compareAllBranchesWithinTrees, here we consider both the branches
|
||||||
|
// in the goalTree and the branches in the treeToCompare. This means that
|
||||||
|
// we enfoce that you clean up any branches that you have locally that
|
||||||
|
// the goal does not have. this is helpful when we want to verify that you
|
||||||
|
// have deleted branch, for instance.
|
||||||
|
var allBranches = Object.assign(
|
||||||
|
{},
|
||||||
|
treeToCompare.branches,
|
||||||
|
goalTree.branches
|
||||||
|
);
|
||||||
|
return Object.keys(allBranches).every(function(branch) {
|
||||||
|
return this.compareBranchWithinTrees(treeToCompare, goalTree, branch);
|
||||||
|
}.bind(this));
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
TreeCompare.compareAllBranchesWithinTrees = function(treeToCompare, goalTree) {
|
TreeCompare.compareAllBranchesWithinTrees = function(treeToCompare, goalTree) {
|
||||||
treeToCompare = this.convertTreeSafe(treeToCompare);
|
treeToCompare = this.convertTreeSafe(treeToCompare);
|
||||||
goalTree = this.convertTreeSafe(goalTree);
|
goalTree = this.convertTreeSafe(goalTree);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue