Package sync provides utility functions similar to `git pull/push` for PFS
Push puts files under root into an open commit.
func PushFile(c *pachclient.APIClient, pfc pachclient.PutFileClient, pfsFile *pfs.File, osFile io.ReadSeeker) error
PushFile makes sure that pfsFile has the same content as osFile.
PushObj pushes data from commit to an object store.
Puller as a struct for managing a Pull operation.
NewPuller creates a new Puller struct.
CleanUp cleans up blocked syscalls for pipes that were never opened. And returns the total number of bytes that have been pulled/pushed. It also returns any errors that might have been encountered while trying to read data for the pipes. CleanUp should be called after all code that might access pipes has completed running, it should not be called concurrently.
Pull clones an entire repo at a certain commit. root is the local path you want to clone to. fileInfo is the file/dir we are puuling. pipes causes the function to create named pipes in place of files, thus lazily downloading the data as it's needed. emptyFiles causes the function to create empty files with no content, it's mutually exclusive with pipes. tree is a hashtree to mirror the pulled content into (it may be left nil) treeRoot is the root the data is mirrored to within tree
PullDiff is like Pull except that it materializes a Diff of the content rather than a the actual content. If newOnly is true then only new files will be downloaded and they will be downloaded under root. Otherwise new and old files will be downloaded under root/new and root/old respectively.
PullTree pulls from a raw HashTree rather than a repo.