diff --git a/CMakeLists.txt b/CMakeLists.txt index def7ca0..293a08b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8) # Grive version. remember to update it for every new release! -set( GRIVE_VERSION "0.3.0-pre" ) +set( GRIVE_VERSION "0.4.0-pre" ) # common compile options add_definitions( -DVERSION="${GRIVE_VERSION}" ) diff --git a/README b/README deleted file mode 100644 index 3fb68b4..0000000 --- a/README +++ /dev/null @@ -1,61 +0,0 @@ -Grive 0.3.0 -25 July 2012 - -http://www.lbreda.com/grive/ - -Grive can be considered still beta quality. It simply downloads all the files in your -Google Drive into the current directory. After you make some changes to the local files, run -grive again and it will upload your changes back to your Google Drive. New files created locally -or in Google Drive will be uploaded or downloaded respectively. Deleted files will also be "removed". -Currently Grive will NOT destroy any of your files: it will only move the files to a -directory named .trash or put them in the Google Drive trash. You can always recover them. - -There are a few things that Grive does not do at the moment: -- wait for changes in file system to occur and upload. A sync is only performed when you run Grive. -- symbolic links support -- support for Google documents - -Of course these will be added in the future, possibly the next release. - -You need the following libraries: - -- yajl -- libcurl -- libstdc++ -- libgcrypt -- Boost (Boost filesystem and program_option are required) - -There are also some optional dependencies: -- CppUnit (for unit tests) -- libbfd (for backtrace) - -Grive uses cmake to build, see the instructions in: - -http://www.lbreda.com/grive/installation - -...for detailed procedures to compile Grive. - -When Grive is run for the first time, you should use the "-a" argument to grant -permission to Grive to access to your Google Drive. A URL should be printed. -Go to the link. You will need to login to your Google account if you haven't -done so. After granting the permission to Grive, the browser will show you -an authenication code. Copy-and-paste that to the standard input of Grive. - -If everything works fine, Grive will create .grive and .grive_state files in your -current directory. It will also start downloading files from your Google Drive to -your current directory. - -Enjoy! - -Version History: - -Grive v0.3: Bug fix & minor feature release -Fixed bugs: - #93: missing reference count increment in one of the Json constructors - #82: retry for HTTP error 500 & 503 - #77: Fixed a bug where grive crashed on the first run. - -New features: - #87: support for revisions - #86: partial sync (contributed by justin at tierramedia.com) - \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..9736430 --- /dev/null +++ b/README.md @@ -0,0 +1,80 @@ +# Grive2 0.4.0 + +17 May 2015, Vitaliy Filippov + +http://yourcmc.ru/wiki/Grive2 + +This is the fork of original "Grive" (https://github.com/Grive/grive) Google Drive client +with the support for the new Drive REST API and partial sync. + +Grive can be considered still beta or pre-beta quality. It simply downloads all the files in your +Google Drive into the current directory. After you make some changes to the local files, run +grive again and it will upload your changes back to your Google Drive. New files created locally +or in Google Drive will be uploaded or downloaded respectively. Deleted files will also be "removed". +Currently Grive will NOT destroy any of your files: it will only move the files to a +directory named .trash or put them in the Google Drive trash. You can always recover them. + +There are a few things that Grive does not do at the moment: +- continously wait for changes in file system or in Google Drive to occur and upload. + A sync is only performed when you run Grive, and it calculates checksums for all files every time. +- symbolic links support. +- support for Google documents. + +These may be added in the future, possibly the next release. + +You need the following libraries: + +- yajl +- libcurl +- libstdc++ +- libgcrypt +- Boost (Boost filesystem and program_option are required) + +There are also some optional dependencies: +- CppUnit (for unit tests) +- libbfd (for backtrace) + +Grive uses cmake to build. Basic install sequence is + + mkdir build + cd build + cmake .. + make -j4 + sudo make install + +For the detailed instructions, see http://yourcmc.ru/wiki/Grive2#Installation + +When Grive is run for the first time, you should use the "-a" argument to grant +permission to Grive to access to your Google Drive. A URL should be printed. +Go to the link. You will need to login to your Google account if you haven't +done so. After granting the permission to Grive, the browser will show you +an authenication code. Copy-and-paste that to the standard input of Grive. + +If everything works fine, Grive will create .grive and .grive_state files in your +current directory. It will also start downloading files from your Google Drive to +your current directory. + +Enjoy! + +## Version History + +### Grive2 v0.4 + +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 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 +- Slightly reduce number of syscalls when reading local files. + +### Grive v0.3 + +Bug fix & minor feature release. Fixed bugs: +- #93: missing reference count increment in one of the Json constructors +- #82: retry for HTTP error 500 & 503 +- #77: Fixed a bug where grive crashed on the first run. + +New features: +- #87: support for revisions +- #86: ~~partial sync (contributed by justin at tierramedia.com)~~ that's not partial sync, + that's only support for specifying local path on command line diff --git a/libgrive/src/drive/CommonUri.hh b/libgrive/src/drive/CommonUri.hh index 98cc959..bbc3b0b 100644 --- a/libgrive/src/drive/CommonUri.hh +++ b/libgrive/src/drive/CommonUri.hh @@ -1,5 +1,5 @@ /* - grive: an GPL program to sync a local directory with Google Drive + Common URIs for the old "Document List" Google Docs API Copyright (C) 2012 Wan Wai Ho This program is free software; you can redistribute it and/or diff --git a/libgrive/src/drive/Entry1.cc b/libgrive/src/drive/Entry1.cc index a7a3dd9..9f75138 100644 --- a/libgrive/src/drive/Entry1.cc +++ b/libgrive/src/drive/Entry1.cc @@ -1,6 +1,6 @@ /* - grive: an GPL program to sync a local directory with Google Drive - Copyright (C) 2012 Wan Wai Ho + Item class implementation for the old "Document List" Google Docs API + Copyright (C) 2012 Wan Wai Ho, (C) 2015 Vitaliy Filippov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/libgrive/src/drive/Entry1.hh b/libgrive/src/drive/Entry1.hh index b606f8a..6fff374 100644 --- a/libgrive/src/drive/Entry1.hh +++ b/libgrive/src/drive/Entry1.hh @@ -1,6 +1,6 @@ /* - grive: an GPL program to sync a local directory with Google Drive - Copyright (C) 2012 Wan Wai Ho + Item class implementation for the old "Document List" Google Docs API + Copyright (C) 2012 Wan Wai Ho, (C) 2015 Vitaliy Filippov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/libgrive/src/drive/Feed1.cc b/libgrive/src/drive/Feed1.cc index 05093aa..addde4b 100644 --- a/libgrive/src/drive/Feed1.cc +++ b/libgrive/src/drive/Feed1.cc @@ -1,6 +1,6 @@ /* - grive: an GPL program to sync a local directory with Google Drive - Copyright (C) 2012 Wan Wai Ho + Item list ("Feed") implementation for the old "Document List" Google Docs API + Copyright (C) 2012 Wan Wai Ho, (C) 2015 Vitaliy Filippov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/libgrive/src/drive/Feed1.hh b/libgrive/src/drive/Feed1.hh index 8446693..40f88a8 100644 --- a/libgrive/src/drive/Feed1.hh +++ b/libgrive/src/drive/Feed1.hh @@ -1,6 +1,6 @@ /* - grive: an GPL program to sync a local directory with Google Drive - Copyright (C) 2012 Wan Wai Ho + Item list ("Feed") implementation for the old "Document List" Google Docs API + Copyright (C) 2012 Wan Wai Ho, (C) 2015 Vitaliy Filippov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/libgrive/src/drive/Syncer1.cc b/libgrive/src/drive/Syncer1.cc index d6d906d..0ca7e15 100644 --- a/libgrive/src/drive/Syncer1.cc +++ b/libgrive/src/drive/Syncer1.cc @@ -1,6 +1,6 @@ /* - grive: an GPL program to sync a local directory with Google Drive - Copyright (C) 2012 Wan Wai Ho + Syncer implementation for the old "Document List" Google Docs API + Copyright (C) 2012 Wan Wai Ho, (C) 2015 Vitaliy Filippov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/libgrive/src/drive/Syncer1.hh b/libgrive/src/drive/Syncer1.hh index 924908b..d11c48b 100644 --- a/libgrive/src/drive/Syncer1.hh +++ b/libgrive/src/drive/Syncer1.hh @@ -1,6 +1,6 @@ /* - grive: an GPL program to sync a local directory with Google Drive - Copyright (C) 2012 Wan Wai Ho + Syncer implementation for the old "Document List" Google Docs API + Copyright (C) 2012 Wan Wai Ho, (C) 2015 Vitaliy Filippov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/libgrive/src/drive2/CommonUri.hh b/libgrive/src/drive2/CommonUri.hh index 6c2cee4..9cef07b 100644 --- a/libgrive/src/drive2/CommonUri.hh +++ b/libgrive/src/drive2/CommonUri.hh @@ -1,6 +1,6 @@ /* - grive: an GPL program to sync a local directory with Google Drive - Copyright (C) 2012 Wan Wai Ho + Common URIs for REST API + Copyright (C) 2015 Vitaliy Filippov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/libgrive/src/drive2/Entry2.cc b/libgrive/src/drive2/Entry2.cc index f0dfc13..73f11a3 100644 --- a/libgrive/src/drive2/Entry2.cc +++ b/libgrive/src/drive2/Entry2.cc @@ -1,6 +1,6 @@ /* - grive: an GPL program to sync a local directory with Google Drive - Copyright (C) 2012 Wan Wai Ho + REST API item class implementation + Copyright (C) 2015 Vitaliy Filippov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/libgrive/src/drive2/Entry2.hh b/libgrive/src/drive2/Entry2.hh index 624df30..2c848d2 100644 --- a/libgrive/src/drive2/Entry2.hh +++ b/libgrive/src/drive2/Entry2.hh @@ -1,6 +1,6 @@ /* - grive: an GPL program to sync a local directory with Google Drive - Copyright (C) 2012 Wan Wai Ho + REST API item class implementation + Copyright (C) 2015 Vitaliy Filippov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/libgrive/src/drive2/Feed2.cc b/libgrive/src/drive2/Feed2.cc index bb5abc4..8a3244e 100644 --- a/libgrive/src/drive2/Feed2.cc +++ b/libgrive/src/drive2/Feed2.cc @@ -1,6 +1,6 @@ /* - grive: an GPL program to sync a local directory with Google Drive - Copyright (C) 2012 Wan Wai Ho + REST API item list ("Feed") implementation + Copyright (C) 2015 Vitaliy Filippov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/libgrive/src/drive2/Feed2.hh b/libgrive/src/drive2/Feed2.hh index 7948d20..4de411e 100644 --- a/libgrive/src/drive2/Feed2.hh +++ b/libgrive/src/drive2/Feed2.hh @@ -1,6 +1,6 @@ /* - grive: an GPL program to sync a local directory with Google Drive - Copyright (C) 2012 Wan Wai Ho + REST API item list ("Feed") implementation + Copyright (C) 2015 Vitaliy Filippov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/libgrive/src/drive2/Syncer2.cc b/libgrive/src/drive2/Syncer2.cc index f45ff7c..b08ad4c 100644 --- a/libgrive/src/drive2/Syncer2.cc +++ b/libgrive/src/drive2/Syncer2.cc @@ -1,6 +1,6 @@ /* - grive: an GPL program to sync a local directory with Google Drive - Copyright (C) 2012 Wan Wai Ho + REST API Syncer implementation + Copyright (C) 2015 Vitaliy Filippov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/libgrive/src/drive2/Syncer2.hh b/libgrive/src/drive2/Syncer2.hh index 52da64c..0ab6286 100644 --- a/libgrive/src/drive2/Syncer2.hh +++ b/libgrive/src/drive2/Syncer2.hh @@ -1,6 +1,6 @@ /* - grive: an GPL program to sync a local directory with Google Drive - Copyright (C) 2012 Wan Wai Ho + REST API Syncer implementation + Copyright (C) 2015 Vitaliy Filippov This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License