Add possibiliy of checkout on specific path
diff --git a/checkout.go b/checkout.go
index 06d010c..c507172 100644
--- a/checkout.go
+++ b/checkout.go
@@ -38,6 +38,7 @@
FileMode os.FileMode // Default is 0644 or 0755 as dictated by blob
FileOpenFlags int // Default is O_CREAT | O_TRUNC | O_WRONLY
TargetDirectory string // Alternative checkout path to workdir
+ Paths []string
}
func (opts *CheckoutOpts) toC() *C.git_checkout_options {
@@ -65,6 +66,11 @@
if opts.TargetDirectory != "" {
ptr.target_directory = C.CString(opts.TargetDirectory)
}
+ if len(opts.Paths) > 0 {
+ ptr.paths.strings = makeCStringsFromStrings(opts.Paths)
+ ptr.paths.count = C.size_t(len(opts.Paths))
+ }
+
return ptr
}
@@ -73,6 +79,9 @@
return
}
C.free(unsafe.Pointer(ptr.target_directory))
+ if ptr.paths.count > 0 {
+ freeStrarray(&ptr.paths)
+ }
}
// Updates files in the index and the working tree to match the content of
@@ -128,4 +137,4 @@
}
return nil
-}
+}
\ No newline at end of file