summaryrefslogtreecommitdiff
path: root/revision.h
diff options
context:
space:
mode:
authorJonathan Tan <jonathantanmy@google.com>2018-07-06 19:34:09 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-07-09 19:37:38 (GMT)
commita0c9016abd566e9a8f988dcd387663cd0b2be078 (patch)
treef8c178df171d3267e7c55ee46148c0ef931cb807 /revision.h
parentcf1e7c07705eb21c30d0ee414810e7bc8fdf7d82 (diff)
downloadgit-a0c9016abd566e9a8f988dcd387663cd0b2be078.zip
git-a0c9016abd566e9a8f988dcd387663cd0b2be078.tar.gz
git-a0c9016abd566e9a8f988dcd387663cd0b2be078.tar.bz2
upload-pack: send refs' objects despite "filter"
A filter line in a request to upload-pack filters out objects regardless of whether they are directly referenced by a "want" line or not. This means that cloning with "--filter=blob:none" (or another filter that excludes blobs) from a repository with at least one ref pointing to a blob (for example, the Git repository itself) results in output like the following: error: missing object referenced by 'refs/tags/junio-gpg-pub' and if that particular blob is not referenced by a fetched tree, the resulting clone fails fsck because there is no object from the remote to vouch that the missing object is a promisor object. Update both the protocol and the upload-pack implementation to include all explicitly specified "want" objects in the packfile regardless of the filter specification. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'revision.h')
-rw-r--r--revision.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/revision.h b/revision.h
index b8c47b9..dc8f963 100644
--- a/revision.h
+++ b/revision.h
@@ -19,8 +19,9 @@
#define SYMMETRIC_LEFT (1u<<8)
#define PATCHSAME (1u<<9)
#define BOTTOM (1u<<10)
+#define USER_GIVEN (1u<<25) /* given directly by the user */
#define TRACK_LINEAR (1u<<26)
-#define ALL_REV_FLAGS (((1u<<11)-1) | TRACK_LINEAR)
+#define ALL_REV_FLAGS (((1u<<11)-1) | USER_GIVEN | TRACK_LINEAR)
#define DECORATE_SHORT_REFS 1
#define DECORATE_FULL_REFS 2