Skip to content

Use short hashes for patches #7694

@adamjstewart

Description

@adamjstewart

When you run spack spec on a package with patches, it displays full length patch hashes.

Before

$ spack spec gcc
...
[email protected]%[email protected]~binutils languages=c,c++,fortran patches=ecc5ac43951b34cbc5db15f585b4e704c42e2e487f9ed4c24fadef3f3857930b ~piclibs~strip arch=darwin-highsierra-x86_64 
    ^[email protected]%[email protected] arch=darwin-highsierra-x86_64 
        ^[email protected]%[email protected] arch=darwin-highsierra-x86_64 
            ^[email protected]%[email protected] patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,c0a408fbffb7255fcc75e26bd8edab116fc81d216bfd18b473668b7739a4158e +sigsegv arch=darwin-highsierra-x86_64 
...

These patch hashes aren't particularly useful, as you can't specify which patches to use on the command line anyway. I propose the following changes.

After

By default, no hashes are shown:

$ spack spec gcc
...
[email protected]%[email protected]~binutils languages=c,c++,fortran ~piclibs~strip arch=darwin-highsierra-x86_64 
    ^[email protected]%[email protected] arch=darwin-highsierra-x86_64 
        ^[email protected]%[email protected] arch=darwin-highsierra-x86_64 
            ^[email protected]%[email protected] +sigsegv arch=darwin-highsierra-x86_64 
...

When --long is supplied, short hash prefixes are displayed:

$ spack spec --long gcc
...
mbr7sk2  [email protected]%[email protected]~binutils languages=c,c++,fortran patches=ecc5ac4 ~piclibs~strip arch=darwin-highsierra-x86_64 
vvoefua      ^[email protected]%[email protected] arch=darwin-highsierra-x86_64 
74niupl          ^[email protected]%[email protected] arch=darwin-highsierra-x86_64 
c5q6jjk              ^[email protected]%[email protected] patches=3877ab5,c0a408f +sigsegv arch=darwin-highsierra-x86_64 

When --very-long is chosen, the full hashes are shown:

$ spack spec --very-long gcc
...
mbr7sk2tsbqktrjnuq75kdi6vq7obegy  [email protected]%[email protected]~binutils languages=c,c++,fortran patches=ecc5ac43951b34cbc5db15f585b4e704c42e2e487f9ed4c24fadef3f3857930b ~piclibs~strip arch=darwin-highsierra-x86_64 
vvoefuai3hzh7eughdxbihgqsnpvizsn      ^[email protected]%[email protected] arch=darwin-highsierra-x86_64 
74niuplengavsakhoomvp3lzw7epwosc          ^[email protected]%[email protected] arch=darwin-highsierra-x86_64 
c5q6jjkr7uwa3si5rh7y56uf4jvzwg7r              ^[email protected]%[email protected] patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,c0a408fbffb7255fcc75e26bd8edab116fc81d216bfd18b473668b7739a4158e +sigsegv arch=darwin-highsierra-x86_64 
...

EDIT: edited to provide clarity as to what I'm looking for

@scottwittenburg

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions