Add handling for no ref being provided
We do not need to checkout a specific ref if none is provided. Added a
test to check the behaviour.
MODIFY
repo2docker/app.py
repo2docker/app.py
@@ -144,6 +144,9 @@ class Repo2Docker(Application):
# create a shallow clone first
_clone(depth=50)
+ # ref == None means we want to use HEAD so no need to checkout a
+ # specific revision
+ if ref is not None:
if not _contains(ref):
# have to create a full clone
_unshallow()

MODIFY
tests/conftest.py
tests/conftest.py
@@ -51,9 +51,8 @@ class RemoteRepoTest(pytest.Item):
self.verify = verify
def runtest(self):
- subprocess.check_call([
- 'jupyter-repo2docker',
- '--ref', self.ref,
- self.url,
- '--',
- ] + shlex.split(self.verify))
+ if self.ref is not None:
+ cmd = ['jupyter-repo2docker', '--ref', self.ref, self.url, '--']
+ else:
+ cmd = ['jupyter-repo2docker', self.url, '--']
+ subprocess.check_call(cmd + shlex.split(self.verify))

MODIFY
tests/external/shallow-clone.repos.yaml
tests/external/shallow-clone.repos.yaml
# we checkout the second to last commit, hence the log has 49 entries at a
# max clone depth of 50
verify: /bin/bash -c '[ $(git log --oneline | wc -l) == "49" ]'
+
+- name: A dummy repo with 100 commits - live at HEAD
+ url: https://github.com/betatim/repo2docker-ci-clone-depth
+ # provide no ref, aka use HEAD, aka the 100th commit
+ ref: NULL
+ verify: python -c "commit = open('COMMIT').read(); assert int(commit) == 100, 'this is not the 100th commit'"

Add handling for no ref being provided

We do not need to checkout a specific ref if none is provided. Added a
test to check the behaviour.