Re: Git with Lader logic

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

 



Junio C Hamano <gitster <at> pobox.com> writes:

> 
> Martin Pettersson <martin <at> siamect.com> writes:
> 
> > I use Git for versioning PLC program written for Beckhoff TwinCAT v2 that 
> > saves the files in binary format.  
> > You can probably do the same for most other systems as well.   
> >   
> > My way of doing it is... 
> > I have a batch file that starts TwinCAT including a file that tell Twincat to
> > open my PLC program and export it into a text based format. 
> > After that the script opens git gui and gitk.  
> >   
> > I have one script like this for each plc program. 
> > It is quite effcient, the whole procedure only takes a double click and 
> > less than 10 seconds and you have git gui up and you can see your 
> > changes in pure text, commit and push.   
> > I commit both the exported text files and the binary  because the binary
> > is the one I edit.   
> > This has been working very well for many years....
> 
> Let me check if I got your scheme correctly.
> 
>  - You need to track PLC program files, whose native format is
>    binary and is not very amenable to textual processing like diff
>    and merge
> 
>  - But you can tell TwinCat to export that binary file to text (and
>    presumably you can tell TwinCat to read that exported text file),
>    and the text format is human-readable.
> 
>  - You use a script that calls TwinCat to export the binary into
>    text as a clean filter, and what is checked into Git is the
>    exported text representation.
> 
>  - You use another script that calls TwinCat to convert the exported
>    text back to the binary as a smudge filter, and what is checked
>    out to the working tree is the native binary format file.
> 
> Is that what is going on?  I can imagine how that arrangement would
> work (after all, that is how clean/smudge filters are designed to be
> used).
> 
> Thanks.
> 
> 

Well  you got it right, but I "almost" never convert the 
exported textfiles back into TwinCat.  

The exported textfiles is not really suitable
for merging as they have a proprietary format, 
but they are human readable and it helps a lot 
to be able to see what changes I made at a certain commit.  
  
I do commit both the exported text files and the original binary files.
Recreating the binary by imprting the textfiles can be done.
I just don't do it because it is easier to commit the binary at 
the same time when I commit the exported text files. 
That way I can just checkout any version and rebuild the project 
and  reload it in the machine. 

My script is just a batch file that I double click on. It is not using 
any of the hooks that git comes with. 

Here is an example, I hope it keeps the formatting  (windows batch file):

Set WorkingFolder="C:\Documents and Settings\Me\projectname\Beckhoff"
Set CommandFile="do_.cmd"
Set TwinCatFile="plc_program_name.prx"
Set ExportFile="exports\intermediate_plate.exp"
Set ExportFolder="exports\modules"

cd %WorkingFolder%

echo project expmul %ExportFolder% > %CommandFile%
echo project export %ExportFile% >> %CommandFile%
echo file quit  >> %CommandFile%

del /f /q %ExportFile%
del /f /q %ExportFolder%\*.*
C:\TwinCAT\Plc\TCatPlcCtrl.exe %TwinCatFile% /cmd %CommandFile%
del /f %CommandFile%

call git gui &
call gitk --all &

Take care
Martin

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]