Regarding using KDiff3 merging tool
Yuri Chornoivan
yurchor at ukr.net
Tue Aug 23 12:43:09 UTC 2016
23 серпня 2016, 14:30:16, від "Prashant Pahurkar" <prashant.pahurkar at gmail.com>:
> Hi Yuri,
>
>
>
>
>
>
>
> Thanks for your reply.
>
>
>
> I have few questions/clarification as below:
>
>
>
>
>
> 1. Yuri:- Anyway, KDiff3 (as any other KDE application) can be controlled with D-Bus. See the instructive article here:
> http://www.linuxjournal.com/article/10455
> You can easily found merge_choose_a_everywhere in the KDiff3 D-Bus tree under kdiff3/MainWindow_1/actions and set it.
> Options can be passed through additional arguments to the Windows CALL.
>
>
> Prashant: I have gone through the link you have shared above but I am not very clear. My questions are :
>
>
>
>
> a.
>
> Do I need to install D-Bus as well in my system to use choose_a_everywhere option before hand.
Oops... I have not tested this on Windows version of _KDiff3_ before writing the answer. I works for stock KDE applications from KDE-Windows and for Linux version of KDiff3 (tested on Win XP) but it does not work for KDiff3-Windows separate package (tested).
>
>
>
>
> b.
>
> Once kdiff3 is launched and when I give 2 input files for merging, then I can choose a or b everywhere option but question is I need to understand how do I set such option via the command line. Pls advise.
It is impossible for the separate KDiff3 package on Windows. Now I know it.
>
> 2. Yuri: If you need non-interactive tool then why did you choose Kdiff3? Why not use its backend (diff3 from diffutils), fc from Windows or WinMerge command line part?
>
>
> Prashant: I tried using diff3 which got available as part of KDiff3 installation (in the kdiff3\bin folder)
>
>
>
> But I was unable to neither run the diff3 application directly nor via the batch file using Call command by passing file as parameters
>
>
>
> For eg:
>
>
>
> call "C:\Program Files\kdiff3\bin\diff3.exe" "C:\Users\xxx\Documents\Rnd Learning\n1.txt" “C:\Users\xxx\Documents\Rnd Learning\n2.txt" -o "C:\Users\xxx\Documents\Rnd Learning\n3.txt"
>
>
>
> Please advise on how do I use and invoke Diff3 which will merge 2 files (With File A code dominating) and returning the output in 3rd file. All this to be achieved through command line.
Please use the Linux tools as expected (there are man pages for the in the net).
In this case I recommend diff + sed from \bin. First you use diff:
call diff.exe -DVERSION1 file1.txt file2.txt > merged.txt
then use sed.exe to separate needed part from the diff. The idea is stolen from here:
http://unix.stackexchange.com/questions/63425/how-to-use-patch-and-diff-to-merge-two-files
Some usefule recipes for sed can be found here:
http://sed.sourceforge.net/grabbag/tutorials/
Hope this helps,
Yuri
>
>
> Thanks.
>
>
>
>
>
>
>
>
> Regards,
>
>
>
> Prashant
>
>
>
>
>
>
>
>
>
>
>
>
>
> On Fri, Aug 12, 2016 at 1:00 PM, Yuri Chornoivan wrote:
> > Hi,
> >
> >
> > Please find some answers below.
> >
> >
> > написане Fri, 12 Aug 2016 09:39:32 +0300, Prashant Pahurkar :
> >
> > > Gentle reminder.
> > >
> > > Please reply if it is possible to have the required functionality.
> > >
> > >
> > > Regards,
> > >
> > > Prashant
> > >
> > > On 11 Aug 2016 18:53, "Prashant Pahurkar"
> > >
> > > wrote:
> > >
> > > > Gentle reminder. ..
> > > >
> > > > Awaiting your reply.
> > > >
> > > >
> > > > On 10 Aug 2016 16:46, "Prashant Pahurkar"
> > > >
> > > > wrote:
> > > >
> > > > >
> > > >
> > > > > Hi Burkhard,
> > > >
> > > > >
> > > >
> > > > > Thanks for the reply.
> > > >
> > > > > I have gone through the link you have shared but what I am looking out
> > > >
> > > > is somewhat different and is as follows:
> > > >
> > > > > 1. I want to merge 2 files and auto resolve the conflict without any
> > > >
> > > > manunal intervention.
> > > >
> > > > > Lets say I will provide the input as:- In Conflict situation it should
> > > >
> > > > always pick it up from File A and override.
> > > >
> > > > > Is it possible without manual intervention.
> > > >
> > > > > I guess this is possible by Manual intervention i.e. by choosing the
> > > >
> > > > option of selecting "Choose A from everywhere" - but how to achieve this
> > > >
> > > > without manual intervention.
> > > >
> > > > > It means how do I default or set the "Choose A from everywhere" option
> > > >
> > > > before hand.
> >
> >
> > Hmm... If you need non-interactive tool then why did you choose Kdiff3? Why not use its backend (diff3 from diffutils), fc from Windows or WinMerge command line part?
> >
> >
> > Anyway, KDiff3 (as any other KDE application) can be controlled with D-Bus. See the instructive article here:
> >
> > http://www.linuxjournal.com/article/10455
> >
> >
> > You can easily found merge_choose_a_everywhere in the KDiff3 D-Bus tree under kdiff3/MainWindow_1/actions and set it.
> >
> >
> > Options can be passed through additional arguments to the Windows CALL.
> >
> >
> > Hope this helps.
> >
> >
> > Best regards,
> >
> > Yuri
> >
> >
> >
> > > > >
> > > >
> > > > > 2. In the above example how do I set this option when calling KDiff3
> > > >
> > > > from command prompt.
> > > >
> > > > > For eg:
> > > >
> > > > > I am using a batch file and using the following command
> > > >
> > > > > call "C:\Program Files\kdiff3\kdiff3.exe" "C:\Users\xx\Documents\Rnd
> > > >
> > > > Learning\n1.txt" "C:\Users\xx\Documents\Rnd Learning\n2.txt"
> > > >
> > > > -o "C:\Users\xx\Documents\Rnd Learning\n3.txt"
> > > >
> > > > > How do I get the merge output in n3.txt which will have the merge
> > > >
> > > > product of n1.txt and n2.txt?
> > > >
> > > > > How do I set the option of "Choose A from everywhere" through the
> > > >
> > > > command prompt i.e What should I add in the above command line to achieve
> > > >
> > > > the "Choose A from everywhere" option.
> > > >
> > > > > Awaiting your reply.
> > > >
> > > > >
> > > >
> > > > > Regards,
> > > >
> > > > > Prashant
> > > >
> > > > >
> > > >
> > > > > On Tue, Aug 9, 2016 at 7:58 PM, Burkhard Lück
> > > >
> > > > wrote:
> > > >
> > > > >>
> > > >
> > > > >> Am Dienstag, 9. August 2016, 18:21:02 CEST schrieb Prashant Pahurkar:
> > > >
> > > > >> > Hi,
> > > >
> > > > >> >
> > > >
> > > > >> > I have certain doubts and clarification required wrt using KDiff3
> > > >
> > > > tool as
> > > >
> > > > >> > follows:
> > > >
> > > > >> > 1. I want to merge 2 files and auto resolve the conflict by adding
> > > >
> > > > first
> > > >
> > > > >> > lines from File A and then appending it with Lines from B. Is it
> > > >
> > > > possible
> > > >
> > > > >> > without manual intervention.
> > > >
> > > > >> > 2. Also Can i achieve the same using command prompt.
> > > >
> > > > >> > For ex: I am using a batch file and using the following command
> > > >
> > > > >> > call "C:\Program Files\kdiff3\kdiff3.exe" --auto
> > > >
> > > > >> > "C:\Users\296170\Documents\Rnd Learning\n1.txt"
> > > >
> > > > >> > "C:\Users\296170\Documents\Rnd Learning\n2.txt" -o
> > > >
> > > > >> > "C:\Users\296170\Documents\Rnd Learning\n3.txt"
> > > >
> > > > >> >
> > > >
> > > > >> > This will display the page where it will ask me to select from File A
> > > >
> > > > or B
> > > >
> > > > >> > to resolve the conflict. But through command prompt I would like to
> > > >
> > > > get the
> > > >
> > > > >> > merge output in n3.txt which will have the merge product of n1.txt and
> > > >
> > > > >> > n2.txt.
> > > >
> > > > >> > Please let me know if this is possible and what would be the command
> > > >
> > > > to
> > > >
> > > > >> > achieve this?
> > > >
> > > > >> >
> > > >
> > > > >> Please read https://docs.kde.org/trunk4/en/extragear-utils/kdiff3/
> > > >
> > > > >> documentation.html#commandline
> > > >
> > > > >>
> > > >
> > > > >> --
> > > >
> > > > >> Burkhard Lück
> > > >
> > > > >>
> > > >
> > > > >
More information about the kde-doc-english
mailing list