[GSOC] Interactive patch selection for commit/Mercurial Queues/record/import

Peter Arrenbrecht peter.arrenbrecht at gmail.com
Mon Mar 30 09:24:19 CDT 2009


On Mon, Mar 30, 2009 at 2:19 PM, Rafael Villar Burke <pachi at rvburke.com> wrote:
> Justin Peng wrote:
>>
>> Hi ,all.
>>
>> I've chosen ' Interactive patch selection for commit/Mercurial
>> Queues/record/import' as my project idea for this year's GSOC.  To get
>> a clearer knowledge about it before submitting my application, I 'm
>> here to ask for your comments and advice on it.
>>
>
>> B. My thinking about better granularity of selection.
>>
>> IMO, the problem includes a set of granularities but not simply only
>> one optimal granularity in fact.
>>
>> The set of granularities can be considered as a tree whose root is
>> just 'all changes of a project', and  be arranged in hierarchy as:
>>
>>   changes of a project
>>    |
>>    |---- changes of a folder
>>           |
>>           |---- changes of a module/file
>>                     |
>>                     |---- changes of a hunk
>>                              |
>>                              |---- changes of a class in a hunk
>>                                     |
>>                                     |----changes of a function in a class
>>
>> As the figure shows, changes in a hunk are the subtlest, as a hunk may
>> be divided into some elements such as classes or  functions, all the
>> elements should be able to process (commit or skip) respectively. For
>> instance, after adding  some new classes into a module in working
>> directory, it's possible to choose which classes, and which functions
>> of those chosen classes to commit, in an interactive way.
>>
> IMHO, you should consider at least line granularity. Being able to
> choose at the line level granularity may be enough for most users and
> wouldn't need complex heuristics, as detecting classes, functions or
> other elements that may vary from language to language or even for
> different file formats.

Seconded. Also note that the CRecord extension already supports this.
-parren



More information about the Mercurial mailing list