##// END OF EJS Templates
admin-commands: move the chainsaw extension to the admin commands module...
admin-commands: move the chainsaw extension to the admin commands module Activating an extension is always a little bit of a chore and the long name, options and "chainsaw" bits are deterrent enough. This also allows us to help the discoverability for people looking for repo "administration" tools, with the widest semantic of "administration".

File last commit:

r51894:44001e6f default
r52396:d4095f7b stable
Show More
hgmerge.com
76 lines | 2.2 KiB | application/x-msdownload | TextLexer
$!
$! 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