Org-mode. Once you get hooked and comfortable there is hardly going back.
Org-mode support todo lists, agendas, scheduling, recording time per task, latex export, references (with org-tef) and executing code in the document (with babel) and more.
To give you an idea of what the workflow is while I am working on my PhD thesis. I write text with references in sections with todo tags, add my python code, execute it and export to latex. Now I can track how much work I did today in what section and I can also see other files in a common agenda. All of this is in plain text files so git work as well and if you decide to migrate a python script can parse it.
All of this in a free and open source solution if you are happy to work with Emacs. In my opinion it is worth it even if you keep a running Emacs version only for this.
Org-mode files are tree-structured, so anything you can structure as a tree should work well with org-mode. The navigation controls work nicely: expanding/collapsing, reordering, searching within subtrees.
Perhaps you know this, but other curious readers may not: it's worth noting (perhaps in an org-file) that properties such as tags, priorities and timestamps allow you to catalogue and access information without using the tree structure, so it can work for non-tree like structures too.
To any interested readers, I'd watch Carsten Dominik's (the original Org-Mode auhtor) Google Tech Talk on the topic. It's good to see it explained from the creator's perspective, imo.
Org-mode support todo lists, agendas, scheduling, recording time per task, latex export, references (with org-tef) and executing code in the document (with babel) and more.
To give you an idea of what the workflow is while I am working on my PhD thesis. I write text with references in sections with todo tags, add my python code, execute it and export to latex. Now I can track how much work I did today in what section and I can also see other files in a common agenda. All of this is in plain text files so git work as well and if you decide to migrate a python script can parse it.
All of this in a free and open source solution if you are happy to work with Emacs. In my opinion it is worth it even if you keep a running Emacs version only for this.