#!/bin/bash

# READ ME:
#   Please run `git init` if you don't
#   init yet before run this script file

# C1--C2--C3--C6--C7   <- topic
#  \   \     /
#   \  C4--C5      
#    \
#     C8--C9           <- master
# 
# `topic` rebase to `master`

let cm=0	# (commit)
let fc=0	# (file count)

# C1 (master, topic)
let cm++; let fc++; touch "file$fc";
git add "file$fc"; git commit -m "C$cm"
git branch topic

# C2 (topic, temp)
git checkout topic

let cm++; let fc++; touch "file$fc";
git add "file$fc"; git commit -m "C$cm"
git branch temp

# C3
let cm++; let fc++; touch "file$fc";
git add "file$fc"; git commit -m "C$cm"

# C4-5
git checkout temp

let cm++; let fc++; touch "file$fc";
git add "file$fc"; git commit -m "C$cm"

let cm++; let fc++; touch "file$fc";
git add "file$fc"; git commit -m "C$cm"

# C6
git checkout topic
let cm++
git merge -m "C$cm" temp
git branch -d temp

# C7
let cm++; let fc++; touch "file$fc";
git add "file$fc"; git commit -m "C$cm"

# C8-9
git checkout master

let cm++; let fc++; touch "file$fc";
git add "file$fc"; git commit -m "C$cm"

let cm++; let fc++; touch "file$fc";
git add "file$fc"; git commit -m "C$cm"

#####
echo -e "\n## Before:"
git log --all --decorate --oneline --graph --pretty="format:%s%d"

echo -e "\n## In:"
git checkout topic
git rebase master

echo -e "\n## After:"
git log --all --decorate --oneline --graph --pretty="format:%s%d"
