Make automated branch creation gnumbd-save.
authormachenbach <machenbach@chromium.org>
Fri, 6 Mar 2015 13:10:22 +0000 (05:10 -0800)
committerCommit bot <commit-bot@chromium.org>
Fri, 6 Mar 2015 13:10:33 +0000 (13:10 +0000)
commit934dd88d3b2cee6d3952676fc89844c41b77adf2
tree19e26af51312d8f562ea384f70a5cc3c0b0b557d
parent9b40c5d0d271c0e85fcaa09161584b558579363b
Make automated branch creation gnumbd-save.

This makes now the same simplification as the chromium
release scripts do. For creating branch B from a gnumbd'ed
(aka real) commit X do:
1. Branch Y off the real X
2. Set refs/pending/heads/B to Y
3. Set refs/pending-tags/B to X
4. Set refs/heads/B to X

The old algorithm tried to branch off the pending
correspondent of X. That commit was determined by comparing
tree objects of the real X and commits on pending.
Unfortunately, multiple commits on one branch can refer to
the same tree object, e.g., for commits P, Q, R with R being
the revert of Q, P and R refer to the same tree object.

TBR=tandrii@chromium.org
NOTRY=true
TEST=./script_test.py
TEST=tools/release/create_release.py -a me -r you --dry-run

Review URL: https://codereview.chromium.org/979243004

Cr-Commit-Position: refs/heads/master@{#27042}
tools/release/create_release.py
tools/release/test_scripts.py