Skip to content
  • Derrick Stolee's avatar
    merge: check config before loading commits · 7adf5266
    Derrick Stolee authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Now that we use generation numbers from the commit-graph, we must
    ensure that all commits that exist in the commit-graph are loaded
    from that file instead of from the object database. Since the
    commit-graph file is only checked if core.commitGraph is true, we
    must check the default config before we load any commits.
    
    In the merge builtin, the config was checked after loading the HEAD
    commit. This was due to the use of the global 'branch' when checking
    merge-specific config settings.
    
    Move the config load to be between the initialization of 'branch' and
    the commit lookup.
    
    Without this change, a fast-forward merge would hit a BUG("bad
    generation skip") statement in commit.c during paint_down_to_common().
    This is because the HEAD commit would be loaded with "infinite"
    generation but then reached by commits with "finite" generation
    numbers.
    
    Add a test to t5318-commit-graph.sh that exercises this code path to
    prevent a regression.
    
    Signed-off-by: default avatarDerrick Stolee <dstolee@microsoft.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    7adf5266