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.
|
* ``tag``: name of a tag to fetch.
|
||||||
* ``branch``: name of a branch to fetch.
|
* ``branch``: name of a branch to fetch.
|
||||||
* ``commit``: SHA hash (or prefix) of a commit 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.
|
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
|
could just use the abbreviated commit hash. It's up to the package
|
||||||
author to decide what makes the most sense.
|
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
|
Installing
|
||||||
^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
@ -366,8 +366,8 @@ def fetch(self):
|
|||||||
try:
|
try:
|
||||||
self.check()
|
self.check()
|
||||||
except ChecksumError:
|
except ChecksumError:
|
||||||
# Future fetchers will assume they don't need to download if the
|
# Future fetchers will assume they don't need to
|
||||||
# file remains
|
# download if the file remains
|
||||||
os.remove(self.archive_file)
|
os.remove(self.archive_file)
|
||||||
raise
|
raise
|
||||||
|
|
||||||
@ -517,6 +517,7 @@ def __init__(self, **kwargs):
|
|||||||
super(GitFetchStrategy, self).__init__(
|
super(GitFetchStrategy, self).__init__(
|
||||||
'git', 'tag', 'branch', 'commit', **forwarded_args)
|
'git', 'tag', 'branch', 'commit', **forwarded_args)
|
||||||
self._git = None
|
self._git = None
|
||||||
|
self.submodules = kwargs.get('submodules', False)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def git_version(self):
|
def git_version(self):
|
||||||
@ -595,6 +596,10 @@ def fetch(self):
|
|||||||
self.git('pull', '--tags', ignore_errors=1)
|
self.git('pull', '--tags', ignore_errors=1)
|
||||||
self.git('checkout', self.tag)
|
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):
|
def archive(self, destination):
|
||||||
super(GitFetchStrategy, self).archive(destination, exclude='.git')
|
super(GitFetchStrategy, self).archive(destination, exclude='.git')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user