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