threads / bug / 19874

bug/feature request: apply textconv in "git add -p" diff output

Subject: bug/feature request: apply textconv in "git add -p" diff output

## tl;dr

4 messages between Jun 20, 2009 and Jun 21, 2009.

replies: 3people: 3as markdown or json

Nguyen Thai Ngoc Duy· Jun 20, 2009, 07:17 UTC · lore
Hi,

I use git to manage bdf font files. It it quite cryptic so textconv for diff output makes it much easier to keep track of changes. The only problem is that "git add -p" does not seems to use textconv, so I have to run in parallel "git diff" and "git add -p", then add chunks accordingly. Can somebody add textconv support to "git add -p" please? I'm not so good at Perl to do the job.

Thanks,
-- 
Duy
Santi Béjar· Jun 20, 2009, 07:58 UTC · re: Nguyen Thai Ngoc Duy · lore

Re: bug/feature request: apply textconv in "git add -p" diff output

2009/6/20 Nguyen Thai Ngoc Duy <pclouds@gmail.com>
Show 9 quoted lines
>
> Hi,
>
> I use git to manage bdf font files. It it quite cryptic so textconv
> for diff output makes it much easier to keep track of changes. The
> only problem is that "git add -p" does not seems to use textconv, so I
> have to run in parallel "git diff" and "git add -p", then add chunks
> accordingly. Can somebody add textconv support to "git add -p" please?
> I'm not so good at Perl to do the job.

While at it it would be great if one could toggle between normal diff and --color-words in "git add -p". I tried to do it but the logic in "git add -p" is base on lines (and not chuncks) and git diff --color-lines changes them and my perl-fu is not so good either.

Thanks in advance, Santi

Michael J Gruber· Jun 20, 2009, 09:41 UTC · re: Nguyen Thai Ngoc Duy · lore

Re: bug/feature request: apply textconv in "git add -p" diff output

Nguyen Thai Ngoc Duy venit, vidit, dixit 20.06.2009 09:17:
Show 8 quoted lines
> Hi,
> 
> I use git to manage bdf font files. It it quite cryptic so textconv
> for diff output makes it much easier to keep track of changes. The
> only problem is that "git add -p" does not seems to use textconv, so I
> have to run in parallel "git diff" and "git add -p", then add chunks
> accordingly. Can somebody add textconv support to "git add -p" please?
> I'm not so good at Perl to do the job.

I don't think this is possible: textconv filters are meant to produce easily readable output from diff, but in no way are they required to be injective mappings. So, textconv output cannot to be used in order to specify a patch uniquely.

The appropriate approach is to use smudge/clean filters. They are mutually inverse. And, in fact, I just checked: add -p uses the cleaned version. So, if clean converts to "something textual" which gives you readable diffs and meaningful stats (and smudge converts to binary bdf) then that is the way to go.

Michael
Nguyen Thai Ngoc Duy· Jun 21, 2009, 12:17 UTC · re: Michael J Gruber · lore

Re: bug/feature request: apply textconv in "git add -p" diff output

On Sat, Jun 20, 2009 at 7:41 PM, Michael J Gruber<git@drmicha.warpmail.net> wrote:

Show 20 quoted lines
> Nguyen Thai Ngoc Duy venit, vidit, dixit 20.06.2009 09:17:
>> Hi,
>>
>> I use git to manage bdf font files. It it quite cryptic so textconv
>> for diff output makes it much easier to keep track of changes. The
>> only problem is that "git add -p" does not seems to use textconv, so I
>> have to run in parallel "git diff" and "git add -p", then add chunks
>> accordingly. Can somebody add textconv support to "git add -p" please?
>> I'm not so good at Perl to do the job.
>
> I don't think this is possible: textconv filters are meant to produce
> easily readable output from diff, but in no way are they required to be
> injective mappings. So, textconv output cannot to be used in order to
> specify a patch uniquely.
>
> The appropriate approach is to use smudge/clean filters. They are
> mutually inverse. And, in fact, I just checked: add -p uses the cleaned
> version. So, if clean converts to "something textual" which gives you
> readable diffs and meaningful stats (and smudge converts to binary bdf)
> then that is the way to go.

Right, I did not notice because mine was line by line translation. I'll convert it to clean filter. Thanks.

-- 
Duy

← back to recent threads