Изменения

Grive2

3462 байта добавлено, 15:49, 24 мая 2021
м
Нет описания правки
* Grive2 can do two-side synchronization between the Google Drive and local directory: it can download and upload changed files, create new directories, and move deleted files to trash.
* Dry run: you can see what actions Grive2 wants to perform with your files without really performing them (--dry-run option).
* You can select Sync a single subdirectory to sync with '-s subdir' option and you can exclude .* Ignore/select some files from sync with '--ignore <regexp>' optionvia . <regexp> has [http://perldocgriveignore.perl.org* Limit upload/perlredownload speed.html perl regexp syntax] and * There is matched against local path inside synced root directorya contributed inotify wrapper script for continuous sync.
== Limitations ==
You need to get the dependency libraries along with their development (-dev or -devel) packages:
* [http://lloyd.github.io/yajl/ yajl]2.x
* libcurl
* STL (libstdc++)
* libgcrypt
* Boost (filesystem, program_options and , regex, unit_test_framework and system)
* expat
* libbfd (for backtrace)
* binutils (for libiberty, required for compilation in OpenSUSE, Ubuntu, Arch and etc)
 
And tools:
* Git
* CMake
* C++ compiler (g++ or clang)
On a Debian/Ubuntu/Linux Mint machine just install the following packages:
<tt>sudo apt-get install git cmake build-essential libgcrypt11-dev libyajl-dev libboost-filesystem-dev libboost-program-options-dev libboost-regexall-dev libcurl4-openssl-dev libexpat1-dev libcppunit-dev binutils-devpkg-config zlib1g-dev</tt> FreeBSD: <tt>pkg install git cmake boost-libs yajl libgcrypt pkgconf cppunit libbfd</tt> === Build debian package === Source repository already contains debian packaging scripts. So, to build the debian package, install <tt>dpkg-dev</tt> and run <tt>dpkg-buildpackage -j4</tt>in the source directory. *.deb package will be generated in the parent directory.
=== Download sources ===
You can set up a cron job, if you want this done on a regular basis.
 
If you get a «crash» (bunch of error messages on the screen), create an issue on github: https://github.com/vitalif/grive2/issues/new. Attach program output from the console; also you can run <tt>grive -l log.txt</tt> and also submit 'log.txt'. As the file will contain a log of the sync operation, you may want to edit the file first to remove personally sensitive information.
=== Command line options ===
-v | --version | Display Grive version
-a | --auth | Request authorization token
-p arg | --path arg | Path Root directory to sync-s arg | --dir arg | Subdirectory Single subdirectory to sync(remembered for next runs)
-V | --verbose | Verbose mode. Enable more messages than normal.
| --log-xml http arg | Log more all HTTP responses as XML in this file for debugging.
| --new-rev | Create new revisions in server for updated files.
-d | --debug | Enable debug level messages. Implies -v.
-f | --force | Force grive to always download a file from Google Drive instead of uploading it.
| --dry-run | Only detect which files need to be uploaded/downloaded, without actually performing them.
| --ignore arg | Ignore Perl RegExp to ignore files (matched against relative paths of which match this Perl RegExp, remembered for next runs).
</tab>
 
== Reporting bugs ==
 
If you get some kind of «crash» (bunch of error messages on the screen), please run grive with the following options:
grive -l log.txt --log-http http
 
`log.txt` and `httpXXXX-XX-XX.XXXXXX.txt` files will be created. Please note these files may contain authentication tokens and file contents, so edit them before submitting.
 
Then create an issue on github: https://github.com/vitalif/grive2/issues/new and attach these files.
 
== TODO ==
 
* (Maybe) Implement «daemon mode» for continuous sync without running grive many times
== Version History ==
=== Grive2 v0.45.2 (unreleased) 1 ===
* Exclude Support for .griveignore* Automatic sync solution based on inotify-tools and systemd* no-remote-new and upload-only modes* Ignore regexp does not persist anymore (note that Grive will still track it to not accidentally delete remote files when changing ignore regexp)* Added options to limit upload and download speed* Faster upload of new and changed files. Now Grive uploads files without first calculating md5 checksum when file is created locally or when its size changes.* Added -P/--progress-bar option to print ASCII progress bar for each processed file (pull request by @svartkanin)* Added command-line options to specify your own client_id and client_secret* Now grive2 skips links, sockets, fifos and other unusual files* Various small build fixes === Grive2 v0.5 === * Much faster and more correct synchronisation using local modification time and checksum cache (similar to git index)* Automatic move/rename detection, -m option removed* force option works again* Instead of crashing on sync exceptions Grive will give a warning and attempt to sync failed files again during the next run.* Revision support works again. Grive 0.4.x always created new revisions for all files during sync, regardless of the absence of the --new-rev option.* Shared files now sync correctly === Grive2 v0.4.2 === * Option to exclude files by perl regexp* Reimplemented HTTP response logging for debug purposes* Use multipart uploads (update metadata and contents at the same time) for improved perfomance & stability* Bug fixes* Simple option to move/rename files and directories, via `grive -m oldpath newpath` (by Dylan Wulf, wulfd1@tcnj.edu) Known issues:* force option does not work as documented [https://github.com/vitalif/grive2/issues/51 #51]
=== Grive2 v0.4.1 ===
First fork release, by Vitaliy Filippov / vitalif at mail*ru
* Support for the new Google Drive REST API (old «Document List» API is shut down by Google 20 April 2015)
* REAL support for partial sync: syncs only one subdirectory with `grive -d s subdir`
* Major refactoring — a lot of dead code removed, JSON-C is not used anymore, API-specific code is split from non-API-specific
* Some stability fixes from Visa Putkinen https://github.com/visap/grive/commits/visa
Contributors:
* Dylan Wulf (wulfd1 *at* tcnj.edu)
* Visa Putkinen (visa.putkinen *at* reaktor.fi)
* justin (justin *at* tierramedia.com)
* Sunnywout (woutervdb97 *at* gmail.com)
* Massimo Gengarelli (gengarel *at* cs.unibo.it)
 
== License ==
 
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
 
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 
== Privacy Policy ==
 
Grive2 use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
 
Grive2 is a local application and its main purpose is to allow users to sync local directories with their Google Drive. This is why Grive2 requires APIs moved to the 'Restricted Scope' by Google in 2019.
 
Grive2 doesn't contain advertising features, never collects user data and never sends it to any network servers except Google's own servers (https://www.googleapis.com/). Because of that, Grive2 developers don't have access to the users' data too.