diff options
author | 2018-06-25 13:22:40 -0700 | |
---|---|---|
committer | 2018-06-25 13:22:40 -0700 | |
commit | 208ee598612092da892ac1c0e8dd0d4e09c4f076 (patch) | |
tree | 014cf9a074e670f54a601ec2a6eb007b7555c068 | |
parent | Merge branch 'ls/complete-remote-update-names' (diff) | |
parent | upload-pack: reject shallow requests that would return nothing (diff) | |
download | tgif-208ee598612092da892ac1c0e8dd0d4e09c4f076.tar.xz |
Merge branch 'nd/reject-empty-shallow-request'
"git fetch --shallow-since=<cutoff>" that specifies the cut-off
point that is newer than the existing history used to end up
grabbing the entire history. Such a request now errors out.
* nd/reject-empty-shallow-request:
upload-pack: reject shallow requests that would return nothing
-rw-r--r-- | shallow.c | 3 | ||||
-rwxr-xr-x | t/t5500-fetch-pack.sh | 11 |
2 files changed, 14 insertions, 0 deletions
@@ -191,6 +191,9 @@ struct commit_list *get_shallow_commits_by_rev_list(int ac, const char **av, die("revision walk setup failed"); traverse_commit_list(&revs, show_commit, NULL, ¬_shallow_list); + if (!not_shallow_list) + die("no commits selected for shallow requests"); + /* Mark all reachable commits as NOT_SHALLOW */ for (p = not_shallow_list; p; p = p->next) p->item->object.flags |= not_shallow_flag; diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh index d4f435155f..8390c0a2d2 100755 --- a/t/t5500-fetch-pack.sh +++ b/t/t5500-fetch-pack.sh @@ -711,6 +711,17 @@ test_expect_success 'fetch shallow since ...' ' test_cmp expected actual ' +test_expect_success 'clone shallow since selects no commits' ' + test_create_repo shallow-since-the-future && + ( + cd shallow-since-the-future && + GIT_COMMITTER_DATE="100000000 +0700" git commit --allow-empty -m one && + GIT_COMMITTER_DATE="200000000 +0700" git commit --allow-empty -m two && + GIT_COMMITTER_DATE="300000000 +0700" git commit --allow-empty -m three && + test_must_fail git clone --shallow-since "900000000 +0700" "file://$(pwd)/." ../shallow111 + ) +' + test_expect_success 'shallow clone exclude tag two' ' test_create_repo shallow-exclude && ( |