Skip to content
  • Ben Woosley's avatar
    git-rebase--merge: don't include absent parent as a base · 79f43447
    Ben Woosley authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Absent this fix, attempts to rebase an orphan branch using "rebase -m"
    fails with:
    
        $ git rebase -m ORPHAN_TARGET_BASE
        First, rewinding head to replay your work on top of it...
        fatal: Could not parse object 'ORPHAN_ROOT_SHA^'
        Unknown exit code (128) from command: git-merge-recursive ORPHAN_ROOT_SHA^ -- HEAD ORPHAN_ROOT_SHA
    
    To fix, this will only include the rebase root's parent as a base if it exists,
    so that in cases of rebasing an orphan branch, it is a simple two-way merge.
    
    Note the default rebase behavior does not fail:
    
        $ git rebase ORPHAN_TARGET_BASE
        First, rewinding head to replay your work on top of it...
        Applying: ORPHAN_ROOT_COMMIT_MSG
        Using index info to reconstruct a base tree...
    
    A few tests were expecting the old behaviour to forbid rebasing such
    a history with "rebase -m", which now need to expect them to succeed.
    
    Signed-off-by: default avatarBen Woosley <ben.woosley@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    79f43447