Immediately save the note when changing

Earlier we would wait till we got the 'mutex' to make a change, however
with the way libgit2 works, during a git push/pull other git operations
such as add/rm/commit block.

So performing a save, while the push/pull is occuring - might have
resulted in a note being lost

Related to #124
This commit is contained in:
Vishesh Handa
2020-06-10 13:03:28 +02:00
parent 5af4edda18
commit 51ececd150
2 changed files with 7 additions and 4 deletions

View File

@ -36,7 +36,6 @@ class GitNoteRepository {
}
Future<NoteRepoResult> _addNote(Note note, String commitMessage) async {
await note.save();
await _gitRepo.add(".");
await _gitRepo.commit(
message: commitMessage,

View File

@ -259,11 +259,13 @@ class StateContainer with ChangeNotifier {
void addNote(Note note) async {
logEvent(Event.NoteAdded);
note.parent.add(note);
note.updateModified();
await note.save();
return _opLock.synchronized(() async {
Log.d("Got addNote lock");
note.parent.add(note);
note.updateModified();
_gitRepo.addNote(note).then((NoteRepoResult _) {
_syncNotes();
appState.numChanges += 1;
@ -311,10 +313,12 @@ class StateContainer with ChangeNotifier {
void updateNote(Note note) async {
logEvent(Event.NoteUpdated);
note.updateModified();
await note.save();
return _opLock.synchronized(() async {
Log.d("Got updateNote lock");
note.updateModified();
_gitRepo.updateNote(note).then((NoteRepoResult _) {
_syncNotes();
appState.numChanges += 1;