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

Some comments on right-drag

From: Garth Snyder <garth_at_grsweb.us>
Date: Thu, 26 Jun 2008 14:04:15 -0700

I hope this isn't a violation of protocol, but I'm including below a copy of
a comment <http://tortoisesvn.net/most-forgotten-feature#comment-775> I
posted to Steve King's blog in the
<http://tortoisesvn.net/most-forgotten-feature> "most forgotten feature"
thread that was recently mentioned here. I wouldn't cross-post, but the
thread itself is a year old and I ended up talking more about the details of
the current right-drag system than the basic question of whether
right-dragging is the best UI for moves and copies.


These are nitpicks, but I think a grooming pass could help to improve users'
understanding of the right-drag options.




<some initial comments removed>


I do have a few quibbles regarding the existing right-drag system, mostly
regarding terminology:


1) As one of the other commenters mentioned, the difference between "SVN
Export to here" and "SVN Export all to here" was never clear to me. Now that
I understand the distinction, the wording seems not only unclear but also a
bit inconsistent with the items "SVN Move versioned files here" and "SVN
Copy versioned files here". The latter names seem to assume that operating
on all files would be the default and that versioned-files-only operations
should be specially denoted. According to this line of thought, the export
items should more properly be named "SVN Export Versioned Files Here" and
"SVN Export All Files Here".


2) The standard Windows right-drag commands say "Here" rather than "to
Here". TSVN commands should follow this lead. Currently "SVN Copy..." and
"SVN Move..." do but "SVN Export..." do not.


3) Menu items should be capitalized according to the standard conventions.
So it should be "SVN Move and Rename Versioned Files Here", etc.


4) In the majority of cases, there will actually be no difference between
export and export-all operations because no unversioned files are selected.
In these cases, there should be a single "SVN Export Here" menu item rather
than two options that give identical results.


I foresee two major objections to this. First, that it's potentially
confusing to sometimes get "SVN Export Here" and other times get "SVN Export
Versioned Files Here" plus "SVN Export All Files Here", for reasons that are
not immediately apparent. I agree. However, on balance I think it's better
to give the most meaningful choices even if they are somewhat


The second objection is that it's not always possible to determine at
interactive speed whether the selection contains unversioned files, because
WCs can be deep and presumably they need to be scanned to make this
determination. But I think a best-effort attempt would be sufficient and
would cover 95% of cases. Allow 50 milliseconds or whatever for scanning,
and if you run out of time, just include both export-all and
export-versioned options. Of course, you can stop scanning as soon as you
hit the first unversioned file.


5) Along the same lines as #4, "SVN Export" is actually meaningless for flat
files. Right-drag a flat file out of a WC and you get not two but three
options that all do exactly the same thing: "SVN Export to here", "SVN
Export all to here", and "Copy Here". The standard Windows "Copy Here" would
suffice in this situation. It would also avoids weirdnesses such as the fact
that selecting both versioned and unversioned files and doing "SVN Export to
here" (i.e. not export-all) actually does copy the unversioned files.


6) On the import side, "SVN Copy and add files to this WC" is misleading
since the operation is NOT "SVN Copy" but in fact just "Copy". I'm also not
sure how many people will identify WC with "working copy". A better name for
this operation might be "Copy Here and SVN Add".


7) TSVN does not seem to detect cross-repository right-drag attempts until
after the operation has been chosen. This leads to right-drag menu items
that make no sense, some of which just lead to error messages. Is it not a
constant-time operation to check the destination repository in advance while
building the context menu?


8) Even under the current naming, "SVN Copy versioned file here" should be
"SVN Copy versioned file_s_ here" for consistency.


I was going to outline an algorithm for building a perfectly
context-appropriate right-drag menu just for fun, but it quickly became
apparent how complicated the problem really is. Despite its minor flaws, I'm
impressed by how well the current system works.
Received on 2008-06-26 23:04:50 CEST

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