summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2014-07-04 17:16:17 +0200
committerVicent Marti <tanoku@gmail.com>2014-08-05 02:08:16 +0200
commit0aa6b7e652a43d65c80e5a54aafc174476a3441c (patch)
tree2c2d13a65729551da869fbd4663749b36575a615
parent18cf389c88cf12e2274c10fa95ad8c7504436827 (diff)
downloadlibgit2-0aa6b7e652a43d65c80e5a54aafc174476a3441c.tar.gz
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.
-rw-r--r--src/refspec.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/refspec.c b/src/refspec.c
index fa60aa7a..48d34cd9 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);
}