summaryrefslogtreecommitdiff
path: root/upload-pack.c
diff options
context:
space:
mode:
authorDerrick Stolee <dstolee@microsoft.com>2018-08-20 18:24:34 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-08-21 17:22:51 (GMT)
commit829a321569d8e8f2c582aef9f0c990df976ab842 (patch)
tree0a8493cc8e0ee313e35f2c4a84f30698229ffaa7 /upload-pack.c
parent5cef295f283e84351a104c66f949a53a56297aa7 (diff)
downloadgit-829a321569d8e8f2c582aef9f0c990df976ab842.zip
git-829a321569d8e8f2c582aef9f0c990df976ab842.tar.gz
git-829a321569d8e8f2c582aef9f0c990df976ab842.tar.bz2
commit-graph: close_commit_graph before shallow walk
Call close_commit_graph() when about to start a rev-list walk that includes shallow commits. This is necessary in code paths that "fake" shallow commits for the sake of fetch. Specifically, test 351 in t5500-fetch-pack.sh runs git fetch --shallow-exclude one origin with a file-based transfer. When the "remote" has a commit-graph, we do not prevent the commit-graph from being loaded, but then the commits are intended to be dynamically transferred into shallow commits during get_shallow_commits_by_rev_list(). By closing the commit-graph before this call, we prevent this interaction. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'upload-pack.c')
-rw-r--r--upload-pack.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/upload-pack.c b/upload-pack.c
index 82b393e..2ae9d9b 100644
--- a/upload-pack.c
+++ b/upload-pack.c
@@ -24,6 +24,7 @@
#include "quote.h"
#include "upload-pack.h"
#include "serve.h"
+#include "commit-graph.h"
/* Remember to update object flag allocation in object.h */
#define THEY_HAVE (1u << 11)
@@ -740,6 +741,7 @@ static void deepen_by_rev_list(int ac, const char **av,
{
struct commit_list *result;
+ close_commit_graph(the_repository);
result = get_shallow_commits_by_rev_list(ac, av, SHALLOW, NOT_SHALLOW);
send_shallow(result);
free_commit_list(result);