#!/bin/sh # u4merge, A script to allow using p4winmrg from Linux via Win4Lin # # questions or comments to William Croft, croft@mitem.com if [ $# -eq 0 ] then cat <<-EOF usage: u4merge base_file their_file your_file merge_file usage: u4merge install "u4merge" is a script to allow using p4winmrg from Linux via Win4Lin. Install u4merge in your private or public bin directory. Then FIRST TIME ONLY, type "u4merge install", this will append to your win4lin ~/win/autoexec.bat and put a symlink in ~/mydata. You will need to reboot your win4lin to pickup these changes. Someplace in your perforce setup put "export P4MERGE=u4merge" Now when you do a "p4 resolve" and type "m", u4merge will run, and it creates a batch file ~/mydata/u4m.bat. In your win4lin, in a dos box, now type "u4m". This will start up p4winmrg with the appropriate files. Save your merge file when finished, and reply to the p4 resolve prompt to accept your merge file (am). Since the install process also enabled "doskey", the next time you want to do a merge, after typing the m to p4 resolve, then go to your dosbox and simply type two characters: and . ALTERNATELY, you can setup a Windows shortcut to call u4m: right click on the desktop and select "New Shortcut". Enter "u4m" as the "Command Name" and then complete the dialog. Now you can double click that icon. Right click "properties" for your new icon and under the "program" tab, check "close on exit", to avoid extra dos boxes from accumulating. EOF exit fi #set -x ae=~/win/autoexec.bat my=~/mydata out=u4m.bat uroot=u mydos=d:$uroot forw=/ back=\\\\ if [ $# -eq 1 ] then if [ $1x != installx ] then echo "usage: u4merge install" echo " ONETIME ONLY!!" exit fi if [ -h $my/$uroot ] then echo "you have already initialized once!" exit fi echo -e doskey\\r >>$ae echo -e 'set PATH="%PATH%;D:\\"\r' >>$ae ln -s / $my/$uroot exit fi if [ $# -ne 4 ] then echo "Wrong number of arguments to u4merge." echo "usage: u4merge base_file their_file your_file merge_file" exit fi a1=\"$mydos${1//$forw/$back}\" a2=\"$mydos${2//$forw/$back}\" a3=\"$mydos${3//$forw/$back}\" a4=\"$mydos${4//$forw/$back}\" echo -e p4winmrg -lf $a1 $a2 $a3 $a4 \\r >$my/$out echo "Now type u4m in your win4lin dosbox."