nvbn / everpad

Evernote client well integrated with linux desktop
1.17k stars 143 forks source link

How do I remove alternative versions? #340

Open luisdavim opened 11 years ago

luisdavim commented 11 years ago

Is there a way to remove all the alternative versions of every note? Better yet, is there a way do disable the creation of alternative versions?

luisdavim commented 11 years ago

This is getting ridiculous, look at the space wasted by the alternative versions message:

everpad - centos 6 ldap client_013

I don't even know how this alternative versions got created...

Can I go to the sqlite db and run:

delete from notes where conflict_parent_id is not null;

Is it safe, will I loose any of my notes? will the current version of the note be kept?

luisdavim commented 11 years ago

I think a new alternative version is created on every sync...

luisdavim commented 11 years ago

Running the provider in verbose mode I got some errors:

Note Linux Bandwidth Throttling remote /usr/lib/python2.7/dist-packages/sqlalchemy/sql/expression.py:1927: SAWarning: The IN-predicate on "resources.id" was invoked with an empty sequence. This results in a contradiction, which nonetheless can be expensive to evaluate. Consider alternative strategies for improved performance. return self._in_impl(operators.in_op, operators.notin_op, other)

...

Note Wish list 2013 remote Sharing note Wish list 2013 failed EDAMUserException(errorCode=5, parameter='Note.guid')

...

Tag WIT local EDAMUserException(errorCode=10, parameter='Tag.name') Tag ONMC local EDAMUserException(errorCode=10, parameter='Tag.name') Tag rhel local EDAMUserException(errorCode=10, parameter='Tag.name') Tag wit local EDAMUserException(errorCode=10, parameter='Tag.name')

...

Note ONMC IPs local object of type 'NoneType' has no len()

luisdavim commented 11 years ago

Running the sync manualy a second time results in:

Traceback (most recent call last): File "/usr/lib/pymodules/python2.7/everpad/provider/sync.py", line 458, in run self.perform() File "/usr/lib/pymodules/python2.7/everpad/provider/sync.py", line 489, in perform if self._need_to_update(): File "/usr/lib/pymodules/python2.7/everpad/provider/sync.py", line 74, in _need_to_update update_count = self.note_store.getSyncState(self.auth_token).updateCount File "/usr/lib/pymodules/python2.7/evernote/edam/notestore/NoteStore.py", line 2440, in getSyncState return self.recv_getSyncState() File "/usr/lib/pymodules/python2.7/evernote/edam/notestore/NoteStore.py", line 2456, in recv_getSyncState raise x thrift.Thrift.TApplicationException: EDAM processing error: null

kendoori commented 11 years ago

I am having similar issues... I would simply not like to show the alternative versions. Very annoying.

weismannweb commented 11 years ago

I was able to remove the alternate versions by going to /home/username/.everpad

Opening up everpad.5.db in an SQL lite database browser (on ubuntu from software center) and manually deleting the extra note records.

If you have a lot of alternate notes then I would suggest running an sql query by finding out which note is the one you want to keep then deleting all notes of that name that does not have the id of the one you want to keep. Make sure to back up the database file first in case you make a mistake.

Example:

DELETE FROM notes WHERE title="title of note" and id !=5;

From the looks of the db design you can also delete all alternate versions across all notes with something like this:

DELETE FROM notes WHERE conflict_parent_id>0;

Hope that helps.

But still I don't know where it came from and ideally there should be a way in the user interface to delete the alternative ones or choose one to keep out of all of them. That being said I know how much time it takes to maintain an open source project so atleast we have evernote to begin with. It is a life saver.

kendoori commented 11 years ago

Thanks @weismannweb I was having a hard time figuring out how to pick out the alternate records, but your solution worked!

e2jk commented 10 years ago

Related to #330.

Bishopst commented 9 years ago

I have tried to apply both lines mentioned above but sqliteman is not detecting any alternate versions to this note I have that now has over 20 versions!

johnfervin commented 9 years ago

I have been able to delete the duplicates with sqlitebrowser.
Open Database ~/.everpad/everpad.5.db, Select Browse Data Tab Select Table: Notes _Not Notebook_ Click on the guid column header to sort on that column. Select any record that has nothing in the guid column. In my database, they are the ones with the highest id numbers. Select the first one, scroll to the last one to be deleted, "shift click" it, this should highlight all to be deleted. click on the "delete record" button click on the "write changes" button exit

Bishopst commented 9 years ago

Thanks, but I'm not sure how to proceed at some point. I selected the guid column but I can't see any record. Also, when I run everpad-provider in verbose mode there is no error that appears. But when I select this particular note from my list of notes in the actual program it tells me that it has over 20 alternate versions..