Merge pull request #1217 from LLNL/features/git-submodule-init
Add `submodules` option for git fetching.
This commit is contained in:
commit
78ac11ff88
@ -604,6 +604,7 @@ Git fetching is enabled with the following parameters to ``version``:
|
||||
* ``tag``: name of a tag to fetch.
|
||||
* ``branch``: name of a branch to fetch.
|
||||
* ``commit``: SHA hash (or prefix) of a commit to fetch.
|
||||
* ``submodules``: Also fetch submodules when checking out this repository.
|
||||
|
||||
Only one of ``tag``, ``branch``, or ``commit`` can be used at a time.
|
||||
|
||||
@ -660,6 +661,17 @@ Commits
|
||||
could just use the abbreviated commit hash. It's up to the package
|
||||
author to decide what makes the most sense.
|
||||
|
||||
Submodules
|
||||
|
||||
You can supply ``submodules=True`` to cause Spack to fetch submodules
|
||||
along with the repository at fetch time.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
version('1.0.1', git='https://github.com/example-project/example.git',
|
||||
tag='v1.0.1', submdoules=True)
|
||||
|
||||
|
||||
Installing
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
|
@ -366,8 +366,8 @@ def fetch(self):
|
||||
try:
|
||||
self.check()
|
||||
except ChecksumError:
|
||||
# Future fetchers will assume they don't need to download if the
|
||||
# file remains
|
||||
# Future fetchers will assume they don't need to
|
||||
# download if the file remains
|
||||
os.remove(self.archive_file)
|
||||
raise
|
||||
|
||||
@ -517,6 +517,7 @@ def __init__(self, **kwargs):
|
||||
super(GitFetchStrategy, self).__init__(
|
||||
'git', 'tag', 'branch', 'commit', **forwarded_args)
|
||||
self._git = None
|
||||
self.submodules = kwargs.get('submodules', False)
|
||||
|
||||
@property
|
||||
def git_version(self):
|
||||
@ -595,6 +596,10 @@ def fetch(self):
|
||||
self.git('pull', '--tags', ignore_errors=1)
|
||||
self.git('checkout', self.tag)
|
||||
|
||||
# Init submodules if the user asked for them.
|
||||
if self.submodules:
|
||||
self.git('submodule', 'update', '--init')
|
||||
|
||||
def archive(self, destination):
|
||||
super(GitFetchStrategy, self).archive(destination, exclude='.git')
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user