【发布时间】:2018-04-22 23:08:16
【问题描述】:
在 pip 中从 GitHub 安装包,是否可以获得我正在安装的提交版本和日期? (这可能对调试和测试控制有用)。
【问题讨论】:
在 pip 中从 GitHub 安装包,是否可以获得我正在安装的提交版本和日期? (这可能对调试和测试控制有用)。
【问题讨论】:
如果您下载任何类型的 git 项目,您可以使用 git 命令查看历史记录。例如git log HEAD~1..HEAD 会给你关于最近提交的信息。如果您只想打印缩写的提交哈希和日期,您可以执行类似的操作
git log HEAD~1..HEAD --format="%h %ad"
【讨论】:
git 命令。
git log HEAD~1..HEAD 可以更好地拼写为git show。
git show 与git log 不一样,我想如果作者接受它,他会在答案中找到一些用处。尽管如此,分数还是不错的。
git log -1,即:git log -1 --format="%h %ad"
如果您以可编辑方式 (-e git+...) 安装,则可以使用 git cli 直接查询信息。
例如:
$ pip install -e 'git+https://github.com/pre-commit/pre-commit#egg=pre-commit'
...
$ python
...
>>> import os
>>> import subprocess
>>> import pre_commit
>>> pre_commit.__file__
'/tmp/test/venv/src/pre-commit/pre_commit/__init__.py'
>>> subprocess.check_output(('git', '-C', os.path.dirname(pre_commit.__file__), 'log', '-1', '--format=%H %cd'))
b'834ed0f229a39c986b241374f6d338632e003b5f Sat Mar 17 20:40:02 2018 -0700\n'
这滥用了这样一个事实,即当您以“可编辑”方式安装 git 存储库时,pip 会克隆存储库并将其保存在 $PREFIX/src(在我的情况下为 ./venv/src)。请注意,如果没有--editable,pip 只会临时克隆存储库,并且 git 修订历史记录将无法访问。
【讨论】: