summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMichael Kuhn <suraia@ikkoku.de>2018-12-19 23:33:58 +0100
committerTodd Gamblin <tgamblin@llnl.gov>2018-12-19 14:33:58 -0800
commit67ab73d3819e46d15de45bc824d73efc3626d3bd (patch)
tree7dd924b7057dc070b7dca8d9ea094d8510d6cf27 /lib
parent5f3d9a40765b875540823cbc5935fdb0d05b1d74 (diff)
downloadspack-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')
-rw-r--r--lib/spack/spack/fetch_strategy.py27
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):