Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
just-test-code opened this issue Sep 5, 2024 · 8 comments
Labels
enhancement New feature or request

Comments

@just-test-code
Copy link

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 just-test-code added the enhancement New feature or request label Sep 5, 2024
@fangzhengjin
Copy link
Contributor

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

@fangzhengjin
Copy link
Contributor

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

@bytemain
Copy link
Member

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

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

@fangzhengjin
Copy link
Contributor

fangzhengjin commented Sep 30, 2024

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

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

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

@jan-bar
Copy link
Contributor

jan-bar commented Sep 30, 2024

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

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

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

@fangzhengjin
Copy link
Contributor

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

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

我觉得应该优化项目级别的管理方式,当使用项目级别时在该项目目录下创建相关文件,这样路径就固定了。 可以设置类似这种 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的地址即可,似乎没有必须要存在这个软连接的必要

@jan-bar
Copy link
Contributor

jan-bar commented Sep 30, 2024

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

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

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

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

@fangzhengjin
Copy link
Contributor

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

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

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

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

了解了 谢谢解答

@aooohan aooohan closed this as completed Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants