vfox icon indicating copy to clipboard operation
vfox copied to clipboard

[Feature]: 能否关闭每开一个shell就创建一个临时目录的功能?

Open just-test-code opened this issue 1 year ago • 8 comments

1. Your usage scenarios?

能否关闭每开一个shell就创建一个临时目录的功能?

2. What is your expected outcome?

其实在环境变量中有 C:\Users\username\.version-fox\cache\python\current 就行了 根本不需要开一个shell就再生成一个目录添加C:\Users\username\.version-fox\temp\<乱数>\python\到环境变量

just-test-code avatar Sep 05 '24 08:09 just-test-code

那肯定是不行的咯,current是全局的配置,但是你每个目录又不一定用全局的配置

fangzhengjin avatar Sep 29 '24 06:09 fangzhengjin

如果按你说的改了 那就会出现一个在任意窗口调整sdk版本全局版本都会变的bug

fangzhengjin avatar Sep 29 '24 06:09 fangzhengjin

似乎还有个比较好的方案是我们优化一下这个路径的命名,每个版本的 python 路径都只创建一次:

C:\Users\username.version-fox\temp\python\current C:\Users\username.version-fox\temp\python\3.10.12

bytemain avatar Sep 30 '24 02:09 bytemain

似乎还有个比较好的方案是我们优化一下这个路径的命名,每个版本的 python 路径都只创建一次:

C:\Users\username.version-fox\temp\python\current C:\Users\username.version-fox\temp\python\3.10.12

如果是这样的话,似乎没有创建临时路径的必要? 只需要有一个配置文件记录当前的所有已经设置的sdk全局版本,在shell中切换版本时只需要将sdk的home环境变量刷新上下文到具体路径即可?

fangzhengjin avatar Sep 30 '24 02:09 fangzhengjin

如果是这样的话,似乎没有创建临时路径的必要?

临时目录是为了会话级别的管理,我觉得这个很有必要,开启不同的终端时每个终端都可以设置各自的版本。

我觉得应该优化项目级别的管理方式,当使用项目级别时在该项目目录下创建相关文件,这样路径就固定了。 可以设置类似这种 PATH=$PWD/.vfox/python:$HOME/.version-fox/temp/xxx/python ,优先使用项目级别路径,当从项目级别切换为会话级别时,将 PATH 移除 $PWD/.vfox/python 这部分。

jan-bar avatar Sep 30 '24 03:09 jan-bar

如果是这样的话,似乎没有创建临时路径的必要?

临时目录是为了会话级别的管理,我觉得这个很有必要,开启不同的终端时每个终端都可以设置各自的版本。

我觉得应该优化项目级别的管理方式,当使用项目级别时在该项目目录下创建相关文件,这样路径就固定了。 可以设置类似这种 PATH=$PWD/.vfox/python:$HOME/.version-fox/temp/xxx/python ,优先使用项目级别路径,当从项目级别切换为会话级别时,将 PATH 移除 $PWD/.vfox/python 这部分。

还是有点疑惑,会话级别的管理跟临时目录关系好像不是很大,临时目录实质上只是一个软连接

那么抛开这个软连接,直接将实际地址更新到当前会话的PATH中不就可以了吗?这个软连接存在的必要性是什么呢?

比如我设置了全局Java版本是1.8

会话开启默认加载JAVA_HOME$HOME/.version-fox/cache/java/1.8

如果在其他会话临时切换了版本,只需要在当前操作的会话重新设置JAVA_HOME的地址即可,似乎没有必须要存在这个软连接的必要

fangzhengjin avatar Sep 30 '24 03:09 fangzhengjin

@fangzhengjin vfox早期版本就是设置 PATH 路径,每次切换版本都要重新设置 PATH,甚至Java还需要设置额外的JAVA_HOME环境变量,后来改为使用临时目录方案。此时只需要启动时生成临时目录,设置全部环境变量,后续切换版本只需要修改软连接,参考这次版本变更:https://github.com/version-fox/vfox/compare/v0.4.2...v0.5.0 ,目录软连接解决了很多 固定路径+设置PATH变量 导致的问题。

我以前用的 https://github.com/Schniz/fnm , https://github.com/voidint/g 也是使用目录软连接。

现在是想要固定路径,例如这个问题 https://github.com/version-fox/vfox/issues/290

所以我才想要在项目级别的设计上进行优化,毕竟项目级别会有具体项目路径,比较适合做固定路径这种逻辑额。

jan-bar avatar Sep 30 '24 03:09 jan-bar

@fangzhengjin vfox早期版本就是设置 PATH 路径,每次切换版本都要重新设置 PATH,甚至Java还需要设置额外的JAVA_HOME环境变量,后来改为使用临时目录方案。此时只需要启动时生成临时目录,设置全部环境变量,后续切换版本只需要修改软连接,参考这次版本变更:v0.4.2...v0.5.0 ,目录软连接解决了很多 固定路径+设置PATH变量 导致的问题。

我以前用的 Schniz/fnm , voidint/g 也是使用目录软连接。

现在是想要固定路径,例如这个问题 #290

所以我才想要在项目级别的设计上进行优化,毕竟项目级别会有具体项目路径,比较适合做固定路径这种逻辑额。

了解了 谢谢解答

fangzhengjin avatar Sep 30 '24 07:09 fangzhengjin