Simply put, because Versions doesn't care whether or not a file is selected if 
a parent directory is selected. (sigh) Because it's often a lot more work than 
removing a single resource, and as I've stated, with hierarchical selection, it 
can be non-trivial to select "everything but". No offense to anyone, but the 
replies to this thread are starting to sound increasingly dogmatic. I'm not a 
noob, I've been using Versions since the beta and Subversion for several years. 
I build SVN from source at work, and I deal with scenarios like I'm describing 
quite regularly. If it were as trivial as everyone makes it sound, I wouldn't 
write such lengthy responses.

If I had time, I'd record a screencast to describe what I'm talking about, but 
I don't. Here's a simple scenario: in a working copy with at least one parent 
directory and one modified file, select all, then command-click the modified 
file. It shows up in the commit window, doesn't it? If you have 10 changed 
files, but only want to commit 8, try selecting all, then command-clicking the 
2 to exclude and committing. You get all 10 files. The only way to do it 
currently is select at individual files — you can shift-click to select the 10, 
then command-click the 2. At this point, it's only a very mild annoyance.

Now expand the example. Consider 10 sub-projects, each with Java source 
hierarchies where the directory structure (representing Java packages) usually 
extends ~10 levels deep from the working copy root. (Now consider that I've 
just done some major refactoring that touches files in multiple projects, but 
not all of them. For the sake of exaggerated example, let's say that there is a 
modified file at every level of every hierarchy, and the only ones we want to 
exclude is the single deepest file in each project hierarchy. To build up such 
a commit set, one has to command-click each file to commit individually, OR 
select all and deselect every parent directory and the files to exclude. Either 
way, you're looking at command-clicking roughly half of the individual entries 
displayed in the Changed view, since folder hierarchies appear if anything 
inside changed. Ballpark guess, that's about 100 clicks prior to being able to 
commit, assuming no error. Now consider if I could just click Commit with 
nothing selected, then manually exclude the 10 files in the commit window. 
Obviously, this is a contrived example, but not so much as you'd think. At 
work, I'm dealing with a working copy with 20 sub-projects that are all part of 
a massive Java server app, and the hierarchies are actually this deep. I don't 
have such bizarre contrived selection patterns, but there are many more than 
one file at each level of the hierarchy, and selection quickly becomes 
tiresome. That's why I (and others) are requesting the feature. A GUI is 
supposed to make things easier, and this is a case where including individual 
paths in Terminal would be horrific in comparison.

Hope that makes sense.
 - Quinn


On Nov 19, 2009, at 8:21 AM, Marijn Huizendveld wrote:

> 
> Quin,
> 
> I get your point. Why not expand your hierarchy select them all with  
> shift click and deselect the folders and the items you wish to exclude  
> with command click?
> 
> - Marijn
> 
> On Nov 19, 2009, at 5:18 PM, Quinn Taylor wrote:
> 
>> I think you're misunderstanding my point. I'm not extolling the  
>> virtues of Eclipse, I also find it annoying in many ways, but for  
>> large Java projects, it does redeem itself. (FWIW, configuring a  
>> project is IMO the absolute worst part of Eclipse. Once you get past  
>> that, working with it isn't half bad, especially for an all-Java  
>> app.) I was only making a point of how the SVN plugins act in  
>> Eclipse to provide a concrete example.
>> 
>> The approach you specify doesn't work in many situations. Imagine  
>> you have a Java package hierarchy with classes scattered up and down  
>> 6+ levels of it. If you don't want to commit everything in the  
>> hierarchy, selecting everything and deselecting resources not to  
>> commit has no effect, since selecting a directory includes  
>> everything inside its hierarchy. Anytime you want to commit some-but- 
>> not-all resource in a hierarchy, there is no choice but to cmd-click  
>> each one individually. Essentially, Versions currently caters well  
>> to opt-in selection, but not opt-out deselection. In many cases, it  
>> becomes trivial to add one more resource, but disproportionately  
>> difficult to exclude one resource. This is the part that's painful  
>> for large commits. Does that make more sense?
>> 
>> I realize that with flat hierarchies this is virtually a non-issue,  
>> but please don't assume that everyone can or does structure their  
>> projects that way.  :-)
>> 
>> - Quinn
>> 
>> 
>> On Nov 19, 2009, at 7:57 AM, Hardy Macia wrote:
>> 
>>> 
>>> I've only done the selective commits by selecting files that I want  
>>> to commit, not the other way around as you are suggesting, but  
>>> isn't what you want to do just...
>>> 
>>> Show changed files, select all, cmd-click the file/files you don't  
>>> want to commit?
>>> 
>>> I've only used Eclipse once for a small project, but I found it  
>>> extremely annoying to use.
>>> 
>>> -Hardy
>>> 
>>> On Nov 19, 2009, at 10:50 AM, Quinn Taylor wrote:
>>> 
>>>> It's a matter of workflow preference. Yes, you can select files  
>>>> and folders in the main GUI before committing — command-clicking  
>>>> etc. obviously works, but just because something is possible  
>>>> doesn't mean that's the only way anyone would/should ever want to  
>>>> do it. (Exhibit A: Windows) However, it can be a pain for deeply- 
>>>> nested hierarchies and excluding that one file that shouldn't be  
>>>> committed yet. The SVN plugins for Eclipse provide checkboxes in  
>>>> the commit window, and they can be incredibly handy when you need  
>>>> them. However, I generally only use them for *removing* files from  
>>>> the commit, so perhaps an unobtrusive button in the bottom left  
>>>> corner (which allows you to exclude 1 or more selected entries  
>>>> from the commit, without changing the selection in the main  
>>>> window) would be a good compromise?
>>>> 
>>>> - Quinn
>>>> 
>>>> On Nov 19, 2009, at 7:38 AM, Hardy Macia wrote:
>>>> 
>>>>> 
>>>>> I'm always submitting a few files from versions so that I can  
>>>>> submit related file changes together.
>>>>> 
>>>>> Cmd-click/shft-click on the files to select the ones you want to  
>>>>> submit and submit them. I think checkboxes would get in the way.
>>>>> 
>>>>> - Hardy
>> 
> 
> 
> --~--~---------~--~----~------------~-------~--~----~
> You received this message because you are subscribed to the Google Groups 
> "Versions" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to 
> [email protected]
> For more options, visit this group at 
> http://groups.google.com/group/versions?hl=en
> -~----------~----~----~----~------~----~------~--~---
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to