aboutsummaryrefslogtreecommitdiffstats
path: root/tree.go
diff options
context:
space:
mode:
authorJoshua Sjoding <joshua.sjoding@scjalliance.com>2016-02-16 10:33:33 -0800
committerJoshua Sjoding <joshua.sjoding@scjalliance.com>2016-02-16 10:33:33 -0800
commit0d4d81e597d541e9f0639f2a0fb5249bf8b5faaa (patch)
treebe07a89623f7a6b39372550d3bc68cb9c2741662 /tree.go
parenta9896315a1b37b66865a0eb7e94e768ef45ff3db (diff)
downloadgo-git-0d4d81e597d541e9f0639f2a0fb5249bf8b5faaa.tar.gz
File paths will now be consistent across platforms
Previously go-git used filepath.Join when walking tree structures and constructing paths, but its results are platform-dependent as it will return different results on different systems. For example, it will use backslashes as a path separator on Windows. As a result the SuiteTree.TestFiles test was failing on Windows because the returned paths didn't match what was expected. filepath.Join has been changed to path.Join, which will return consistent results for all platforms. This change makes it so that go-git will always return paths with forward-slash delimiters. Users of the library should convert the resulting file paths into platform-compatible paths when necessary.
Diffstat (limited to 'tree.go')
-rw-r--r--tree.go6
1 files changed, 3 insertions, 3 deletions
diff --git a/tree.go b/tree.go
index 339fb7f..4a964a4 100644
--- a/tree.go
+++ b/tree.go
@@ -5,7 +5,7 @@ import (
"errors"
"io"
"os"
- "path/filepath"
+ "path"
"strconv"
"strings"
@@ -138,14 +138,14 @@ func (t *Tree) walkEntries(base string, ch chan *File) {
if obj.Type() == core.TreeObject {
tree := &Tree{r: t.r}
tree.Decode(obj)
- tree.walkEntries(filepath.Join(base, entry.Name), ch)
+ tree.walkEntries(path.Join(base, entry.Name), ch)
continue
}
blob := &Blob{}
blob.Decode(obj)
- ch <- &File{Name: filepath.Join(base, entry.Name), Reader: blob.Reader(), Hash: entry.Hash}
+ ch <- &File{Name: path.Join(base, entry.Name), Reader: blob.Reader(), Hash: entry.Hash}
}
}