Last active
January 29, 2016 19:33
-
-
Save robbat2/e5b7de2ae6104a6b6af1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| set -e -x | |
| rm -rf .git pkgdir #log.* | |
| git init | |
| LOGNAME=log.merge | |
| dumplog() { | |
| git log --format=raw | |
| git whatchanged --pretty='%%at:%at %%ct:%ct' -m | |
| } | |
| time_set() { | |
| export GIT_COMMITTER_DATE="$1 +0000" | |
| export GIT_AUTHOR_DATE="${GIT_COMMITTER_DATE}" | |
| } | |
| export GIT_AUTHOR_EMAIL='dev0@example.com' | |
| export GIT_AUTHOR_Name='Developer 0' | |
| time_set 1400000000 | |
| mkdir -p pkgdir | |
| touch pkgdir/metadata.xml | |
| echo 'log.*' >.gitignore | |
| git add testcase*sh pkgdir/metadata.xml .gitignore | |
| git commit -s -m 'Initial commit.' -a | |
| git checkout -b branch1 master | |
| echo foo >pkgdir/a.ebuild | |
| git add pkgdir/a.ebuild | |
| export GIT_AUTHOR_EMAIL='dev1@example.com' | |
| export GIT_AUTHOR_Name='Developer 1' | |
| time_set 1450000000 | |
| git commit -s -m 'Dev1 commit.' pkgdir | |
| git checkout -b branch2 master | |
| echo bar >pkgdir/b.ebuild | |
| git add pkgdir/b.ebuild | |
| export GIT_AUTHOR_EMAIL='dev2@example.com' | |
| export GIT_AUTHOR_Name='Developer 2' | |
| time_set 1450000000 | |
| git commit -s -m 'Dev2 commit.' pkgdir | |
| git checkout master | |
| dumplog >${LOGNAME}.00.before-push1,before-push2 | |
| git checkout master | |
| export GIT_AUTHOR_EMAIL='dev1@example.com' | |
| export GIT_AUTHOR_Name='Developer 1' | |
| unset GIT_AUTHOR_DATE GIT_COMMITTER_DATE | |
| git merge --no-ff -m 'merge branch1' branch1 | |
| dumplog >${LOGNAME}.01.after-push1,before-push2 | |
| # This represents the second developer pushing later | |
| sleep 2 | |
| git checkout master | |
| export GIT_AUTHOR_EMAIL='dev2@example.com' | |
| export GIT_AUTHOR_Name='Developer 2' | |
| unset GIT_AUTHOR_DATE GIT_COMMITTER_DATE | |
| git merge --no-ff -m 'merge branch2' branch2 | |
| dumplog >${LOGNAME}.02.after-push1,after-push2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| set -e -x | |
| rm -rf .git pkgdir #log.* | |
| git init | |
| LOGNAME=log.rebase | |
| dumplog() { | |
| git log | |
| git whatchanged --pretty='%%at:%at %%ct:%ct' -m | |
| } | |
| export GIT_AUTHOR_EMAIL='dev0@example.com' | |
| export GIT_AUTHOR_Name='Developer 0' | |
| export GIT_AUTHOR_DATE='1400000000 +0000' | |
| export GIT_COMMITTER_DATE="${GIT_AUTHOR_DATE}" | |
| mkdir -p pkgdir | |
| touch pkgdir/metadata.xml | |
| echo 'log.*' >.gitignore | |
| git add testcase*sh pkgdir/metadata.xml .gitignore | |
| git commit -s -m 'Initial commit.' -a | |
| git checkout -b branch1 master | |
| echo foo >pkgdir/a.ebuild | |
| git add pkgdir/a.ebuild | |
| export GIT_AUTHOR_EMAIL='dev1@example.com' | |
| export GIT_AUTHOR_Name='Developer 1' | |
| export GIT_AUTHOR_DATE='1450000000 +0000' | |
| export GIT_COMMITTER_DATE="${GIT_AUTHOR_DATE}" | |
| git commit -s -m 'Dev1 commit.' pkgdir | |
| git checkout -b branch2 master | |
| echo bar >pkgdir/b.ebuild | |
| git add pkgdir/b.ebuild | |
| export GIT_AUTHOR_EMAIL='dev2@example.com' | |
| export GIT_AUTHOR_Name='Developer 2' | |
| export GIT_AUTHOR_DATE='1450000000 +0000' | |
| export GIT_COMMITTER_DATE="${GIT_AUTHOR_DATE}" | |
| git commit -s -m 'Dev2 commit.' pkgdir | |
| git checkout master | |
| dumplog >${LOGNAME}.00.before-push1,before-push2 | |
| git checkout master | |
| export GIT_AUTHOR_EMAIL='dev1@example.com' | |
| export GIT_AUTHOR_Name='Developer 1' | |
| unset GIT_AUTHOR_DATE GIT_COMMITTER_DATE | |
| git merge --ff-only -m 'merge branch1' branch1 | |
| dumplog >${LOGNAME}.01.after-push1,before-push2 | |
| # This represents the second developer pushing later | |
| sleep 2 | |
| git checkout branch2 | |
| git rebase master | |
| git checkout master | |
| export GIT_AUTHOR_EMAIL='dev2@example.com' | |
| export GIT_AUTHOR_Name='Developer 2' | |
| unset GIT_AUTHOR_DATE GIT_COMMITTER_DATE | |
| git merge --ff-only -m 'merge branch2' branch2 | |
| dumplog >${LOGNAME}.02.after-push1,after-push2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment