You do realise that those files under sage/build/pkgs and sage/pkgs are 
actually symlinks to a single instance?

> On 15/04/2022, at 12:25, John H Palmieri <jhpalmier...@gmail.com> wrote:
> 
> I think your search is following some symbolic links: only three of these 
> instances are under version control (git):
> 
>     % git grep 'resolvelinks()'
>     sage:resolvelinks() {
>     src/bin/sage:resolvelinks() {
>     src/bin/sage-env:resolvelinks() {
> 
> The last one should probably have a comment in line with the first two.
> 
> 
> On Thursday, April 14, 2022 at 4:55:08 PM UTC-7 hohoa...@gmail.com wrote:
> Hi,
> 
> <quote>
> Personally, I would rather see the time spent investigating whether or
> not we truly need the symlink-free path in the instances where
> resolvelinks() is currently used. I would guess not -- that there is a
> better solution to whatever other problem prompted the resolvelinks()
> function. But I don't know what that problem was. And to remove the
> function and "see what happens" would be committing yourself to
> answering bug reports from weird sage installs for the next twelve
> months.
> </quote>
> 
> Now your concern is truly appreciated.
> 
>  "Find in File" in "Visual Studio Code" reveals duplications in 24 files in 
> 13 directories (please find the results appended below)
> 
> It is amazing that SageMath is still maintainable up to now,  release 9.6
> Maybe 'resolvelinks' is just  the tip of an iceberg (something more important 
> is missing?)
> 
> Best wishes,
> 
> phiho
> 
> # Query: resolvelinks()
> # ContextLines: 1
> 
> 24 results - 24 files
> 
> sage/sage:
>   32  # meantime however the two should be kept synchronized.
>   33: resolvelinks() {
>   34      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/build/pkgs/sagelib/src/bin/sage:
>   4  # the top-level "sage" script. Please keep them synchronized.
>   5: resolvelinks() {
>   6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/build/pkgs/sagelib/src/bin/sage-env:
>   35  #
>   36: resolvelinks() {
>   37      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/build/pkgs/sagemath_categories/src/bin/sage:
>   4  # the top-level "sage" script. Please keep them synchronized.
>   5: resolvelinks() {
>   6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/build/pkgs/sagemath_categories/src/bin/sage-env:
>   35  #
>   36: resolvelinks() {
>   37      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/build/pkgs/sagemath_objects/src/bin/sage:
>   4  # the top-level "sage" script. Please keep them synchronized.
>   5: resolvelinks() {
>   6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/build/pkgs/sagemath_objects/src/bin/sage-env:
>   35  #
>   36: resolvelinks() {
>   37      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagelib/src/bin/sage:
>   4  # the top-level "sage" script. Please keep them synchronized.
>   5: resolvelinks() {
>   6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagelib/src/bin/sage-env:
>   35  #
>   36: resolvelinks() {
>   37      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagelib/src/build/scripts-3.10/sage:
>   4  # the top-level "sage" script. Please keep them synchronized.
>   5: resolvelinks() {
>   6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagelib/src/build/scripts-3.10/sage-env:
>   35  #
>   36: resolvelinks() {
>   37      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagemath_categories/src/bin/sage:
>   4  # the top-level "sage" script. Please keep them synchronized.
>   5: resolvelinks() {
>   6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagemath_categories/src/bin/sage-env:
>   35  #
>   36: resolvelinks() {
>   37      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagemath_objects/src/bin/sage:
>   4  # the top-level "sage" script. Please keep them synchronized.
>   5: resolvelinks() {
>   6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagemath_objects/src/bin/sage-env:
>   35  #
>   36: resolvelinks() {
>   37      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sage-conf_pypi/sage_root/src/bin/sage-env:
>   35  #
>   36: resolvelinks() {
>   37      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sagemath-categories/bin/sage:
>   4  # the top-level "sage" script. Please keep them synchronized.
>   5: resolvelinks() {
>   6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sagemath-categories/bin/sage-env:
>   35  #
>   36: resolvelinks() {
>   37      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sagemath-objects/bin/sage:
>   4  # the top-level "sage" script. Please keep them synchronized.
>   5: resolvelinks() {
>   6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sagemath-objects/bin/sage-env:
>   35  #
>   36: resolvelinks() {
>   37      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sagemath-standard/bin/sage:
>   4  # the top-level "sage" script. Please keep them synchronized.
>   5: resolvelinks() {
>   6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/pkgs/sagemath-standard/bin/sage-env:
>   35  #
>   36: resolvelinks() {
>   37      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/src/bin/sage:
>   4  # the top-level "sage" script. Please keep them synchronized.
>   5: resolvelinks() {
>   6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> sage/src/bin/sage-env:
>   35  #
>   36: resolvelinks() {
>   37      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
> # Query: resolvelinks 
> # ContextLines: 1
> 
> 36 results - 24 files
> 
> sage/sage:
>   110      # resolved
>   111:     SAGE_ROOT=`resolvelinks "$0"` || \
>   112      SAGE_ROOT="$0"
> 
> sage/build/pkgs/sagelib/src/bin/sage:
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/build/pkgs/sagelib/src/bin/sage-env:
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/build/pkgs/sagemath_categories/src/bin/sage:
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/build/pkgs/sagemath_categories/src/bin/sage-env:
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/build/pkgs/sagemath_objects/src/bin/sage:
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/build/pkgs/sagemath_objects/src/bin/sage-env:
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagelib/src/bin/sage:
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagelib/src/bin/sage-env:
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagelib/src/build/scripts-3.10/sage:
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagelib/src/build/scripts-3.10/sage-env:
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagemath_categories/src/bin/sage:
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagemath_categories/src/bin/sage-env:
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagemath_objects/src/bin/sage:
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagemath_objects/src/bin/sage-env:
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sage-conf_pypi/sage_root/src/bin/sage-env:
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sagemath-categories/bin/sage:
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sagemath-categories/bin/sage-env:
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sagemath-objects/bin/sage:
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sagemath-objects/bin/sage-env:
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sagemath-standard/bin/sage:
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sagemath-standard/bin/sage-env:
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/src/bin/sage:
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/src/bin/sage-env:
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> (resolvelinks()  and   resolvelinks combined)
> 
> # Query: resolvelinks
> # ContextLines: 1
> 
> 60 results - 24 files
> 
> sage/sage:
>    32  # meantime however the two should be kept synchronized.
>    33: resolvelinks() {
>    34      # $in is what still needs to be converted (normally has no 
> starting slash)
> 
>   110      # resolved
>   111:     SAGE_ROOT=`resolvelinks "$0"` || \
>   112      SAGE_ROOT="$0"
> 
> sage/build/pkgs/sagelib/src/bin/sage:
>    4  # the top-level "sage" script. Please keep them synchronized.
>    5: resolvelinks() {
>    6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/build/pkgs/sagelib/src/bin/sage-env:
>    35  #
>    36: resolvelinks() {
>    37      # $in is what still needs to be converted (normally has no 
> starting slash)
> 
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/build/pkgs/sagemath_categories/src/bin/sage:
>    4  # the top-level "sage" script. Please keep them synchronized.
>    5: resolvelinks() {
>    6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/build/pkgs/sagemath_categories/src/bin/sage-env:
>    35  #
>    36: resolvelinks() {
>    37      # $in is what still needs to be converted (normally has no 
> starting slash)
> 
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/build/pkgs/sagemath_objects/src/bin/sage:
>    4  # the top-level "sage" script. Please keep them synchronized.
>    5: resolvelinks() {
>    6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/build/pkgs/sagemath_objects/src/bin/sage-env:
>    35  #
>    36: resolvelinks() {
>    37      # $in is what still needs to be converted (normally has no 
> starting slash)
> 
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagelib/src/bin/sage:
>    4  # the top-level "sage" script. Please keep them synchronized.
>    5: resolvelinks() {
>    6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagelib/src/bin/sage-env:
>    35  #
>    36: resolvelinks() {
>    37      # $in is what still needs to be converted (normally has no 
> starting slash)
> 
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagelib/src/build/scripts-3.10/sage:
>    4  # the top-level "sage" script. Please keep them synchronized.
>    5: resolvelinks() {
>    6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagelib/src/build/scripts-3.10/sage-env:
>    35  #
>    36: resolvelinks() {
>    37      # $in is what still needs to be converted (normally has no 
> starting slash)
> 
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagemath_categories/src/bin/sage:
>    4  # the top-level "sage" script. Please keep them synchronized.
>    5: resolvelinks() {
>    6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagemath_categories/src/bin/sage-env:
>    35  #
>    36: resolvelinks() {
>    37      # $in is what still needs to be converted (normally has no 
> starting slash)
> 
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagemath_objects/src/bin/sage:
>    4  # the top-level "sage" script. Please keep them synchronized.
>    5: resolvelinks() {
>    6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sage-conf_pypi/sage_root/build/pkgs/sagemath_objects/src/bin/sage-env:
>    35  #
>    36: resolvelinks() {
>    37      # $in is what still needs to be converted (normally has no 
> starting slash)
> 
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sage-conf_pypi/sage_root/src/bin/sage-env:
>    35  #
>    36: resolvelinks() {
>    37      # $in is what still needs to be converted (normally has no 
> starting slash)
> 
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sagemath-categories/bin/sage:
>    4  # the top-level "sage" script. Please keep them synchronized.
>    5: resolvelinks() {
>    6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sagemath-categories/bin/sage-env:
>    35  #
>    36: resolvelinks() {
>    37      # $in is what still needs to be converted (normally has no 
> starting slash)
> 
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sagemath-objects/bin/sage:
>    4  # the top-level "sage" script. Please keep them synchronized.
>    5: resolvelinks() {
>    6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sagemath-objects/bin/sage-env:
>    35  #
>    36: resolvelinks() {
>    37      # $in is what still needs to be converted (normally has no 
> starting slash)
> 
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/pkgs/sagemath-standard/bin/sage:
>    4  # the top-level "sage" script. Please keep them synchronized.
>    5: resolvelinks() {
>    6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/pkgs/sagemath-standard/bin/sage-env:
>    35  #
>    36: resolvelinks() {
>    37      # $in is what still needs to be converted (normally has no 
> starting slash)
> 
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> sage/src/bin/sage:
>    4  # the top-level "sage" script. Please keep them synchronized.
>    5: resolvelinks() {
>    6      # $in is what still needs to be converted (normally has no starting 
> slash)
> 
>   80  # a symlink (Trac #30888).
>   81: SELF=$(resolvelinks "${0}")
>   82  
> 
> sage/src/bin/sage-env:
>    35  #
>    36: resolvelinks() {
>    37      # $in is what still needs to be converted (normally has no 
> starting slash)
> 
>   338      # non-existing directory.
>   339:     DOT_SAGE=`resolvelinks "$HOME/.sage"`
>   340  
> 
>   630          # The activate script needs to be sourced using its actual 
> path.
>   631:         nodeenv_activate=`resolvelinks "$nodeenv_activate"`
>   632  
> 
> 
> On Wed, Apr 13, 2022 at 11:21 PM Michael Orlitzky <mic...@orlitzky.com> wrote:
> On Wed, 2022-04-13 at 19:36 -0700, ph h wrote:
> > Dear All,
> > 
> > At the top of 'sage/src/bin/sage' script:
> > 
> > <quote>
> > # WARNING: this function is copy/pasted from both src/bin/sage-env and
> > # the top-level "sage" script. Please keep them synchronized.
> > resolvelinks() {
> > </quote>
> > 
> > Is there any other way to keep them in sync without using Copy&Paste?
> > 
> 
> I think I'm at least partly responsible for that. There are a few ways
> we could de-duplicate those scripts, but it's not clear that any of
> them are less complex or easier to maintain than copy/paste for now.
> 
> Personally, I would rather see the time spent investigating whether or
> not we truly need the symlink-free path in the instances where
> resolvelinks() is currently used. I would guess not -- that there is a
> better solution to whatever other problem prompted the resolvelinks()
> function. But I don't know what that problem was. And to remove the
> function and "see what happens" would be committing yourself to
> answering bug reports from weird sage installs for the next twelve
> months.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sage-devel+...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sage-devel/2deae4f7c986bad7542756d2ff32189f99d2a7db.camel%40orlitzky.com.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sage-devel+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sage-devel/2f6814e0-701b-4c55-a119-e49d94ecf5can%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/24D0A04C-6AD9-42BC-A303-681D952247E1%40gmail.com.

Reply via email to