On Monday 03 September 2007 10:24, Klaas Freitag wrote:
Please read a DRAFT concept for this what we call branching of sources under http://en.opensuse.org/Build_Service/Concepts
The general concept looks fine to me. As a side note: I would focus on the
merging aspect, not on the branching aspect. If merging is too hard,
branching doesn't make much sense.
Some comments about the API:
- Wouldn't it be more consistent to use the namespace notation for the
branches, so call a branch "home:<person>:branches:branchProjectName" instead
of "home:<person>/_branchprojects/branchProjectName"?
- How is the tracked from which project the branch originates?
- Why not call the branch notifier "merge request"? That sounds more like what
is meant to be to me. For the XML I would then use something like:
<branchrequest>
<branch project="home:myname/branches/coolproject">
<state>new</state>
</branchrequest>
- What is the meaning of the "name" and "desc" elements in the merge request?
- Maybe it would be better to store the merge requests in an own hierarchy
instead of the source tree, so use "GET/
PUT /branch/<project>/<package>/_branchrequest" instead
of "/source/_branches". The requests aren't really source data, so it would
be a bit confusing to have them in the source tree.
- For listing the branch requests of a user it would probably be better to use
a parameter instead of a pseudo path element, so something
like "GET /branch/?user=<username>" instead
of "GET /source/home:<person>/_branchprojects".
- As accepting a merge request has effects like merging in patches on the
merged project it could be better to use a POST request with a command
instead of the "PUT /source/_branchnotifiers/project". It's clearer, if the
PUT is only used for writing a resource without side effects.
--
Cornelius Schumacher