subsurface/subsurface-core
Linus Torvalds 2d760a7bff Don't write back dive data that hasn't changed in git
This caches the git ID for the dive on load, and avoids building the
dive directory and hashing it on save as long as nothing has invalidated
the git ID cache.

That should make it much faster to write back data to the git
repository, since the dive tree structure and the divecomputer blobs in
particular are the bulk of it (due to all the sample data).  It's not
actually the git operations that are all that expensive, it's literally
generating the big blob with all the snprintf() calls for the data.

The git save used to be a fairly expensive with large data sets,
especially noticeable on mobile with much weaker CPU's.  This should
speed things up by at least a factor of two.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-04 17:27:10 -07:00
..
subsurface-qt Silence warnings in SettingsObjectWrapper.cpp 2016-03-07 16:45:16 -08:00
android.cpp Android: go back to using Qt's DataLocation 2015-11-07 10:52:19 -08:00
checkcloudconnection.cpp Instrument the git storage code 2016-04-04 14:18:11 -07:00
checkcloudconnection.h
cloudstorage.cpp Silence warning about unused parameter 2016-03-07 11:00:27 -08:00
cloudstorage.h Fix usage of QString 2016-01-26 09:51:14 -08:00
CMakeLists.txt gas model: split up gas compressibility into a file of its own 2016-03-02 18:08:18 -08:00
cochran.c Silence warnings in cochran.c 2016-03-09 21:46:29 -08:00
cochran.h
color.cpp
color.h
compressibility.r gas model: add proper He compressibility data and do a least-squares fit 2016-03-13 12:43:30 -07:00
configuredivecomputer.cpp
configuredivecomputer.h
configuredivecomputerthreads.cpp Create a constructor with default parameters for some structs 2016-03-07 11:13:11 -08:00
configuredivecomputerthreads.h Remove unused headers 2016-01-22 06:50:06 -08:00
datatrak.c Silence warnings in datatrack.c 2016-03-09 11:44:20 -08:00
datatrak.h
deco.c Don't try to force depth to be unsigned 2016-03-23 09:53:44 -07:00
deco.h Don't try to force depth to be unsigned 2016-03-23 09:53:44 -07:00
device.c Add option to allocate the samples in fake_dc() 2016-02-20 09:36:14 -08:00
device.h Add option to allocate the samples in fake_dc() 2016-02-20 09:36:14 -08:00
devicedetails.cpp Create a constructor with default parameters for some structs 2016-03-07 11:13:11 -08:00
devicedetails.h Create a constructor with default parameters for some structs 2016-03-07 11:13:11 -08:00
display.h
dive.c Don't write back dive data that hasn't changed in git 2016-04-04 17:27:10 -07:00
dive.h Don't write back dive data that hasn't changed in git 2016-04-04 17:27:10 -07:00
divecomputer.cpp
divecomputer.h
divelist.c Be smarter about dive renumbering when merging dives 2016-03-30 20:16:19 -05:00
divelist.h
divelogexportlogic.cpp
divelogexportlogic.h
divesite.c
divesite.cpp
divesite.h
divesitehelpers.cpp
divesitehelpers.h
equipment.c Silence warnings in equipment.c 2016-03-09 11:44:24 -08:00
exif.cpp
exif.h
file.c If the cache was valid, we don't want to reload just because of changes 2016-03-29 20:46:12 -05:00
file.h Fix annoyances on file.c 2016-03-07 11:24:10 -08:00
gas-model.c gas model: update to new coefficients, and simplify expressions 2016-03-13 12:43:35 -07:00
gaspressures.c Silence warnings in gaspressures.c 2016-03-09 11:44:28 -08:00
gaspressures.h Revert "Clean up signedness confusion in gaspressures.h" 2016-03-10 07:40:15 -08:00
gettext.h
gettextfromc.cpp
gettextfromc.h
git-access.c Use the same format for output to stderr and AppLog 2016-04-04 14:19:13 -07:00
git-access.h Instrument the git storage code 2016-04-04 14:18:11 -07:00
gpslocation.cpp QML UI: add the position source reported to the log 2016-03-24 17:48:20 -07:00
gpslocation.h Random whitespace cleanup 2016-01-11 06:14:45 -08:00
helpers.h Don't use "get_volume_string()" for cylinder size string 2016-02-25 00:58:09 +01:00
imagedownloader.cpp Fix loading images from URLs 2016-03-16 07:46:28 -07:00
imagedownloader.h Fix loading images from URLs 2016-03-16 07:46:28 -07:00
isocialnetworkintegration.cpp Clean up more unused variables 2016-03-07 11:21:44 -08:00
isocialnetworkintegration.h Remove the PluginSystem 2015-11-09 18:00:56 -08:00
libdivecomputer.c Clean up signedness confusion in libdivecomputer.c 2016-03-09 21:47:07 -08:00
libdivecomputer.h Clean up handling of various include file 2016-03-06 11:03:00 -08:00
linux.c Prevent unintentionally running as root 2016-03-26 20:08:08 -07:00
liquivision.c Silence warnings in liquivision.c 2016-03-07 16:34:17 -08:00
load-git.c Don't write back dive data that hasn't changed in git 2016-04-04 17:27:10 -07:00
macos.c Prevent unintentionally running as root 2016-03-26 20:08:08 -07:00
membuffer.c Silence warnings in membuffer.c 2016-03-09 11:44:41 -08:00
membuffer.h
metrics.cpp QML UI: take device pixel ratio into account when scaling pixmaps on iOS 2016-03-28 17:05:29 -05:00
metrics.h QML UI: take device pixel ratio into account when scaling pixmaps on iOS 2016-03-28 17:05:29 -05:00
ostctools.c simple spelling changes 2015-11-15 12:10:37 -08:00
parse-xml.c Prevent unintentionally running as root 2016-03-26 20:08:08 -07:00
planner.c Don't try to force depth to be unsigned 2016-03-23 09:53:44 -07:00
planner.h
pluginmanager.cpp Make it possible to connect to facebook again 2015-11-08 09:44:40 -08:00
pluginmanager.h Remove empty implementations 2015-11-09 18:00:56 -08:00
pref.h Language Settings Wrapper 2016-01-24 21:26:45 -08:00
prefs-macros.h
profile.c Another attempt to clean up signed / unsigned in profile.c 2016-03-23 10:04:30 -07:00
profile.h Revert "Clean up signedness confusion in profile.c" 2016-03-10 07:37:18 -08:00
qt-gui.h qt-gui.h shouldn't include QApplication 2016-03-06 11:03:00 -08:00
qt-init.cpp
qthelper.cpp QML UI: keep cloud sync enabled state in settings 2016-04-04 14:18:51 -07:00
qthelper.h Remove unused variable 2016-03-07 11:17:16 -08:00
qthelperfromc.h Remove the non-canonical Subusrface version 2015-12-20 07:59:50 -08:00
qtserialbluetooth.cpp Silence warnings in qtserialbluetooth.cpp 2016-03-09 21:47:41 -08:00
save-git.c Don't write back dive data that hasn't changed in git 2016-04-04 17:27:10 -07:00
save-html.c Silence warnings in save-html.c 2016-03-09 11:44:51 -08:00
save-html.h Support for imperial depth on worldmap export 2016-01-10 14:13:58 -08:00
save-xml.c Silence warnings in save-xml.c 2016-03-09 11:44:54 -08:00
serial_ftdi.c ftdi: fix memory leak on error 2015-12-27 21:31:13 -08:00
sha1.c
sha1.h
statistics.c Clean up signedness confusion in statistics.c 2016-03-09 21:47:22 -08:00
statistics.h Clean up signedness confusion in statistics.c 2016-03-09 21:47:22 -08:00
strndup.h
strtod.c
subsurfacestartup.c Prevent unintentionally running as root 2016-03-26 20:08:08 -07:00
subsurfacestartup.h
subsurfacesysinfo.cpp
subsurfacesysinfo.h
taxonomy.c
taxonomy.h
time.c Clean up signedness confusion in time.c 2016-03-09 21:47:28 -08:00
uemis-downloader.c Clean up UEMIS downloader 2016-03-09 21:47:36 -08:00
uemis.c Clean up UEMIS downloader 2016-03-09 21:47:36 -08:00
uemis.h Clean up UEMIS downloader 2016-03-09 21:47:36 -08:00
units.h Clean up signedness confusion in dive.c 2016-03-09 21:46:58 -08:00
version.c Introduce separate version number for Subsurface-mobile 2016-03-05 17:00:14 -08:00
version.h Introduce separate version number for Subsurface-mobile 2016-03-05 17:00:14 -08:00
webservice.h
windows.c Prevent unintentionally running as root 2016-03-26 20:08:08 -07:00
windowtitleupdate.cpp Don't crash if we have no WindowTitleUpdater registered 2015-11-07 09:53:17 -08:00
windowtitleupdate.h
worldmap-options.h
worldmap-save.c Silence warnings in worldmap-save.c 2016-03-09 11:44:57 -08:00
worldmap-save.h