diff --git a/pre_commit/commands/autoupdate.py b/pre_commit/commands/autoupdate.py index 5e804c14..05187b85 100644 --- a/pre_commit/commands/autoupdate.py +++ b/pre_commit/commands/autoupdate.py @@ -108,7 +108,9 @@ def _write_new_config(path, rev_infos): new_rev_s = ordered_dump({'rev': rev_info.rev}, **C.YAML_DUMP_KWARGS) new_rev = new_rev_s.split(':', 1)[1].strip() if rev_info.frozen is not None: - comment = ' # {}'.format(rev_info.frozen) + comment = ' # frozen: {}'.format(rev_info.frozen) + elif match.group(4).strip().startswith('# frozen:'): + comment = '' else: comment = match.group(4) lines[idx] = REV_LINE_FMT.format( diff --git a/tests/commands/autoupdate_test.py b/tests/commands/autoupdate_test.py index 9a725588..f8ea084e 100644 --- a/tests/commands/autoupdate_test.py +++ b/tests/commands/autoupdate_test.py @@ -312,9 +312,14 @@ def test_autoupdate_freeze(tagged, in_tmpdir, store): assert autoupdate(C.CONFIG_FILE, store, freeze=True, tags_only=False) == 0 with open(C.CONFIG_FILE) as f: - expected = 'rev: {} # v1.2.3'.format(tagged.head_rev) + expected = 'rev: {} # frozen: v1.2.3'.format(tagged.head_rev) assert expected in f.read() + # if we un-freeze it should remove the frozen comment + assert autoupdate(C.CONFIG_FILE, store, freeze=False, tags_only=False) == 0 + with open(C.CONFIG_FILE) as f: + assert 'rev: v1.2.3\n' in f.read() + def test_autoupdate_tags_only(tagged, in_tmpdir, store): # add some commits after the tag