A page view that would show the most recent author and revision for each line in the page
It would be nice to see in one glance who contributed what, and even when, on a page. Sometimes this feature is called annotation or blame. An example is an annotation view from a CVS repository with ViewCVS http://cvs.sourceforge.net/viewcvs.py/viewcvs/viewcvs/lib/viewcvs.py?annotate=1.380). ViewCVS is written in Python, so might be possible to grab some of that code.
Answer the question, "Who did what to the page?".
I think it would be useful to many.
This is being worked on by ChadSkeeters
This works with 1.5: http://pastebin.com/m207af464
This works with 1.7 branch (2890:3db0e82be499) : http://pastebin.com/m3784150f
Thanks, I will look later on into that code more detailed, currently I am on a campaign outside and dont have much free time (and poor internet). Did you have done for 1.7 some unit test programs too? -- ReimarBauer 2007-10-17 09:34:40 I haven't done any tests yet. I was looking to get some feedback on my approach first. I know, not exactly test driven development... -- ChadSkeeters 2007-10-20
The patches are no longer available from pastebin. Who has still the code and can attach it here? -- DavidLinke 2008-02-15 08:43:29
Some comments
nice functionality, I need that! (me too -- ReimarBauer 2007-10-26 18:19:50)
- this stuff shouldn't live in a pastebin, where it gets killed in a month, but in the moinmoin wiki - move it there
- we need hg (mercurial) changeset(s) (start with hg export for easy readability, later we can use binary to include the icon)
- i18n is missing at some places
- use the formatter
- the action should be in a external file, like diff
- while 'blame' is maybe funnier for some cases, it also has some negative touch
- for some more serious cases. so I would prefer 'annotate' (I guess that is also easier to translate)
- the special error handling looks a bit strange
- it should not be in the actions menu under raw, but rather above Check Spelling
- don't use text += ... to assemble longer strings in a loop, rather use a list and e.g. '\n'.join(l)
- for multiline strings, containing ", use text = """
- some lines have trailing ;
- try to use names that comply to PEP8 (I know this is not the case for all existing moin code,
- but we try to do it for new code)
- did you run py.test on your stuff, esp. the test_sourcecode?
(Posted by tw on Wed 17 Oct 04:46 to pastebin)