Friday, March 4, 2011

Re: To be strange or not to be strange...?

On Fri, 4 Mar 2011, meino.cramer@gmx.de wrote:

>
> Hi,
>
> I want to rebuild vim patch by patch starting with the source of the
> vim version, which was that one which receives patch 7.3.001.
>
> I thought that version was 7.2.446.

Hmm. Not entirely sure. The Mercurial repository seems not to have an
"updated for version 7.3.001" log message:
http://code.google.com/p/vim/source/list?r=f0915ae869cf7f143b7bb1a8c24b581f5e3a0909&r=0c1e413c32f1f3f8e28ebf8a030cedeeb664cd46

And src/version.c in the commit for "updated for version 7.3.002" seems
to only mention that patch 1 is included.
http://code.google.com/p/vim/source/detail?r=f0915ae869cf7f143b7bb1a8c24b581f5e3a0909


> But applying patch 7.3.001 to it (trying: patch -p0 < 7.3.001, patch
> -i -p0 < 7.3.001, patch -i -p 7.3.001, patch -i -p0 7.3.001) failed.
>
> So something screwed up here...may be my version of 7.2.446 is
> corrupted.
>
> Where can I get the source of vim-7.<last pre-7.3.001> WITHOUT
> compiling it in one go (I read about aap, but this one downloads the
> newest version an recompiles the whole stuff, which is reasonable for
> such a tool and really neat -- but unfortunately not what I want... ;)

It's unclear what exactly you're trying to do here, so just to clear up
a possible misinterpretation:

The patches are against the source code, not against binaries. So, you
can't really get by without "recompil[ing] the whole stuff"... unless
you just mean that you don't want the entire `./compile [options] &&
make && make clean`. (rather something like: `./compile [options] &&
make && make install` followed by repeatedly: `patch && make && make
install`)


> How can I proceed here?

Unless the goal is to omit certain patches, this would be much easier
using the Mercurial repository.

Repeat for desired versions:
`hg checkout [version] && cd src && ./compile [options] && make [etc.]`.

If you want to find the point at which some problem was introduced, `hg
bisect` is a much better tool.

I posted a script for use with `hg bisect` (or `git bisect` against an
hg-git version of the repo) in response to another problem a while back:
http://groups.google.com/group/vim_dev/msg/50e3747317d9b5a8

You'd want to modify two portions of the script:

In the section: {{{ this defines what will actually be run, vim-wise }}}
The line:
cmd+=( +new +'redir! > MESSAGES' +'silent! windo verbose set spc?' +'redir END' +qa )
sets up to test a problem with the 'spc' setting when splitting windows.

And in the section: {{{ specific to this test }}}
The line:
grep 'spellcapcheck=' MESSAGES | grep -qv 'spellcapcheck=\[' || good
checks the MESSAGES file to see whether the test passed.

Not sure if the script is a bit overwhelming as an intro to bisection.
The important points are that `hg bisect` expects a script to compile,
make, install (if needed), and then run some kind of test. The return value
of the script shows how the test turned out:

0 = good (test passed, so this revision is unaffected)
1 = bad (test failed, so this revision has the bug)
125 = skip (something failed before the test could be run)

--
Best,
Ben

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

No comments: