• J
    introduce "preciousObjects" repository extension · 067fbd41
    Jeff King 提交于
    If this extension is used in a repository, then no
    operations should run which may drop objects from the object
    storage. This can be useful if you are sharing that storage
    with other repositories whose refs you cannot see.
    
    For instance, if you do:
    
      $ git clone -s parent child
      $ git -C parent config extensions.preciousObjects true
      $ git -C parent config core.repositoryformatversion 1
    
    you now have additional safety when running git in the
    parent repository. Prunes and repacks will bail with an
    error, and `git gc` will skip those operations (it will
    continue to pack refs and do other non-object operations).
    Older versions of git, when run in the repository, will
    fail on every operation.
    
    Note that we do not set the preciousObjects extension by
    default when doing a "clone -s", as doing so breaks
    backwards compatibility. It is a decision the user should
    make explicitly.
    Signed-off-by: NJeff King <peff@peff.net>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    067fbd41
gc.c 9.6 KB