assert(out && spec && name);
git_buf_sanitize(out);
- if (!spec->pattern)
- return git_buf_puts(out, spec->dst);
-
if (!git_refspec_src_matches(spec, name)) {
giterr_set(GITERR_INVALID, "ref '%s' doesn't match the source", name);
return -1;
}
+ if (!spec->pattern)
+ return git_buf_puts(out, spec->dst);
+
return refspec_transform(out, spec->src, spec->dst, name);
}
assert(out && spec && name);
git_buf_sanitize(out);
- if (!spec->pattern)
- return git_buf_puts(out, spec->src);
-
if (!git_refspec_dst_matches(spec, name)) {
giterr_set(GITERR_INVALID, "ref '%s' doesn't match the destination", name);
return -1;
}
+ if (!spec->pattern)
+ return git_buf_puts(out, spec->src);
+
return refspec_transform(out, spec->dst, spec->src, name);
}