[Mingw-users] Question about 'patching' source code.

Back to archive index
David Wall dc_wall****@adsl*****
Sat Oct 12 17:09:10 JST 2019


Thank you Niklas for explaining that to me.

Much appreciated.

David

Niklas Holsti wrote:
> On 19-10-12 03:39 , David Wall wrote:
>> I regularly 'build' GnuCOBOL compiler from source code - however it is
>> supplied in 'tar' format.
>> I use 'tar' to unpack it and then I need to make changes to certain
>> files all the time.
>>
>> Is there any program in Mingw 6.3.0 that I can utilise to do these
>> patches for me.
> 
> The "patch" and "diff" tools are designed for this.
> 
>> I installed msys-patch and checked thru the documentation - but it
>> processes a 'diff' file and
>> that confused me no end. Maybe I'll have to investigate how to produce a
>> 'diff' file.
> 
> Yes.
> 
> This is the process: first,
> 
> 1. Make a copy of all the original files from the "tar".
> 
> 2. Edit the copy manually, applying the changes you need (which is what 
> you have done so far for all "tar" versions, so you could use the last 
> version of your edited files instead).
> 
> 3. Run "diff" to compare the original file set with the manually edited 
> file set. Store the resulting diff output as a "diff file". This file a 
> record of the changes that you made manually; it identifies the files 
> that were changed, the places in the files that were changed, and the 
> change (old text => new text).
> 
> When, later, you get a new "tar", you run "patch" on the new files using 
> the "diff file" that you got from step 3 above. "Patch" then reapplies 
> the same changes you did on the original "tar" file set and which were 
> recorded in the "diff file".
> 
> "Patch" tolerates a certain amount of evolution in the "tar" files from 
> one version to the next, but if there is too much of that -- for 
> example, if a function that you changed, as shown in the "diff" file, no 
> longer exists in the new "tar" files or has been moved somewhere far 
> away -- "patch" reports an error and then you have to consider what to 
> do and perhaps edit something manually again. If you have to do that, 
> you can then make, with "diff", a new "diff file" that reflects this 
> evolution of the "tar" files, and the new "diff file" should work better 
> when the next new "tar" arrives.
> 
>> What I'd like to do is tell a patch program to:
>>
>> 1. Find this file     2. Find this text in the file    3. Replace found
>> text with new text.
> 
> That is exactly what the patch+diff combination can do.
> 
> HTH,
> 
> Niklas Holsti
> 
> _______________________________________________
> MinGW-Users mailing list
> MinGW****@lists*****
> 
> This list observes the Etiquette found at
> http://www.mingw.org/Mailing_Lists.
> We ask that you be polite and do the same.  Disregard for the list 
> etiquette may cause your account to be moderated.
> 
> _______________________________________________
> You may change your MinGW Account Options or unsubscribe at:
> https://lists.osdn.me/mailman/listinfo/mingw-users
> Also: mailto:mingw****@lists*****?subject=unsubscribe



More information about the MinGW-Users mailing list
Back to archive index