Before this patch, an answers file could remember answers to questions that were not present in the questionary.
STR:
1. In one project, apply one template that has a `.copier-answers.yml` file.
2. Now apply another template that has a different default value in `_answers_file`.
3. The second answers file would contain answers to the 1st template too.
@moduon MT-616
- if a template is vcs-tracked and dirty, the changes are committed automatically with a "wip" commit and propagated to the subproject
- user is warned in this scenario
- tests for copy and update on dirty templates
fixes#184
* allow overriden defaults in questionnaire
This works in conjunction with https://github.com/copier-org/copier/pull/476.
If partial answers are written out to a file, they can be re-loaded as
default overrides to whatever is specified in the template allowing one
to resume progress.
* fix failing test
* includes a unit-y test in it's own file, tests/test_interrupts.
* includes an integration test that verifies that we don't dump
a stacktrace. E.g. this test will fail if CopierAnswersInterrupt no
longer subclasses KeyboardInterrupt.
* update changelog with CopierAnswersInterrupt
When git 2.27 or newer is installed, we can add `--filter=blob:none` to avoid getting useless information from the git server. This makes clone much faster if your template has a big history.
Close https://github.com/copier-org/copier/issues/450 (it does not exactly fix it, but maybe makes it irrelevant).
In migration scripts, environment variables `$VERSION_FROM`, `$VERSION_CURRENT` and `$VERSION_TO` didn't always get a valid PEP440 version identifier, but the tag. Now we add the PEP440 variants of those variables, autogenerated with dunamai, and these are used instead to sort the versions. This will help comparing template evolution when doing a checkout to an untagged version, or when you happen to add a tag without `v` when the previous one had it. If you want to get the exact commit or version, you can still use the old variables in your scripts, so no backwards incompatibility is introduced. It should remove some false negatives when comparing those version strings.
Fixes https://github.com/copier-org/copier/issues/269.
The copier answers file (`.copier-answers.yml` by default) should be updated always, and everybody is almost excessively warned to NOT touch that file by hand and let Copier handle it. Thus, it makes no sense to ask users whether it should be updated on conflict.
Fixes https://github.com/copier-org/copier/issues/325.