If I install a package from git using https://pip.pypa.io/en/stable/reference/pip_install/#git does the specific commit that was checked out logged somewhere?
To do so, we can use the pip list -o or pip list --outdated command, which returns a list of packages with the version currently installed and the latest available. On the other hand, to list out all the packages that are up to date, we can use the pip list -u or pip list --uptodate command.
Pip is a package manager of python. You can download Python libraries from some Python repositories like PyPI . You can also download libraries from a git repository.
Pip Check Command – Check Python Dependencies After Installation. Because pip doesn't currently address dependency issues on installation, the pip check command option can be used to verify that dependencies have been installed properly in your project.
By default, pip installs packages located in the Python Package Index (PyPI), but can also install from other indexes.
You could use knittl's idea to find the nearest commit -- the only modification below is to address the fact that you are comparing the git tree to an installed package, not a git repository:
Since the installed package may lack some of the directory structure of the git
repository, make a new directory for the git repo. I'll use html5lib
for an example:
mkdir ~/tmp/html5lib
cd ~/tmp/html5lib/
git init
Now fetch the git tree:
git remote add foreign https://github.com/html5lib/html5lib-python
git fetch foreign
Copy the installed package into the git repo:
rsync -a ~/.virtualenvs/muffy/lib/python3.4/site-packages/html5lib ~/tmp/html5lib/
Run git diff
to compare the current state of the repo (with the installed package's code) to each revision in the git tree:
for REV in $(git rev-list --all); do
echo $(git diff --shortstat foreign/master $REV) $REV ;
done | sort -n
This sorts by the number of files changed, then the number of insertions, then deletions. The output will look something like this:
1 file changed, 3 insertions(+), 1 deletion(-) 17499b9763a090f7715af49555d21fe4b558958b
2 files changed, 10 insertions(+), 8 deletions(-) ec674a97243e76da43f06abfd0a891308f1ff801
3 files changed, 17 insertions(+), 12 deletions(-) 1a28d721091a2c433c6e8471d14cbb75afd70d1c
4 files changed, 18 insertions(+), 13 deletions(-) ff6111cd82191a2eb963d6d662c6da8fa2e7ddde
6 files changed, 19 insertions(+), 19 deletions(-) ea0fafdbff732b1272140b696d6948054ed1d6d2
The last item on each line is the associated git commit.
If the git history is very long you'll want to modify git rev-list --all
to a range of commits. For example, use git rev-list tag1..tag2
to search between two tags. If you know approximately when the package was installed, you might have a good guess for what tags to use. Use git tag
to show the names of the possible tags.
See the docs for more options.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With