From d8a61f16118d792d1c9baf1972ffdaf7606d5af7 Mon Sep 17 00:00:00 2001 From: Peter Cottle Date: Sat, 12 Jan 2013 22:37:02 -0800 Subject: [PATCH] mixed 2 --- build/bundle.js | 10 +++++++-- src/levels/index.js | 3 ++- src/levels/mixed/2.js | 48 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 src/levels/mixed/2.js diff --git a/build/bundle.js b/build/bundle.js index 41494ca2..bea6c766 100644 --- a/build/bundle.js +++ b/build/bundle.js @@ -16761,7 +16761,8 @@ exports.levelSequences = { require('../../levels/rebase/1').level ], mixed: [ - require('../../levels/mixed/1').level + require('../../levels/mixed/1').level, + require('../../levels/mixed/2').level ] }; @@ -27635,7 +27636,8 @@ exports.levelSequences = { require('../../levels/rebase/1').level ], mixed: [ - require('../../levels/mixed/1').level + require('../../levels/mixed/1').level, + require('../../levels/mixed/2').level ] }; @@ -28086,6 +28088,10 @@ require.define("/src/levels/mixed/1.js",function(require,module,exports,__dirnam }); require("/src/levels/mixed/1.js"); +require.define("/src/levels/mixed/2.js",function(require,module,exports,__dirname,__filename,process,global){undefined +}); +require("/src/levels/mixed/2.js"); + require.define("/src/levels/rebase/1.js",function(require,module,exports,__dirname,__filename,process,global){exports.level = { "compareOnlyMaster": true, "goalTreeString": "%7B%22branches%22%3A%7B%22master%22%3A%7B%22target%22%3A%22C7%27%22%2C%22id%22%3A%22master%22%7D%2C%22bugFix%22%3A%7B%22target%22%3A%22C2%27%22%2C%22id%22%3A%22bugFix%22%7D%2C%22side%22%3A%7B%22target%22%3A%22C6%27%22%2C%22id%22%3A%22side%22%7D%2C%22another%22%3A%7B%22target%22%3A%22C7%27%22%2C%22id%22%3A%22another%22%7D%7D%2C%22commits%22%3A%7B%22C0%22%3A%7B%22parents%22%3A%5B%5D%2C%22id%22%3A%22C0%22%2C%22rootCommit%22%3Atrue%7D%2C%22C1%22%3A%7B%22parents%22%3A%5B%22C0%22%5D%2C%22id%22%3A%22C1%22%7D%2C%22C2%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C2%22%7D%2C%22C3%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C3%22%7D%2C%22C4%22%3A%7B%22parents%22%3A%5B%22C0%22%5D%2C%22id%22%3A%22C4%22%7D%2C%22C5%22%3A%7B%22parents%22%3A%5B%22C4%22%5D%2C%22id%22%3A%22C5%22%7D%2C%22C6%22%3A%7B%22parents%22%3A%5B%22C5%22%5D%2C%22id%22%3A%22C6%22%7D%2C%22C7%22%3A%7B%22parents%22%3A%5B%22C5%22%5D%2C%22id%22%3A%22C7%22%7D%2C%22C2%27%22%3A%7B%22parents%22%3A%5B%22C3%22%5D%2C%22id%22%3A%22C2%27%22%7D%2C%22C4%27%22%3A%7B%22parents%22%3A%5B%22C2%27%22%5D%2C%22id%22%3A%22C4%27%22%7D%2C%22C5%27%22%3A%7B%22parents%22%3A%5B%22C4%27%22%5D%2C%22id%22%3A%22C5%27%22%7D%2C%22C6%27%22%3A%7B%22parents%22%3A%5B%22C5%27%22%5D%2C%22id%22%3A%22C6%27%22%7D%2C%22C7%27%22%3A%7B%22parents%22%3A%5B%22C6%27%22%5D%2C%22id%22%3A%22C7%27%22%7D%7D%2C%22HEAD%22%3A%7B%22target%22%3A%22master%22%2C%22id%22%3A%22HEAD%22%7D%7D", diff --git a/src/levels/index.js b/src/levels/index.js index 8fa03d8a..9ef3e52c 100644 --- a/src/levels/index.js +++ b/src/levels/index.js @@ -12,7 +12,8 @@ exports.levelSequences = { require('../../levels/rebase/1').level ], mixed: [ - require('../../levels/mixed/1').level + require('../../levels/mixed/1').level, + require('../../levels/mixed/2').level ] }; diff --git a/src/levels/mixed/2.js b/src/levels/mixed/2.js new file mode 100644 index 00000000..0217f475 --- /dev/null +++ b/src/levels/mixed/2.js @@ -0,0 +1,48 @@ +exports.level = { + "compareOnlyMaster": true, + "goalTreeString": "%7B%22branches%22%3A%7B%22master%22%3A%7B%22target%22%3A%22C3%27%27%22%2C%22id%22%3A%22master%22%7D%2C%22newImage%22%3A%7B%22target%22%3A%22C2%22%2C%22id%22%3A%22newImage%22%7D%2C%22caption%22%3A%7B%22target%22%3A%22C3%27%27%22%2C%22id%22%3A%22caption%22%7D%7D%2C%22commits%22%3A%7B%22C0%22%3A%7B%22parents%22%3A%5B%5D%2C%22id%22%3A%22C0%22%2C%22rootCommit%22%3Atrue%7D%2C%22C1%22%3A%7B%22parents%22%3A%5B%22C0%22%5D%2C%22id%22%3A%22C1%22%7D%2C%22C2%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C2%22%7D%2C%22C3%22%3A%7B%22parents%22%3A%5B%22C2%22%5D%2C%22id%22%3A%22C3%22%7D%2C%22C3%27%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C3%27%22%7D%2C%22C2%27%22%3A%7B%22parents%22%3A%5B%22C3%27%22%5D%2C%22id%22%3A%22C2%27%22%7D%2C%22C2%27%27%22%3A%7B%22parents%22%3A%5B%22C3%27%22%5D%2C%22id%22%3A%22C2%27%27%22%7D%2C%22C2%27%27%27%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C2%27%27%27%22%7D%2C%22C3%27%27%22%3A%7B%22parents%22%3A%5B%22C2%27%27%27%22%5D%2C%22id%22%3A%22C3%27%27%22%7D%7D%2C%22HEAD%22%3A%7B%22target%22%3A%22master%22%2C%22id%22%3A%22HEAD%22%7D%7D", + "solutionCommand": "git rebase -i HEAD~2;git commit --amend;git rebase -i HEAD~2;git rebase caption master", + "startTree": "{\"branches\":{\"master\":{\"target\":\"C1\",\"id\":\"master\"},\"newImage\":{\"target\":\"C2\",\"id\":\"newImage\"},\"caption\":{\"target\":\"C3\",\"id\":\"caption\"}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"},\"C2\":{\"parents\":[\"C1\"],\"id\":\"C2\"},\"C3\":{\"parents\":[\"C2\"],\"id\":\"C3\"}},\"HEAD\":{\"target\":\"caption\",\"id\":\"HEAD\"}}", + "name": "Juggling Commits", + "hint": "", + "startDialog": { + "childViews": [ + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "## Juggling Commits", + "", + "Here's another situation that happens quite commonly. You have some changes (`newImage`) and another set of changes (`caption`) that are related, so they are stacked on top of each other in your repository (aka one after another).", + "", + "The tricky thing is that sometimes you need to make a small modification to an earlier commit. In this case, design wants us to change the dimensions of `newImage` slightly, even though that commit is way back in our history!!" + ] + } + }, + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "We will overcome this difficulty by doing the following:", + "", + "* We will re-order the commits so the one we want to change is on top with `git rebase -i`", + "* We will `commit --amend` to make the slight modification", + "* Then we will re-oder the commits back to how they were previously with `git rebase -i`", + "* Finally, we will move master to this updated part of the tree to finish the level (via your method of choosing)" + "", + "There are many ways to accomplish this overall goal (I see you eyeing cherrypick), and we will see more of them later, but for now let's focus on this technique." + ] + } + }, + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "Lastly, pay attention to the goal state here -- since we move the commits twice, they both get an apostrophe appended. One more apostrophe is added for the commit we amend, which gives us the final form of the tree " + ] + } + } + ] + } +}; +