Commit 9ed104a8fa9fc28bb29a0ff53c68094696e13aea

Carlos Martín Nieto 2014-07-04T17:16:17

refspec: short-circuit non-pattern refspecs on transform When transforming a non-pattern refspec, we simply need to copy over the opposite string. Move that logic up to the wrapper so we can assume a pattern refspec in the transformation function.

diff --git a/src/refspec.c b/src/refspec.c
index fa60aa7..48d34cd 100644
--- a/src/refspec.c
+++ b/src/refspec.c
@@ -209,11 +209,21 @@ static int refspec_transform(
 
 int git_refspec_transform(git_buf *out, const git_refspec *spec, const char *name)
 {
+        git_buf_sanitize(out);
+
+	if (!spec->pattern)
+		return git_buf_puts(out, spec->dst);
+
 	return refspec_transform(out, spec->src, spec->dst, name);
 }
 
 int git_refspec_rtransform(git_buf *out, const git_refspec *spec, const char *name)
 {
+        git_buf_sanitize(out);
+
+	if (!spec->pattern)
+		return git_buf_puts(out, spec->src);
+
 	return refspec_transform(out, spec->dst, spec->src, name);
 }