1. maven-scm-test
This module was essential for me. It made me realise that I had misinterpret
50% of the api :)
Ofcourse I could argue that the javadoc of the api itself was insufficient,
but that does not take away
the glory of the test module. I would really like to see the test module
more extensive in the future.

A couple of issues with the diff test:
a) I found it confusing that all files with a diff should be flagged as
modified
even if they where added or deleted.
b) The test has an assert on the range tag '@@' that may be a bit too
strict. Either can the the range field
of the tag can be implisit, or bazaar has wrong diff output. Eg. @@ -0,0
+1,1 @@ is equal to @@ -0,0 +1 @@ if
the file is added and has only one line.

What about making a common diff output parser that could be used by all diff
consumers?

2. maven-scm-api
I found it very hard to simplify the usage of command results.
Most result classes are equal, only the name differ. I could have removed
some 13 lines of code and
2 cyclomatic complexity in all commands if we could unify the ScmResult API.
eg. by adding a copy
constructor the the ScmResult class and a (ScmResult, Files) constructor in
most of the other
CommandScmResult classes. What about a result factory? That would also unify
the result _behavior_.

4. Code redundancy
I think more effort should be put in to centralize code, and to move
responibility from each provider
to a common manager. Such things are difficult to do upfront, but now we
have 7 providers and
we can see what kind of freedom the provider needs and what could be
centralized.

All in all, I had a great time implementing the Bazaar provider
and I think you have done a great job.

Regards
Torbjørn

Reply via email to