summaryrefslogtreecommitdiff
path: root/builtin-symbolic-ref.c
diff options
context:
space:
mode:
authorLibravatar Thomas Rast <trast@student.ethz.ch>2009-01-02 23:28:28 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2009-01-11 23:04:45 -0800
commitd911d1465d134cbd126e531a544f33b13f4e855a (patch)
tree44772e95f9dd5f74b7b930e3ea360b7158aa9fa9 /builtin-symbolic-ref.c
parentrebase: learn to rebase root commit (diff)
downloadtgif-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 'builtin-symbolic-ref.c')
0 files changed, 0 insertions, 0 deletions