scmproj: testing project: bzr.exe.project as bzr.exe building workspace

Ian Clatworthy ian.clatworthy at internode.on.net
Sat Jan 3 21:30:47 GMT 2009


Alexander Belchenko wrote:
> Mark Hammond пишет:

>> * At first glance, the .cfg files aren't particularly readable, so its
>> not immediately obvious what everything means.  I understand it has
>> complex requirements and that it will likely make more sense with
>> experience, but it's still an impression I thought worth sharing :)
> 
> Yep. There is too much planned supported features, so it can be complex.
>>From other side there is only 3 mandatory options for every component:
> 
> RELPATH
> BRANCH_URL
> BRANCHES
> 
> Do yo think they're not obvious? At least first two?

Alex,

I'm still working my way through the various emails & documents so
apologies if I'm missing things in my feedback below.

1. I think you should look to make everything in the config file you can
   optional. Could BRANCHES be optional so only RELPATH & BRANCH_URL are
   needed? Could the [VIEWS/SUBSETS] section be optional?

2. User doc wise, I'd start with a brief description of the mental model,
   particularly the essential bit: project = list of components. I'd then
   make the 1st example as *simple* as it possibly can be - see 1. I'd also
   treat subsets, ALTs and the other clever stuff as "Advanced features".
   I know they're essential to how your team is using the plugin but my
   expectation is that 95% of users (only) care about composing projects
   from multiple branches, occasionally working with a bunch of branches as
   a batch and nothing else. (I'm happy to help with the user doc along
   these lines if you'd like.)

3. UI-wise, I'd replace project-command with just "project" and consider
   making {RELPATH} implicit if the argument has no {} markers. The idea
   is that as many commands as possible ought to look something like ...

     bzr project st
     bzr project diff
     bzr project pull
     bzr project commit -m "Fix bug #1"

4. I'd like to see a 'build-project' command that creates a .scmproj dir
   by searching sub-directories for bazaar branches. That way, users
   could reconfigure their currently manual setup of a "project" into
   your model.

5. I must say I'm not sold on *always* storing the branches
   under .scmproj and only having lightweight checkouts in the "tree",
   but I think many users will care less about the internal layout if
   a command like build-project exists. If it's possible to have an
   .scmproj dir one day that just has a project.cfg in it, then that
   setup could be an option to build-project, say.

I'll keep getting my head around how everything hangs together. In the
meantime, I hope the above is helpful feedback.

Ian C.



More information about the bazaar mailing list