I plan to mass convert all devel packages to branches if they are fall into one of the following categories: - they are a source link now - they contain the same sources as factory
This will happen at the end of the week unless someone convinces me this a bad idea, so I would like to stress why I plan to do so:
packages that have no relation to factory sources very easily divert as factory follows different white space indentation rules and it's near to impossible to check if a package has pending changes in the devel project or "just" whitespace differences.
Source links break easily if you continue working in the devel project after the submit request - as such many projects prefer not to use source links. But branches do not have this problem, they even leave your white space alone - with branches the source server only touches the _link file and nothing else, so nothing can break your sources.
That does not mean, there can't be conflicts in case someone pushes something to O:F that conflicts with your changes (which shouldn't happen in devel projects by policy).
Converting the devel projects may break some scripts though as I'm pretty sure some rely on the existance of project.diff to see if there is a difference so my mail to talk about it.
So what is a branch? It's a _link without diffs, the _link contains the revision of factory and additionally you have the full sources in the devel project. This means you can't easily find out from your osc checkout if the project made changes. Of course we can extend osc to store the md5 of the link target too, so you can adapt your scripts - but for now there is no such possibility from what I can see.
Is that problem enough to outweight the advantages?