Mercurial > hg
view contrib/editmergeps.ps1 @ 43606:14ce03e13508
packaging: install .rc files to hgrc.d
Currently, Inno installs these .rc files to a default.d
directory and WiX to a hgrc.d directory.
Mercurial automatically loads files in an hgrc.d directory
next to the executable and in an "internal" default.d directory.
This "internal" directory is util.datadir, which on Windows
installs made with py2exe is the directory containing hg.exe.
So on Windows both hgrc.d and default.d directories relative
to hg.exe are loaded.
For the install layout, I think it makes sense for hgrc.d to
be used, as that path is documented as non-internal. So this
commit changes the Inno install layout to use hgrc.d instead
of default.d.
.. bc::
Changed default config file location in Windows .exe installers
Mercurial's installer installs some default .rc config
files. Previously, these were installed in a default.d
directory. These are now installed in an hgrc.d directory.
Custom default.d/*.rc files should still be loaded. But it
is recommended to move these to hgrc.d/*.rc.
This change only affects the .exe installers (not the .msi
installers).
Differential Revision: https://phab.mercurial-scm.org/D7168
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 23 Oct 2019 13:00:14 -0700 |
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