Skip to content
  • Duy Nguyen's avatar
    pathspec.c: support adding prefix magic to a pathspec with mnemonic magic · 1649612a
    Duy Nguyen authored and Junio C Hamano's avatar Junio C Hamano committed
    Back in 233c3e6c
    
     (parse_pathspec: preserve prefix length via
    PATHSPEC_PREFIX_ORIGIN - 2013-07-14), parse_pathspec() is taught to
    save prefix length as a dynamic magic. This is needed when the
    pathspec is passed to another process and and prefix lenght would be
    lost.
    
    Back then we support two cases. If the pathspec is normal, e.g. "abc",
    we simply add the prefix to become ":(prefix:2)abc". If the pathspec
    contains long magic, e.g. ":(foo,bar)abc" then we turn it to
    ":(foo,bar,prefix:2)abc". We do not support prefixing on short form,
    because the only supported mnemonic '/' disappears after the the
    preprocessing steps.
    
    With the introduction of exclude magic with mnemonic '!', we need to
    add support for the short form case so that ':!abc' becomes
    ':(exclude,prefix:2)abc'. Without this, it will break
    
        cd Documentation
        git add -p -- . ':!technical'
    
    Signed-off-by: default avatarNguyễn Thái Ngọc Duy <pclouds@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    1649612a