[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: A concern regarding the changelist feature

From: Ben Collins-Sussman <sussman_at_red-bean.com>
Date: 2007-09-30 14:18:42 CEST

On 9/27/07, C. Michael Pilato <cmpilato@collab.net> wrote:
> Michael Haggarty makes what I think is a valid complaint about the new
> 'changelist' feature in, oddly enough, a blog comment. You can read it here:
>
> http://blogs.open.collab.net/svn/2007/07/one-quality-of-.html#comment-84263984
>
> For your convenience, I'll reproduce comment here:
>
> Posted by: Michael Haggerty | September 27, 2007 at 08:13 AM
> > > $ svn cl foo plaza.jpg
> > > Path 'plaza.jpg' is now a member of changelist 'foo'.
> > > $ svn cl bar plaza.jpg
> > > Path 'plaza.jpg' is now a member of changelist 'bar'.
> > > $ ...
> >
> > Yikes, there is no error or warning if you move a file from one
> > changelist to another? This sounds like trouble. If I've modified a
> > file as part of changelist A, then (forgetting changelist A) add it
> > to changelist B, then commit changelist A, then my commit is
> > probably broken.

"Moving a file from one changelist to another" was one of our original
use-cases when designing the changelist UI. Nobody in the discussion
thought that this use-case was a mistake worthy of a warning/error,
but rather as something deliberate that a user might want to do. So,
in the final UI design, we kept things tight and overloaded 'svn cl
file changelist' as satisfying both "add a file to a changelist" and
"move a file to a new changelist" use-cases. Here's the UI, for those
who aren't aware:

1. add path(s) to a CL:

     svn cl CLNAME foo.c bar.c baz.c

2. remove path(s) from whatever CLs they each belong to.

     svn cl --remove foo.c bar.c baz.c

3. move path(s) from CL1 to CL2.

     svn cl CL2 foo.c

4. undefine a CL all at once (by removing all members)

     svn cl --remove --changelist CLNAME

5. rename a CL

     svn cl NEWNAME --changelist OLDNAME

Maybe an improvement to the UI would be to change the text to point
out that the file being moved *was* a member of a previous changelist:

  "Path 'foo' has moved from changelist 'bar' to changelist 'baz'."

??

> >
> > What would be really sweet would be a way to stash a selected
> > changelist away somewhere (e.g., as a patch) and unapply the
> > corresponding changes from the working copy.

?

$ svn diff --changelist foo > foo.patch
$ svn revert --changelist foo

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sun Sep 30 14:18:54 2007

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.