Mercurial > hg
view contrib/editmergeps.ps1 @ 41138:8ddc5d8bea25
tests: support passing testcase after .t paths that have path separators
This probably could have been implemented by changing the regex above this bit
of code, but I wasn't sure if it would end up handling various OSes correctly,
so I decided to go with this version instead.
Previously:
$ tests/run-tests.py tests/test-ssh.t -l
running 2 tests using 2 parallel processes
..
# Ran 2 tests, 0 skipped, 0 failed.
$ tests/run-tests.py tests/test-ssh.t#sshv1 -l
running 0 tests using 0 parallel processes
# Ran 0 tests, 0 skipped, 0 failed.
Now:
$ tests/run-tests.py tests/test-ssh.t -l
running 2 tests using 2 parallel processes
..
# Ran 2 tests, 0 skipped, 0 failed.
$ tests/run-tests.py tests/test-ssh.t#sshv1 -l
running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
Differential Revision: https://phab.mercurial-scm.org/D5535
author | Kyle Lippincott <spectral@google.com> |
---|---|
date | Tue, 08 Jan 2019 17:52:39 -0800 |
parents | 92bcaef3420b |
children |
line wrap: on
line source
# A simple script for opening merge conflicts in editor # A loose translation of contrib/editmerge to powershell # Please make sure that both editmergeps.bat and editmerge.ps1 are available # via %PATH% and use the following Mercurial settings to enable it # # [ui] # editmergeps # editmergeps.args=$output # editmergeps.check=changed # editmergeps.premerge=keep $file=$args[0] function Get-Lines { Select-String "^<<<<<<" $file | % {"$($_.LineNumber)"} } $ed = $Env:HGEDITOR; if ($ed -eq $nil) { $ed = $Env:VISUAL; } if ($ed -eq $nil) { $ed = $Env:EDITOR; } if ($ed -eq $nil) { $ed = $(hg showconfig ui.editor); } if ($ed -eq $nil) { Write-Error "merge failed - unable to find editor" exit 1 } if (($ed -eq "vim") -or ($ed -eq "emacs") -or ` ($ed -eq "nano") -or ($ed -eq "notepad++")) { $lines = Get-Lines $firstline = if ($lines.Length -gt 0) { $lines[0] } else { $nil } $previousline = $nil; # open the editor to the first conflict until there are no more # or the user stops editing the file while (($firstline -ne $nil) -and ($firstline -ne $previousline)) { if ($ed -eq "notepad++") { $linearg = "-n$firstline" } else { $linearg = "+$firstline" } Start-Process -Wait -NoNewWindow $ed $linearg,$file $previousline = $firstline $lines = Get-Lines $firstline = if ($lines.Length -gt 0) { $lines[0] } else { $nil } } } else { & "$ed" $file } $conflicts=Get-Lines if ($conflicts.Length -ne 0) { Write-Output "merge failed - resolve the conflicts (line $conflicts) then use 'hg resolve --mark'" exit 1 } exit 0