Skip to content
  • Johannes Sixt's avatar
    Test and fix normalize_path_copy() · f42302b4
    Johannes Sixt authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    This changes the test-path-utils utility to invoke normalize_path_copy()
    instead of normalize_absolute_path() because the latter is about to be
    removed.
    
    The test cases in t0060 are adjusted in two regards:
    
    - normalize_path_copy() more often leaves a trailing slash in the result.
      This has no negative side effects because the new user of this function,
      longest_ancester_length(), already accounts for this behavior.
    
    - The function can fail.
    
    The tests uncover a flaw in normalize_path_copy(): If there are
    sufficiently many '..' path components so that the root is reached, such as
    in "/d1/s1/../../d2", then the leading slash was lost. This manifested
    itself that (assuming there is a repository at /tmp/foo)
    
      $ git add /d1/../tmp/foo/some-file
    
    reported 'pathspec is outside repository'. This is now fixed.
    
    Moreover, the test case descriptions of t0060 now include the test data and
    expected outcome.
    
    Signed-off-by: default avatarJohannes Sixt <j6t@kdbg.org>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    f42302b4