Re: [PATCH/GSoC/RFC] fetch: git fetch --deepen
- From
Dongcan Jiang <dongcan.jiang@gmail.com>
- Date
- Mar 16, 2015, 16:04 UTC
- Message-ID
- <CABwkPcoRK9SGx=euPy3wjk58_TcOgN_uQYhvWvPyEn3JyrogGw@mail.gmail.com>
- In-Reply-To
- <CAPig+cS07W6gtW8L5wbQwZuxSLxb-r0s6KNO4eDO5BYdBDbWjw@mail.gmail.com>
Hi Eric,
Sorry for my late response. Thank you for your suggestions! I will try to use them in my next patch version.
Best Regards, Dongcan
2015-03-14 3:42 GMT+08:00 Eric Sunshine <sunshine@sunshineco.com>:
Show 56 quoted lines
> On Fri, Mar 13, 2015 at 9:04 AM, Dongcan Jiang <dongcan.jiang@gmail.com> wrote:
>> This patch is just for discusstion. An option --deepen is added to
>> 'git fetch'. When it comes to '--deepen', git should fetch N more
>> commits ahead the local shallow commit, where N is indicated by
>> '--depth=N'. [1]
>> [...]
>> Of course, as a patch for discussion, it remains a long way to go
>> before being complete.
>> [...]
>> Signed-off-by: Dongcan Jiang <dongcan.jiang@gmail.com>
>> ---
>> diff --git a/fetch-pack.c b/fetch-pack.c
>> index 655ee64..6f4adca 100644
>> --- a/fetch-pack.c
>> +++ b/fetch-pack.c
>> @@ -295,6 +295,7 @@ static int find_common(struct fetch_pack_args *args,
>> if (no_done) strbuf_addstr(&c, " no-done");
>> if (use_sideband == 2) strbuf_addstr(&c, " side-band-64k");
>> if (use_sideband == 1) strbuf_addstr(&c, " side-band");
>> + if (args->depth_deepen) strbuf_addstr(&c, " depth_deepen");
>
> For consistency, should this be "depth-deepen" rather than "depth_deepen"?
>
>> if (args->use_thin_pack) strbuf_addstr(&c, " thin-pack");
>> if (args->no_progress) strbuf_addstr(&c, " no-progress");
>> if (args->include_tag) strbuf_addstr(&c, " include-tag");
>> diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh
>> index d78f320..6738006 100755
>> --- a/t/t5510-fetch.sh
>> +++ b/t/t5510-fetch.sh
>> @@ -708,4 +708,15 @@ test_expect_success 'fetching a one-level ref works' '
>> )
>> '
>>
>> +test_expect_success 'fetching deepen' '
>> + git clone . deepen --depth=1 &&
>> + cd deepen &&
>
> When this tests ends, the working directory will still be 'deepen',
> which will likely break tests added after this one. If you wrap the
> 'cd' and following statements in a subshell via '(' and ')', then the
> 'cd' will affect the subshell but leave the parent shell's working
> directory alone, and thus not negatively impact subsequent tests.
>
>> + git fetch .. foo --depth=1
>> + git show foo
>> + test_must_fail git show foo~
>> + git fetch .. foo --depth=1 --deepen
>> + git show foo~
>> + test_must_fail git show foo~2
>
> Broken &&-chain throughout.
>
>> +'
>> +
>> test_done-- 江东灿(Dongcan Jiang) Team of Search Engine & Web Mining School of Electronic Engineering & Computer Science Peking University, Beijing, 100871, P.R.China