Patchwork D7168: packaging: install .rc files to hgrc.d

login
register
mail settings
Submitter phabricator
Date Oct. 24, 2019, 1:56 a.m.
Message ID <differential-rev-PHID-DREV-6latygwa6d7jj3ji5fiv-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/42558/
State Superseded
Headers show

Comments

phabricator - Oct. 24, 2019, 1:56 a.m.
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  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).

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D7168

AFFECTED FILES
  contrib/packaging/hgpackaging/py2exe.py
  contrib/packaging/inno/mercurial.iss

CHANGE DETAILS




To: indygreg, #hg-reviewers
Cc: mercurial-devel
phabricator - Oct. 25, 2019, 3:06 a.m.
mharbison72 added a comment.


  I think this change (and the entire series) is great!
  
  > Custom default.d/*.rc files should still be loaded. But it
  > is recommended to move these to hgrc.d/*.rc.
  
  Is it a good idea to encourage people to modify the installation directory?  I thought it was off limits on Windows, though a custom file does seem to survive an uninstall/install cycle of thg.
  
  I do miss having a global directory like `/etc/mercurial/hgrc.d`.  Loading relative to the exe isn't exactly global, since a vanilla hg vs a thg install will use different directories.  I wonder if we can slip in a global directory under %ProgramData% or %AppData% or similar.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7168/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7168

To: indygreg, #hg-reviewers
Cc: mharbison72, mercurial-devel
phabricator - Oct. 25, 2019, 3:19 a.m.
indygreg added a comment.


  In D7168#105269 <https://phab.mercurial-scm.org/D7168#105269>, @mharbison72 wrote:
  
  > Is it a good idea to encourage people to modify the installation directory?  I thought it was off limits on Windows, though a custom file does seem to survive an uninstall/install cycle of thg.
  > I do miss having a global directory like `/etc/mercurial/hgrc.d`.  Loading relative to the exe isn't exactly global, since a vanilla hg vs a thg install will use different directories.  I wonder if we can slip in a global directory under %ProgramData% or %AppData% or similar.
  
  I agree that we should consider a better solution here. The compatibility story on Windows is not great and there's lots of room for improvement.
  
  Looking in %ProgramData% or %AppData% in addition to a directory next to the executable and in your home directory feels appropriate. As you say, it mirrors on POSIX works with `/etc`.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7168/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7168

To: indygreg, #hg-reviewers
Cc: mharbison72, mercurial-devel
phabricator - Nov. 9, 2019, 12:03 a.m.
martinvonz added a comment.


  In D7168#105270 <https://phab.mercurial-scm.org/D7168#105270>, @indygreg wrote:
  
  > In D7168#105269 <https://phab.mercurial-scm.org/D7168#105269>, @mharbison72 wrote:
  >
  >> Is it a good idea to encourage people to modify the installation directory?  I thought it was off limits on Windows, though a custom file does seem to survive an uninstall/install cycle of thg.
  >> I do miss having a global directory like `/etc/mercurial/hgrc.d`.  Loading relative to the exe isn't exactly global, since a vanilla hg vs a thg install will use different directories.  I wonder if we can slip in a global directory under %ProgramData% or %AppData% or similar.
  >
  > I agree that we should consider a better solution here. The compatibility story on Windows is not great and there's lots of room for improvement.
  > Looking in %ProgramData% or %AppData% in addition to a directory next to the executable and in your home directory feels appropriate. As you say, it mirrors on POSIX works with `/etc`.
  
  @mharbison72, are you okay with what Greg says?
  
  I'll queue the patches up but not including this one for now. Thank, Greg! I don't really know what all these patches do, but the commit messages sound reasonable :)

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7168/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7168

To: indygreg, #hg-reviewers
Cc: martinvonz, mharbison72, mercurial-devel
phabricator - Nov. 9, 2019, 1:09 a.m.
mharbison72 added a comment.
mharbison72 accepted this revision.


  In D7168#107707 <https://phab.mercurial-scm.org/D7168#107707>, @martinvonz wrote:
  
  > In D7168#105270 <https://phab.mercurial-scm.org/D7168#105270>, @indygreg wrote:
  >
  >> In D7168#105269 <https://phab.mercurial-scm.org/D7168#105269>, @mharbison72 wrote:
  >>
  >>> Is it a good idea to encourage people to modify the installation directory?  I thought it was off limits on Windows, though a custom file does seem to survive an uninstall/install cycle of thg.
  >>> I do miss having a global directory like `/etc/mercurial/hgrc.d`.  Loading relative to the exe isn't exactly global, since a vanilla hg vs a thg install will use different directories.  I wonder if we can slip in a global directory under %ProgramData% or %AppData% or similar.
  >>
  >> I agree that we should consider a better solution here. The compatibility story on Windows is not great and there's lots of room for improvement.
  >> Looking in %ProgramData% or %AppData% in addition to a directory next to the executable and in your home directory feels appropriate. As you say, it mirrors on POSIX works with `/etc`.
  >
  > @mharbison72, are you okay with what Greg says?
  > I'll queue the patches up but not including this one for now. Thank, Greg! I don't really know what all these patches do, but the commit messages sound reasonable :)
  
  Yeah, I agree with that. My comment was mostly focused on what was to be indicated in the release notes.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7168/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7168

To: indygreg, #hg-reviewers, mharbison72
Cc: martinvonz, mharbison72, mercurial-devel
phabricator - Nov. 9, 2019, 1:38 a.m.
martinvonz added a comment.


  In D7168#107789 <https://phab.mercurial-scm.org/D7168#107789>, @mharbison72 wrote:
  
  > In D7168#107707 <https://phab.mercurial-scm.org/D7168#107707>, @martinvonz wrote:
  >
  >> In D7168#105270 <https://phab.mercurial-scm.org/D7168#105270>, @indygreg wrote:
  >>
  >>> In D7168#105269 <https://phab.mercurial-scm.org/D7168#105269>, @mharbison72 wrote:
  >>>
  >>>> Is it a good idea to encourage people to modify the installation directory?  I thought it was off limits on Windows, though a custom file does seem to survive an uninstall/install cycle of thg.
  >>>> I do miss having a global directory like `/etc/mercurial/hgrc.d`.  Loading relative to the exe isn't exactly global, since a vanilla hg vs a thg install will use different directories.  I wonder if we can slip in a global directory under %ProgramData% or %AppData% or similar.
  >>>
  >>> I agree that we should consider a better solution here. The compatibility story on Windows is not great and there's lots of room for improvement.
  >>> Looking in %ProgramData% or %AppData% in addition to a directory next to the executable and in your home directory feels appropriate. As you say, it mirrors on POSIX works with `/etc`.
  >>
  >> @mharbison72, are you okay with what Greg says?
  >> I'll queue the patches up but not including this one for now. Thank, Greg! I don't really know what all these patches do, but the commit messages sound reasonable :)
  >
  > Yeah, I agree with that. My comment was mostly focused on what was to be indicated in the release notes.
  
  Thanks! I'll queue the rest of the series as well then.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7168/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7168

To: indygreg, #hg-reviewers, mharbison72
Cc: martinvonz, mharbison72, mercurial-devel

Patch

diff --git a/contrib/packaging/inno/mercurial.iss b/contrib/packaging/inno/mercurial.iss
--- a/contrib/packaging/inno/mercurial.iss
+++ b/contrib/packaging/inno/mercurial.iss
@@ -48,11 +48,11 @@ 
 
 [INI]
 Filename: {app}\Mercurial.url; Section: InternetShortcut; Key: URL; String: https://mercurial-scm.org/
-Filename: {app}\default.d\editor.rc; Section: ui; Key: editor; String: notepad
+Filename: {app}\hgrc.d\editor.rc; Section: ui; Key: editor; String: notepad
 
 [UninstallDelete]
 Type: files; Name: {app}\Mercurial.url
-Type: filesandordirs; Name: {app}\default.d
+Type: filesandordirs; Name: {app}\hgrc.d
 
 [Icons]
 Name: {group}\Uninstall Mercurial; Filename: {uninstallexe}
diff --git a/contrib/packaging/hgpackaging/py2exe.py b/contrib/packaging/hgpackaging/py2exe.py
--- a/contrib/packaging/hgpackaging/py2exe.py
+++ b/contrib/packaging/hgpackaging/py2exe.py
@@ -45,7 +45,7 @@ 
     ('doc/*.html', 'doc/'),
     ('doc/style.css', 'doc/'),
     ('mercurial/help/**/*.txt', 'help/'),
-    ('mercurial/default.d/*.rc', 'default.d/'),
+    ('mercurial/default.d/*.rc', 'hgrc.d/'),
     ('mercurial/locale/**/*', 'locale/'),
     ('mercurial/templates/**/*', 'Templates/'),
     ('CONTRIBUTORS', 'Contributors.txt'),