aboutsummaryrefslogtreecommitdiffstats
path: root/config/refspec.go
diff options
context:
space:
mode:
authorAlan Cabrera <adc@toolazydogs.com>2018-03-14 07:58:13 -0700
committerAlan Cabrera <acabrera@nianticlabs.com>2018-03-14 08:06:44 -0700
commitd873056e03f21724f799824e02a17b2da7fd29af (patch)
tree5230fc30372b4f0414509b473b281cecbac6204d /config/refspec.go
parentecda5c1512bcb19e1802d629b18872ec995e23cf (diff)
downloadgo-git-d873056e03f21724f799824e02a17b2da7fd29af.tar.gz
Fix RefSpec.Src()
Previously, the Src() function was assuming there are no “+” characters in the refspec src and erroneously used the strings.Index() function to compute the start index of src in the refspec. This change now uses the IsForceUpdate() method to decide how to elide the force update token. Signed-off-by: Alan Cabrera <adc@toolazydogs.com>
Diffstat (limited to 'config/refspec.go')
-rw-r--r--config/refspec.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/config/refspec.go b/config/refspec.go
index af7e732..c9b9d52 100644
--- a/config/refspec.go
+++ b/config/refspec.go
@@ -62,7 +62,13 @@ func (s RefSpec) IsDelete() bool {
// Src return the src side.
func (s RefSpec) Src() string {
spec := string(s)
- start := strings.Index(spec, refSpecForce) + 1
+
+ var start int
+ if s.IsForceUpdate() {
+ start = 1
+ } else {
+ start = 0
+ }
end := strings.Index(spec, refSpecSeparator)
return spec[start:end]