Re: [PATCH v3 03/28] clone: prevent --reference to a shallow repository
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Nov 26, 2013, 05:52 UTC
- Message-ID
- <CAPig+cRVXvBwWDC2Rp8M9hDCKexCJCEGeKLOa__aMX3q9X8S1w@mail.gmail.com>
- In-Reply-To
- <1385351754-9954-4-git-send-email-pclouds@gmail.com>
On Sun, Nov 24, 2013 at 10:55 PM, Nguyễn Thái Ngọc Duy <pclouds@gmail.com> wrote:
Show 6 quoted lines
> If we borrow objects from another repository, we should also pay > attention to their $GIT_DIR/shallow (and even info/grafts). But > current alternates code does not. > > Reject alternate repos that are shallow because we do not do it > right. In future we alternate code may be updated to check
s/we/the/
Show 26 quoted lines
> $GIT_DIR/shallow properly so that this restriction could be lifted.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
> builtin/clone.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/builtin/clone.c b/builtin/clone.c
> index 874e0fd..900f564 100644
> --- a/builtin/clone.c
> +++ b/builtin/clone.c
> @@ -252,6 +252,12 @@ static int add_one_reference(struct string_list_item *item, void *cb_data)
> die(_("reference repository '%s' is not a local repository."),
> item->string);
>
> + if (!access(mkpath("%s/shallow", ref_git), F_OK))
> + die(_("reference repository '%s' is shallow"), item->string);
> +
> + if (!access(mkpath("%s/info/grafts", ref_git), F_OK))
> + die(_("reference repository '%s' is grafted"), item->string);
> +
> strbuf_addf(&alternate, "%s/objects", ref_git);
> add_to_alternates_file(alternate.buf);
> strbuf_release(&alternate);
> --
> 1.8.2.83.gc99314b