This release features the following:
- Added a retry count flag for pull/push failures.
This feature was requested by @canpolat in issue #529. It was addressed by PR #634 and updated by PR #635
$ drive pull --retry-count 14 documents/2016/March videos/2013/September $ drive push --retry-count 4 a/bc/def terms
edit descriptionto have proper error handling. This issue was diagnosed and fixed by @thiell in PR #605 by ensuring any thrown errors are recomposed and combined to be returned later on.
- Returning error levels/codes to shell on error.
This issue was requested by @pageauc in issue #479. It was addressed by PR #608.
$ drive pull nonExistant $ echo $? 8 $ mkfifo pxm $ drive push pxm Resolving... – /pxm (/Users/emmanuelodeke/emm.odeke/pxm) is a named pipe, yet not reading from it $ echo $? 22
Sample status codes taken from the commit that fixed the issue. Please see https://github.com/odeke-em/drive/blob/b261a8fdd7ebc72eb057fe8cda96c2e18cca7199/src/errors.go
- Fixed OAuth2.0 Invalid Scope bug. This issue was reported by @Guymer in issue #609. It was fixed by PR #610. This issue was a regression from PR #608.
- Added a flag to specify an exact destination not in the current working directory. This feature was requested in the form of a question by @kevjonesin in issue #612. It was addressed by PR #616.
- To push the content of music/Travi$+Future, integrals/complex/compilations directly to a1/b2/c3:
$ drive push --destination a1/b2/c3 music/Travi$+Future integrals/complex/compilations
where the sources exist on disk.
- Do not show the progress bar if
--quietis set. This issue was identified by @chevillet in issue #636. It was addressed by PR #642.
- Bumped up the minimum go version in the README from Go1.3 to Go1.5. This issue was reported by @ManuCart in issue #627. It was addressed by PR #633. This issue manifested because while using below Go1.5 yet pulling the latest from auxilliary dependencies e.g golang.org/x/net requires net/Context would give an error
go get -u github.com/odeke-em/drive/cmd/drive # golang.org/x/net/context/ctxhttp ../.bin/go/src/golang.org/x/net/context/ctxhttp/ctxhttp.go:35: req.Cancel undefined (type *http.Request has no field or method Cancel)
- Fixed up a data race with appending to a shared(highly contentious between multiple goroutines) internal change list tracker. This issue was reported by @sselph in issue #613. It was also addressed by @sselph in PR #639. The diagnosis of this issue was pretty interesting aside from using the race detector because @sselph noticed this problem only manifested that when the requested number of max goroutines running was 1, the problem disappeared, whereas if it were set above that, all hell broke loose. This observation led him to turn on the race detector and alas the problem was identified!
- Rename now also renames the local file/directory, not just the remote one. This feature was requested by @smblott-github in issue #459. It was fixed by PR #632. Sample usage:
- To turn off local renaming
$ drive rename --local=false a/b/c/d pam
- To turn off remote renaming
$ drive rename --remote=false bcd tkf
It should warn you too if you turn off both local and remote renaming
$ drive rename --local=false --remote=false 5 6 no rename mode set, set either `local` or `remote` mode $ echo $? 8
$ md5 drive_* MD5 (drive_armv5-cbd052777d5c4fbfb16500606b6f423b) = cbd052777d5c4fbfb16500606b6f423b MD5 (drive_armv6-a2f6f9d6c1e511766b898efa15ab69c6) = a2f6f9d6c1e511766b898efa15ab69c6 MD5 (drive_armv7-f21ff1ac5ca5f7c0aba980b2594e4a84) = f21ff1ac5ca5f7c0aba980b2594e4a84 MD5 (drive_darwin-48b0c8a426f4e470d9526dbefba78d0c) = 48b0c8a426f4e470d9526dbefba78d0c MD5 (drive_linux-6cf9c721576fcb777bfd70da766b3729) = 6cf9c721576fcb777bfd70da766b3729
This release has been at a better pace than the last 2 or 3. More features added, more lessons learned, more bugs fixed. Let's keep this train steam rolling. This release was actually made in anticaption of an upcoming feature that will provide end to end encryption for files, built by @sselph (peek at it here #645), using drive. I can't wait for this