You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
3.9 KiB
Bash
156 lines
3.9 KiB
Bash
#!/usr/bin/env bash
|
|
BLANK_DEMO=1
|
|
. demo_repo.sh
|
|
|
|
trunc() {
|
|
echo ... truncated output ...
|
|
}
|
|
|
|
trunc_command() {
|
|
pcommand "$@"
|
|
trunc
|
|
}
|
|
|
|
WS=build/whitespace_file.txt
|
|
add_ws() {
|
|
praw cat '>>' $WS '<<EOF'
|
|
echo -e "$1"
|
|
echo EOF
|
|
echo -e "$1" >> $WS
|
|
}
|
|
|
|
ed_ws() {
|
|
echo -ne "\x1B[37;1m$ echo -e "
|
|
echo -n "'$1'"
|
|
echo -e " | ed $WS\x1B[m"
|
|
echo -e "$1" | ed $WS 2>&1
|
|
}
|
|
|
|
# needs an extra echo afterwards
|
|
map() {
|
|
run git map
|
|
echo
|
|
}
|
|
|
|
ED1='/Banana\ns/Banana/Kuun\nwq'
|
|
|
|
ADD1="
|
|
\"You recall what happened on Mulholland drive?\" The ceiling fan rotated slowly
|
|
overhead, barely disturbing the thick cigarette smoke. No doubt was left about
|
|
when the fan was last cleaned."
|
|
|
|
ED2='/Kuun\ns/Kuun/Kun\nwq'
|
|
|
|
ADD2="
|
|
There was an poignant pause."
|
|
|
|
ADD3="
|
|
CHAPTER 3:
|
|
Mr. Usagi felt that something wasn't right. Shortly after the Domo-Kun left he
|
|
began feeling sick."
|
|
|
|
trunc_command fetch chromium
|
|
pcommand cd src
|
|
|
|
comment "(only on linux)"
|
|
trunc_command ./build/install-build-deps.sh
|
|
|
|
comment "Pull in all dependencies for HEAD"
|
|
trunc_command gclient sync
|
|
|
|
comment "Let's fix something!"
|
|
run git new-branch fix_typo
|
|
ed_ws "$ED1"
|
|
run git commit -am 'Fix terrible typo.'
|
|
map
|
|
run git status
|
|
trunc_command git cl upload -r domo@chromium.org --send-mail
|
|
|
|
comment "While we wait for feedback, let's do something else."
|
|
run git new-branch chap2
|
|
run git map-branches
|
|
add_ws "$ADD1"
|
|
run git status
|
|
|
|
comment "Someone on the code review pointed out that our typo-fix has a typo :("
|
|
comment "We're still working on 'chap2' but we really want to land"
|
|
comment "'fix_typo', so let's switch over and fix it."
|
|
run git freeze
|
|
run git checkout fix_typo 2>&1
|
|
ed_ws "$ED2"
|
|
run git upstream-diff --wordwise
|
|
run git commit -am 'Fix typo for good!'
|
|
trunc_command git cl upload
|
|
|
|
comment "Since we got lgtm, let the CQ land it."
|
|
pcommand git cl set_commit
|
|
map
|
|
|
|
comment "Switch back to where we were using the nav* commands (for fun..."
|
|
comment "git checkout would work here too)"
|
|
run git map-branches
|
|
run git nav-upstream 2>&1
|
|
pcommand git nav-downstream
|
|
git nav-downstream --pick 0 2>&1
|
|
run git map-branches
|
|
|
|
comment "Now we can pick up on chapter2 where we left off."
|
|
run git thaw
|
|
run git diff
|
|
add_ws "$ADD2"
|
|
run git diff
|
|
run git commit -am 'Finish chapter 2'
|
|
map
|
|
trunc_command git cl upload -r domo@chromium.org --send-mail
|
|
|
|
comment "We poke a committer until they lgtm :)"
|
|
pcommand git cl set_commit
|
|
|
|
comment "While that runs through the CQ, let's get started on chapter 3."
|
|
comment "Since we know that chapter 3 depends on chapter 2, we'll track the"
|
|
comment "current chapter2 branch."
|
|
run git new-branch --upstream_current chap3
|
|
add_ws "$ADD3"
|
|
run git commit -am 'beginning of chapter 3'
|
|
map
|
|
|
|
comment "We haven't updated the code in a while, so let's do that now."
|
|
pcommand git rebase-update
|
|
echo Fetching origin
|
|
git fetch origin 2>&1 | grep -v 'stage' | sed 's+From.*+From https://upstream+'
|
|
silent git update-ref refs/remotes/origin/master stage_2
|
|
silent git tag -d $(git tag -l 'stage_*')
|
|
git rebase-update --no-fetch
|
|
|
|
comment "Well look at that. The CQ landed our typo and chapter2 branches "
|
|
comment "already and git rebase-update cleaned them up for us."
|
|
trunc_command gclient sync
|
|
map
|
|
|
|
comment "Someone on IRC mentions that they actually landed a chapter 3 already!"
|
|
comment "We should pull their changes before continuing. Brace for"
|
|
comment "a code conflict!"
|
|
pcommand git rebase-update
|
|
echo Fetching origin
|
|
git fetch origin 2>&1 | grep -v 'stage' | sed 's+From.*+From https://upstream+'
|
|
silent git tag -d $(git tag -l 'stage_*')
|
|
echo Rebasing: chap2
|
|
silent git rebase-update
|
|
echo ... lots of output, it\'s a conflict alright :\(...
|
|
run git diff
|
|
|
|
comment "Oh, well, that's not too bad. In fact... that's a terrible chapter 3!"
|
|
praw \$EDITOR "$WS"
|
|
echo "... /me deletes bad chapter 3 ..."
|
|
silent git checkout --theirs -- "$WS"
|
|
run git add "$WS"
|
|
run git diff --cached
|
|
|
|
comment "Much better"
|
|
run git rebase --continue
|
|
run git rebase-update
|
|
silent git tag -d $(git tag -l 'stage_*')
|
|
trunc_command gclient sync
|
|
map
|
|
trunc_command git cl upload
|