summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2018-07-06 10:47:06 +0000
committerGitHub <noreply@github.com>2018-07-06 10:47:06 +0000
commit8a00de0899dcb71dca147acf7d47d19d27f63ba4 (patch)
treef856c324623781685f4f148d99cc7b592df9f378
parentc43658f62ee268a0b5ee13f5764544882245063c (diff)
parentff8edac946d662e282d127c1697c5a34d17a7af7 (diff)
downloadlibgit2-8a00de0899dcb71dca147acf7d47d19d27f63ba4.tar.gz
Merge pull request #4699 from nelhage/fetch-null-dst
git_refspec_transform: Handle NULL dst
-rw-r--r--src/refspec.c2
-rw-r--r--tests/network/refspecs.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/src/refspec.c b/src/refspec.c
index bc1d84aa3..aa6682bad 100644
--- a/src/refspec.c
+++ b/src/refspec.c
@@ -277,7 +277,7 @@ int git_refspec_transform(git_buf *out, const git_refspec *spec, const char *nam
}
if (!spec->pattern)
- return git_buf_puts(out, spec->dst);
+ return git_buf_puts(out, spec->dst ? spec->dst : "");
return refspec_transform(out, spec->src, spec->dst, name);
}
diff --git a/tests/network/refspecs.c b/tests/network/refspecs.c
index fd85ca015..15d36245b 100644
--- a/tests/network/refspecs.c
+++ b/tests/network/refspecs.c
@@ -111,6 +111,11 @@ void test_network_refspecs__transform_mid_star(void)
assert_valid_transform("refs/*:refs/*", "refs/heads/master", "refs/heads/master");
}
+void test_network_refspecs__no_dst(void)
+{
+ assert_valid_transform("refs/heads/master:", "refs/heads/master", "");
+}
+
static void assert_invalid_transform(const char *refspec, const char *name)
{
git_refspec spec;