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

Re: Some comments on right-drag

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Fri, 27 Jun 2008 21:06:57 +0200

Garth Snyder wrote:
> 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".

I've changed the text in r13364.

> 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.

Also changed in r13364.

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

Hmm - I don't have an English OS here, but I think the capitalization as
it is right now should be ok.

> 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.

Since we'd have to actually fetch the status of every selected item
*before* the menu is shown and status fetching is an expensive
operation, that's something we just can't do.

> 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.

We can't just abort a status fetch after a certain amount of time. We
can't create separate threads in the shell context menu extensiion.

> 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.

Also in r13364, export is not shown anymore for 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".

The "SVN ..." is to clearly distinguish the commands so users can see
immediately that it's an SVN command they're using.

> 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?

Also in r13364, we now check for the repository uuid (if it's stored in
the working copy).

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

Are you using TSVN 1.5.0? That should already be that way.

> 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.

Yes, it's not quite easy :)


   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.net

Received on 2008-06-27 21:07:23 CEST

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