diff options
author | Michael Kuhn <suraia@ikkoku.de> | 2018-12-19 23:33:58 +0100 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2018-12-19 14:33:58 -0800 |
commit | 67ab73d3819e46d15de45bc824d73efc3626d3bd (patch) | |
tree | 7dd924b7057dc070b7dca8d9ea094d8510d6cf27 /lib/spack | |
parent | 5f3d9a40765b875540823cbc5935fdb0d05b1d74 (diff) | |
download | spack-67ab73d3819e46d15de45bc824d73efc3626d3bd.tar.gz spack-67ab73d3819e46d15de45bc824d73efc3626d3bd.tar.bz2 spack-67ab73d3819e46d15de45bc824d73efc3626d3bd.tar.xz spack-67ab73d3819e46d15de45bc824d73efc3626d3bd.zip |
fetch_strategy: improve GitFetchStrategy (#10153)
Currently, only the Git repsository's URL shows up in the `spack info`
output, which makes it hard to distinguish different versions:
```
Safe versions:
develop [git] https://github.com/LLNL/H5Z-ZFP.git
0.8.0 [git] https://github.com/LLNL/H5Z-ZFP.git
0.7.0 [git] https://github.com/LLNL/H5Z-ZFP.git
```
This change adds additional information as shown when cloning a Git
repository:
```
Safe versions:
develop [git] https://github.com/LLNL/H5Z-ZFP.git on branch master
0.8.0 [git] https://github.com/LLNL/H5Z-ZFP.git at commit af165c4
0.7.0 [git] https://github.com/LLNL/H5Z-ZFP.git at commit 58ac811
```
Diffstat (limited to 'lib/spack')
-rw-r--r-- | lib/spack/spack/fetch_strategy.py | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py index 8cabfa10ac..a4dff2120b 100644 --- a/lib/spack/spack/fetch_strategy.py +++ b/lib/spack/spack/fetch_strategy.py @@ -571,7 +571,8 @@ class GitFetchStrategy(VCSFetchStrategy): You can use these three optional attributes in addition to ``git``: - * ``branch``: Particular branch to build from (default is master) + * ``branch``: Particular branch to build from (default is the + repository's default branch) * ``tag``: Particular tag to check out * ``commit``: Particular commit hash in the repo """ @@ -620,20 +621,24 @@ class GitFetchStrategy(VCSFetchStrategy): if output: return output.split()[0] - def fetch(self): - if self.stage.source_path: - tty.msg("Already fetched %s" % self.stage.source_path) - return - + def _repo_info(self): args = '' + if self.commit: - args = 'at commit %s' % self.commit + args = ' at commit {0}'.format(self.commit) elif self.tag: - args = 'at tag %s' % self.tag + args = ' at tag {0}'.format(self.tag) elif self.branch: - args = 'on branch %s' % self.branch + args = ' on branch {0}'.format(self.branch) + + return '{0}{1}'.format(self.url, args) + + def fetch(self): + if self.stage.source_path: + tty.msg("Already fetched {0}".format(self.stage.source_path)) + return - tty.msg("Cloning git repository: %s %s" % (self.url, args)) + tty.msg("Cloning git repository: {0}".format(self._repo_info())) git = self.git if self.commit: @@ -722,7 +727,7 @@ class GitFetchStrategy(VCSFetchStrategy): self.git('clean', '--quiet', '-f') def __str__(self): - return "[git] %s" % self.url + return '[git] {0}'.format(self._repo_info()) class SvnFetchStrategy(VCSFetchStrategy): |