From 4e4071ca7e20f4324a0741a3e75aa95db433cdef Mon Sep 17 00:00:00 2001 From: embs Date: Wed, 6 Dec 2017 10:56:12 -0300 Subject: [PATCH 1/2] Init submodules when initializing repository If specified remote repository (if any) does include submodules. --- gitless/core.py | 3 +++ gitless/tests/test_core.py | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/gitless/core.py b/gitless/core.py index 793bec1..7372485 100644 --- a/gitless/core.py +++ b/gitless/core.py @@ -86,6 +86,9 @@ def init_repository(url=None): continue new_b = repo.create_branch(rb.branch_name, rb.head) new_b.upstream = rb + + # Initialize submodules + git.submodule('update', '--init') return repo diff --git a/gitless/tests/test_core.py b/gitless/tests/test_core.py index 1ccda5a..3a3b195 100644 --- a/gitless/tests/test_core.py +++ b/gitless/tests/test_core.py @@ -878,12 +878,20 @@ def setUp(self): """Creates temporary local Git repo to use as the remote.""" super(TestRemote, self).setUp() + # Create a repo for including in remote as a submodule + self.submodule_repo_path = tempfile.mkdtemp(prefix='gl-remote-test-submodule') + os.chdir(self.submodule_repo_path) + submodule_repo = core.init_repository() + git.commit(allow_empty=True, m='Initialize submodule repository') + # Create a repo to use as the remote self.remote_path = tempfile.mkdtemp(prefix='gl-remote-test') os.chdir(self.remote_path) remote_repo = core.init_repository() remote_repo.create_branch( REMOTE_BRANCH, remote_repo.revparse_single('HEAD')) + git.submodule('add', self.submodule_repo_path) + git.commit('-m add submodule') # Go back to the original repo os.chdir(self.path) @@ -895,6 +903,18 @@ def tearDown(self): utils_lib.rmtree(self.remote_path) +class TestInitFromRemote(TestRemote): + + def test_clone_from_remote(self): + new_repo_path = tempfile.mkdtemp(prefix='gl-init-from-remote-test') + os.chdir(new_repo_path) + new_repo = core.init_repository(url=self.remote_path) + submodule_dir = os.path.basename(self.submodule_repo_path) + + self.assertFalse(len(os.listdir(submodule_dir)) == 0, + 'Submodules were not initialized') + + class TestRemoteCreate(TestRemote): def test_create_new(self): From e4ecb738484af130bf798da2895de01add32b6b3 Mon Sep 17 00:00:00 2001 From: embs Date: Wed, 6 Dec 2017 11:13:19 -0300 Subject: [PATCH 2/2] Fix appveyor build [Build][build] failed due to AppVeyor gitignore configuration: ``` ERROR: test_clone_from_remote (gitless.tests.test_core.TestInitFromRemote) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\projects\gitless\gitless\tests\test_core.py", line 893, in setUp git.submodule('add', self.submodule_repo_path) File "C:\Python27\lib\site-packages\pbs.py", line 456, in __call__ return RunningCommand(command_ran, process, call_args, actual_stdin) File "C:\Python27\lib\site-packages\pbs.py", line 168, in __init__ self._handle_exit_code(self.process.wait()) File "C:\Python27\lib\site-packages\pbs.py", line 235, in _handle_exit_code raise get_rc_exc(rc)(self.command_ran, self._stdout, self._stderr) ErrorReturnCode_1: Ran: u'git submodule add c:\\users\\appveyor\\appdata\\local\\temp\\1\\gl-remote-test-submodulest4nzk' STDOUT: STDERR: The following path is ignored by one of your .gitignore files: \users\appveyor\appdata\local\temp\1\gl-remote-test-submodulest4nzk Use -f if you really want to add it. ``` [build]: https://ci.appveyor.com/project/spderosso/gitless/build/1.0.38/job/8jrcs6sp23n39h94 --- gitless/tests/test_core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitless/tests/test_core.py b/gitless/tests/test_core.py index 3a3b195..0e2f3d4 100644 --- a/gitless/tests/test_core.py +++ b/gitless/tests/test_core.py @@ -890,7 +890,7 @@ def setUp(self): remote_repo = core.init_repository() remote_repo.create_branch( REMOTE_BRANCH, remote_repo.revparse_single('HEAD')) - git.submodule('add', self.submodule_repo_path) + git.submodule('add', '-f', self.submodule_repo_path) git.commit('-m add submodule') # Go back to the original repo