[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: normalizing files and old revisions

From: Max Bowsher
Subject: Re: normalizing files and old revisions
Date: Sun, 31 Aug 2003 19:47:49 +0100

Andreas Klauer wrote:
> Hello,
> in order to get rid of whitespace problems (tabs<->spaces, trailing
> CRLF(\r\n)<->LF(\n)  linefeeds) I want to add a filter to
> which normalizes (modifies) the corresponding files before they are
> Can anyone confirm that this is the way to go? I got this solution from
> cvsIndent project, which reformats whole files when commited. Is there a
> better one?
> Now, to my main problem:
> The repository already contains files which use tabs, CRLF, et cetera.
> Corresponding diffs to old revisions already contain loads of unnecessary
> whitespace changes. I'd like to get rid of these diffs, to make
> between never revisions (which use filter) and older revisions (which
> have the filter) possible without getting all this whitespace changes
> Is it possible somehow to rebuild the repository, to apply this normalizer
> old revisions, without influencing commit dates, authors, log entrys,
> statistics, so that the resulting repository looks like as if the
> script was used from the very beginning? I want to make this change
> completely silently.
> I suppose that this is not quite in the CVS spirit, because this way old
> revisions can't be restored the way they really were. However, I have
> of the repository so that isn't a problem, and it's highly unlikely that
> whitespace changes will affect anything anyway. I'd really prefer to have
> clean diffs. And I can't use diff's 'ignore whitespace'-option, because
> normalizer script probably will do other things too (like conversion of
> charsets, german umlauts, ...)
> Any hints on how to do this?

Write a script that walks an RCS file, and for each revision, generates the
fulltext from the stored diffs, pipes the fulltext through your filter,
diffs it against the previous revision, and writes out the new form.
Don't forget to use the "next" properties to handle branches correctly.

I.e. - not a trivial task.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]