File groups

Jan Hudec bulb at ucw.cz
Thu Jan 26 12:45:05 GMT 2006


On Thu, Jan 26, 2006 at 09:53:20 +0100, Vincent LADEUIL wrote:
> >>>>> "Martin" == Martin Pool <mbp at sourcefrog.net> writes:
> 
>     Martin> On 24 Jan 2006, Aaron Bentley
>     Martin> <aaron.bentley at utoronto.ca> wrote:
>     >> The other idea from PyGTA was file groups.  The idea that
>     >> for some projects, a group of files may be a semantic
>     >> unit.  (foo.c, foo.h being an example) The idea was that
>     >> commits (and possibly other operations) must always be
>     >> applied to both files, not one.  We didn't discuss what to
>     >> do if the user tried to commit only one, but the two
>     >> obvious options are: 1. commit both 2. error out
> 
> 
> >>>>> "John" == John Arbash Meinel <john at arbash-meinel.com> writes:
> 
>     John> An interesting idea. But I wonder...  Wouldn't you
>     John> really just want full dependency tracking. Because some
>     John> other file *uses* the functionality provided by that .h
>     John> file. So they should be updated as well.
> 
>     John> Ultimately I think this would be very complicated to
>     John> get a nice interface to, but it might be worth keeping
>     John> in the back of our heads.
> 
> That should not be part of bzr IMHO.

I agree. Besides I don't really see any benefit to this.

>     John> Using scons on a new project and integrating it with
>     John> the bzr TestSuite stuff can be really cool. So it only
>     John> runs the tests if the files involved are modified, or
>     John> if the tests themselves change. It's really large
>     John> grained right now, where each library has its own
>     John> tests.
> 
>     John> Along with my version-info plugin, I have scons rebuild
>     John> the verison files when the tree changes, which rebuilds
>     John> the objects and the libraries.
> 
>     John> Anyway, I digressed because scons has good dependency
>     John> tracking.
> 
> I  don't think you  digress, the  purpose of  the File  groups as
> presented is a dependency issue.
> 
> I think that bzr do  not have to track dependencies. It's obvious
> to me that change sets  will generally modify a dependency-related
> set  of  files,  but  there  exist  a  lot  of  cases  where  the
> modifications span several such groups or modify the dependencies
> themselves. 
> 
> Issuing  an   error  when  such  changes  occurs   is  clearly  a
> show-stopper.
> 
> Committing  all members  of the  group when  only one  change will
> generate a lot of empty commits.

Commits are tree-wide, so it won't actually matter. But I don't think
it's actually useful.

>     Martin>  That's an  interesting  idea.  Another  way to  keep
>     Martin> things in track is for a pre-commit hook to write out
>     Martin>  the  in-memory tree  that  will  be  committed to  a
>     Martin> temporary  directory and  run a check  in there  - so
>     Martin> that should trap  committing source without a header,
>     Martin> etc.

This however could be really useful.

> I can't  even agree  on pre-commit if  they risk to  forbid valid
> modifications violating the dependency rules.

They don't. They forbid commit on which tests - defined by the project
itself - fail. Besides they run on the local machine anyway, so it's
easy to turn them off.

> I think other tools should be used with their own set of datas to
> handle the dependencies. Of course those data should be committed
> too, but it's another problem.
> 
> And don't  get me wrong, I'm  a strong supporter  of well managed
> dependencies, but it's outside the scope of bzr IMHO.
> 
> The  basics of  SCM is:  who did  what when.  That does  not (and
> should not) enforce any definition of "what". If I want to commit
> garbage, I should be able to do so as long as anybody can see the
> garbage and decide what to do with it.
> 
> Now, it may  possible to imagine policies implemented  via pre or
> post  commit  hooks but  I  fear  that  they  will  not  authorize
> sufficient freedom.

The users should be allowed to do anything they want. And should be
allowed to deny themselves to do some things. The way to define those
things is beyond scope of bzr - bzr just provides the hooks to put it
in.

Due to distributed nature of bzr they won't be able to enforce it on
anyone else anyway.

-- 
						 Jan 'Bulb' Hudec <bulb at ucw.cz>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060126/63629d57/attachment.pgp 


More information about the bazaar mailing list