On Wed, 2011-08-24 at 15:10 +0300, Daniel Shahaf wrote:
> Julian Foad wrote on Wed, Aug 24, 2011 at 11:13:09 +0100:
> > > > C. Michael Pilato wrote:
> > > >> So back to what I would consider the primary deliverable of interest 
> > > >> here:
> > > >> avoiding one's own accidental commits.  I'm leaning toward [...]  A
> > > >> special changelist honored by our libsvn_client code which does what 
> > > >> we're
> > > >> talking about here, shows up in 'svn status' like the others do, 
> > > >> requires
> > > >> very little additional infrastructure, for which state changes are not
> > > >> versioned operations (such as they would be with the commits of the 
> > > >> addition
> > > >> and removal of an svn:hold property), etc.
> > 
> > I like the sound of this, too, as the local-only part of the solution.
> > See below for the centralized part of the solution.
> > 
> > The set of changelists to use is already passed into the libsvn_client
> > API from the client.  Pretty much all we need is a way to specify sets
> > of changelists more flexibly.  For the main functionality, the 'commit'
> > subcommand would specify "select everything except changelist
> > 'svn:ignore-on-commit'" unless overridden.  That would make the file be
> 
> Does this require negative changelists?  Currently changelists are
> 'select only members of this changelist', but you're proposing 'select except
> members of this changelist'.

Yes.  If that sounds like a non-trivial extension of the changelist
semantics, it's not.  Imagine we have an API to retrieve a list of all
the changelist names and a pseudo-changelist indicator to denote "files
that are not in any changelist".  Then we could simply map that request
into a select-multiple-changelists request.  So semantically it's not
new.  It does need an API change of one kind or another.

- Julian


Reply via email to