diff options
author | Thomas Rast <trast@student.ethz.ch> | 2009-01-02 23:28:28 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-01-11 23:04:45 -0800 |
commit | d911d1465d134cbd126e531a544f33b13f4e855a (patch) | |
tree | 44772e95f9dd5f74b7b930e3ea360b7158aa9fa9 /hash.h | |
parent | 190f53232d1e92a57843df90e889bcfea39620d3 (diff) | |
download | git-d911d1465d134cbd126e531a544f33b13f4e855a.tar.gz git-d911d1465d134cbd126e531a544f33b13f4e855a.tar.xz |
rebase -i: learn to rebase root commit
Teach git-rebase -i a new option --root, which instructs it to rebase
the entire history leading up to <branch>. This is mainly for
symmetry with ordinary git-rebase; it cannot be used to edit the root
commit in-place (it requires --onto <newbase>). Commits that already
exist in <newbase> are skipped.
In the normal mode of operation, this is fairly straightforward. We
run cherry-pick in a loop, and cherry-pick has supported picking the
root commit since f95ebf7 (Allow cherry-picking root commits,
2008-07-04).
In --preserve-merges mode, we track the mapping from old to rewritten
commits and use it to update the parent list of each commit. In this
case, we define 'rebase -i -p --root --onto $onto $branch' to rewrite
the parent list of all root commit(s) on $branch to contain $onto
instead.
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'hash.h')
0 files changed, 0 insertions, 0 deletions