diff --git a/pre_commit/commands/autoupdate.py b/pre_commit/commands/autoupdate.py index ca8f9bb1..5ba5a8eb 100644 --- a/pre_commit/commands/autoupdate.py +++ b/pre_commit/commands/autoupdate.py @@ -116,11 +116,12 @@ def autoupdate(runner, tags_only, repo=None): input_config = load_config(runner.config_file_path) for repo_config in input_config['repos']: - # Skip any repo_configs that aren't the specified repo - if repo and repo != repo_config['repo']: - continue - - if is_local_repo(repo_config) or is_meta_repo(repo_config): + if ( + is_local_repo(repo_config) or + is_meta_repo(repo_config) or + # Skip updating any repo_configs that aren't for the specified repo + repo and repo != repo_config['repo'] + ): output_repos.append(repo_config) continue output.write('Updating {}...'.format(repo_config['repo'])) diff --git a/tests/commands/autoupdate_test.py b/tests/commands/autoupdate_test.py index c78af1fb..ee20c7dd 100644 --- a/tests/commands/autoupdate_test.py +++ b/tests/commands/autoupdate_test.py @@ -127,10 +127,12 @@ def test_autoupdate_out_of_date_repo( def test_autoupdate_out_of_date_repo_with_correct_repo_name( out_of_date_repo, in_tmpdir, mock_out_store_directory, ): - # Write out the config - config = make_config_from_repo( + stale_config = make_config_from_repo( out_of_date_repo.path, sha=out_of_date_repo.original_sha, check=False, ) + local_config = config_with_local_hooks() + config = {'repos': [stale_config, local_config]} + # Write out the config write_config('.', config) runner = Runner('.', C.CONFIG_FILE) @@ -141,6 +143,7 @@ def test_autoupdate_out_of_date_repo_with_correct_repo_name( assert ret == 0 assert before != after assert out_of_date_repo.head_sha in after + assert local_config['repo'] in after def test_autoupdate_out_of_date_repo_with_wrong_repo_name(