If you have hg (Mercurial) installed on your system then every time you do something in etm that changes a file --- finish a task, create an action or whatever --- then that change is automatically committed using hg. This means that you can recover any data file(s) as of any change you like. Say the relative path in your data directory of the problem file is "shared/sample_datafile.txt". Then cd to your data directory and run
$ hg log shared/sample_datafile.txt | less
to see the list of the changes to this file and the times they made. If you think the version you would like to recover is sometime between, say, change number 101 and 106 then you can run
$ hg log shared/sample_datafile.txt -v -p -r 101:106 | less
to see the diffs for the actual changes made by each of these commits. Here is an example of the output
103 ce5d7a1e2486 2013-02-08 13:01 -0500 Daniel Graham
replaced lines
diff -r f70f45768dd0 -r ce5d7a1e2486 shared/sample_datafile.txt
--- a/shared/sample_datafile.txt Fri Feb 08 12:53:21 2013 -0500
+++ b/shared/sample_datafile.txt Fri Feb 08 13:01:36 2013 -0500
@@ -22,9 +22,8 @@
- join the etm discussion group @c computer @t tasks, sample @g
http://groups.google.com/group/eventandtaskmanager/topics
- Overdue skip task @s 2013-01-01 @r w &w TH @o s @d This task is
due every Thursday but past due instances will be skipped.
-- Overdue restart task @s 2013-02-01 12am @z US/Eastern @d This
task was due 7 days ago and repeats every 10 days. If finished
today, it will be due again 10 days from today. @f
20130208T1253;20130208T0900 @t occasions, sample
- @r d &i 10 @o r
-- Overdue keep task @s 2013-02-01 12am @z US/Eastern @d This task
was due 7 days ago and repeats every 10 days. If finished today, it
will be due again 3 days from today. @f 20130208T1253;20130208T0900
@t occasions, sample
+- Overdue restart task @s -7 @r d &i 10 @o r @d This task was due 7
days ago and repeats every 10 days. If finished today, it will be
due again 10 days from today.
+- Overdue keep task @s 2013-02-01 12am @z US/Eastern @d This task
was due 7 days ago and repeats every 10 days. If finished today, it
will be due again 3 days from today. @f 20130208T1301;20130201T0000
@t occasions, sample
@r d &i 10
* Monday event @s 1 9a @e 1h @r w &w MO @t events, sample
* Tuesday event @s 1 10a @e 90m @r w &w TU @t events, sample
This output can also be seen within etm by selecting any item from the file and then, in the details view, pressing Ctrl-H to show the history of changes to the file.
Suppose you would like to restore the file as of 102 (before 103). Then, just to be safe, make a backup of the current file
$ cp shared/sample_datafile.txt shared/sample_datafile.txt.backup
and then restore the file as it existed as of change number 102:
$ hg revert shared/sample_datafile.txt -r 102
Alternatively, You could redirect the exact contents of the file as of change 102 to a temporary file
$ hg cat shared/sample_datafile.txt -r 102 > shared/sample_datafile_102.tmp
then open both the current file and the temporary file in an editor and copy and paste whatever you like from the temporary to the current.
These options are possible, of course, only if you have Mercurial installed on your system and then only for changes made within etm and thus automatically committed. If the problem was created outside of etm, then you can still restore the file as of the last change made within etm before the problem occurred.