##// END OF EJS Templates
refactor: prefer checks against nullrev over nullid...
refactor: prefer checks against nullrev over nullid A common pattern is using a changeset context and obtaining the node to compare against nullid. Change this to obtain the nullrev instead. In the future, the nullid becomes a property of the repository and is no longer a global constant, so using nullrev is much easier to reason about. Python function call overhead makes the difference moot, but future changes will result in more dictionary lookups otherwise, so prefer the simpler pattern. Differential Revision: https://phab.mercurial-scm.org/D10290

File last commit:

r32571:92bcaef3 default
r47601:728d89f6 default
Show More
editmergeps.ps1
78 lines | 1.6 KiB | text/x-powershell | PowerShellLexer
Kostia Balytskyi
contrib: add editmerge version for powershell...
r32329 # 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
}
Kostia Balytskyi
contrib: make editmergeps able to work with notepad++...
r32345 if (($ed -eq "vim") -or ($ed -eq "emacs") -or `
($ed -eq "nano") -or ($ed -eq "notepad++"))
Kostia Balytskyi
contrib: add editmerge version for powershell...
r32329 {
$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))
{
Kostia Balytskyi
contrib: make editmergeps able to work with notepad++...
r32345 if ($ed -eq "notepad++")
{
$linearg = "-n$firstline"
}
else
{
$linearg = "+$firstline"
}
Kostia Balytskyi
contrib: make editmergeps use -NoNewWindow option in Start-Process cmdlet...
r32569 Start-Process -Wait -NoNewWindow $ed $linearg,$file
Kostia Balytskyi
contrib: add editmerge version for powershell...
r32329 $previousline = $firstline
$lines = Get-Lines
$firstline = if ($lines.Length -gt 0) { $lines[0] } else { $nil }
}
}
else
{
Kostia Balytskyi
contrib: fix a bug preventing editmergeps.ps1 from running unknonw editors...
r32570 & "$ed" $file
Kostia Balytskyi
contrib: add editmerge version for powershell...
r32329 }
$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