Added tag 6.7.1 for changeset
2e6fde2ed01e
$!
$! Custom merge tool to help solve merge conflict in OpenVMS
$! We recommand to solve this on other system
$!
$ set proc/par=extend
$ mine = p1
$ orig = p2
$ theirs = p3
$ tovms :== $ MERCURIAL_ROOT:[vms]tovms
$ merged = p1 + ".hgmerge"
$ tovms 'merged'
$ merged = tmpfn
$
$ define DECC$UNIX_LEVEL 90
$ gdiff3 :== $ MERCURIAL_ROOT:[vms]gdiff3
$ gdiff == "$ MERCURIAL_ROOT:[VMS]gdiff"
$! gdiff -u 'orig' 'mine'
$! gdiff -u 'orig' 'theirs'
$ if (f$search("''merged'") .nes. "") then -
delete 'merged';*
$ define sys$output 'merged'
$ gdiff3 -"L" mine -"L" original -"L" theirs -"E" -m 'mine' 'orig' 'theirs'
$ status = $status
$ deassign sys$output
$ convert/fdl=mercurial_root:[vms]stmlf.fdl 'merged' 'merged'
$ purge/nolog 'merged'
$! No conflicts found. Merge done.
$ if status .eqs. "%X006C8009"
$ then
$ tovms 'p1'
$ mine = tmpfn
$ rename 'merged' 'mine'
$ purge/nolog 'mine'
$ write sys$output "Merged ''mine'"
$ exit 1
$ endif
$
$! In all other cases, diff3 has found conflicts, added the proper conflict
$! markers to the merged file and we should now edit this file. Fire up an
$! editor with the merged file and let the user manually resolve the conflicts.
$! When the editor exits successfully, there should be no conflict markers in
$! the merged file, otherwise we consider this merge failed.
$
$ if status .eqs. "%X006C8013"
$ then
$ deassign sys$input
$ edit 'merged'
$ open fi 'merged'
$ loop:
$ read fi srec/end=endloop
$ rec7 = f$extract(0, 7, srec)
$ if rec7 .eqs. "<<<<<<<" then goto conflict
$ if rec7 .eqs. "|||||||" then goto conflict
$ if rec7 .eqs. "=======" then goto conflict
$ if rec7 .eqs. ">>>>>>>" then goto conflict
$ goto loop
$ endloop:
$ close fi
$ tovms 'p1'
$ mine = tmpfn
$ rename 'merged' 'mine'
$ purge/nolog 'mine'
$ exit
$ endif
$ if (f$search("''merged'") .nes. "") then -
delete 'merged';*
$ write sys$output "serious diff3 error, while trying to merge ''mine'"
$ exit 44
$
$ conflict:
$ close fi
$ if (f$search("''merged'") .nes. "") then -
delete 'merged';*
$ write sys$output -
"conflict markers still found in the working-copy. Merge aborted for ''mine'"
$ exit 44