[darcs-users] Feature idea: Suggest replace operation

Eric Kow kowey at darcs.net
Mon Sep 14 13:44:18 UTC 2009


Hi Florent,

Any comments, please?

Thanks for the suggestion, Henrik :-)

On Mon, Sep 07, 2009 at 12:25:16 +0200, Henrik Hjelte wrote:
> Hello, maybe this is too obvious and has been discussed before? Anyway
> I came to think of a great feature idea, so I wanted to tell the
> world.
> 
> Now, darcs has a replace operation. Which I too seldom use. Thinking
> of how to best record my changes is not on the top of my head while
> coding. Could darcs automatically detect that a series of hunks might
> mean a replace and suggest the use of the replace operation?
> 
> This is my recent real-world example:
> 
> A search for twitteringNotice and replace with twitterPublishIcon.
> In emacs the hunks looks like this:
>     in directory ./src/js/gui/twitter:
>     	      Modified                twitter-view.js
>     35
>     -    var twitteringNoticeHtml = '<div class="twittering-notice"></div>';
>     +    var twitterPublishIconHtml = '<div class="twittering-notice"></div>';
>     40
>     -        var $twitterOff, $twitterBirdhead, $twitterMain,
> $twitteringNotice, $twitterMessage, $counter, $account,
> $accountSelector;
>     +        var $twitterOff, $twitterBirdhead, $twitterMain,
> $twitterPublishIcon, $twitterMessage, $counter, $account,
> $accountSelector;
>     54
>     -            $twitteringNotice =
> $(twitteringNoticeHtml).hide().appendTo(publishIcon);
>     +            $twitterPublishIcon =
> $(twitterPublishIconHtml).hide().appendTo(publishIcon);
>     78
>     -            $twitteringNotice.toggle();
>     +            $twitterPublishIcon.toggle();
>     86
>     -                $twitteringNotice.toggle();
>     +                $twitterPublishIcon.toggle();
> 
> 
> Look at the difference inside each hunk, it is possible for darcs to
> see that in all cases have we replaced ingNotice with PublishIcon.
> 
> Darcs might even improve this by selecting the maximal possible
> "enlargement", which means twitteringNotice with twitterPublishIcon.
> 
> Darcs can see that there are no more occurencies of ingNotice in the file.
> 
> Now darcs can ask us if we instead of recording 5 hunks meant to
> record a replace operation?  We might even be given a choice between
> ingNotice for PublishIcon or twitteringNotice for twitterPublishIcon
> (but I think that the last form is probably what you would want, it
> preserves more semantic meaning I guess).
> 
> This question should be possible to turned off using --no-replace-suggestions
> 
> Slightly off topic comment:
> 
> It seems I don't know enough about the replace command, I needed two
> replace operations to do the same thing, replacing twitteringNotice
> didn't have effect on twitteringNoticeHtml but it did work on
> $twitteringNotice. So it treats a prefix and a postfix differently.
> 
> replace ./src/js/gui/twitter/twitter-view.js [A-Za-z_0-9]
> twitteringNotice twitterPublishIcon
> replace ./src/js/gui/twitter/twitter-view.js [A-Za-z_0-9]
> twitteringNoticeHtml twitterPublishIconHtml
> 
> Best wishes to all developers, as a darcs-fan it is great to read of
> all the work that is going on.

-- 
Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow>
PGP Key ID: 08AC04F9
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.osuosl.org/pipermail/darcs-users/attachments/20090914/7aecda0c/attachment.pgp>


More information about the darcs-users mailing list