You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: NEWS.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,8 @@
4
4
5
5
- Better estimation of time remaining, based on the time taken to test mutants so far, excluding the time for the baseline.
6
6
7
+
- New: `--copy-vcs` option and config option will copy `.git` and other VCS directories, to accommodate trees whose tests depend on the contents or presence of the VCS directory.
8
+
7
9
## 24.11.2
8
10
9
11
- Changed: `.gitignore` (and other git ignore files) are only consulted when copying the tree if it is contained within a directory with a `.git` directory.
cargo-mutants builds mutated code in a temporary directory, containing a copy of your source tree with each mutant successively applied. With `--jobs`, multiple build directories are used in parallel.
3
+
By default, cargo-mutants copies your tree to a temporary directory before mutating and building it. This behavior is turned of by the [`--in-place`](in-place.md) option, which builds mutated code in the original source directory.
4
4
5
-
## Build-in ignores
5
+
When the [`--jobs`](parallelism.md) option is used, one build directory is created per job.
6
6
7
-
Files or directories matching these patterns are not copied:
7
+
Some filters are applied while copying the tree, which can be configured by options.
8
+
9
+
## Troubleshooting tree copies
10
+
11
+
If the baseline tests fail in the copied directory it is a good first debugging step to try building with `--in-place`.
12
+
13
+
## `.git` and other version control directories
14
+
15
+
By default, files or directories matching these patterns are not copied, because they can be large and typically are not needed to build the source:
8
16
9
17
.git
10
18
.hg
@@ -13,7 +21,9 @@ Files or directories matching these patterns are not copied:
13
21
_darcs
14
22
.pijul
15
23
16
-
## gitignore
24
+
If your tree's build or tests require the VCS directory then it can be copied with `--copy-vcs=true` or by setting `copy_vcs = true` in `.cargo/mutants.toml`.
25
+
26
+
## `.gitignore`
17
27
18
28
From 23.11.2, by default, cargo-mutants will not copy files that are excluded by gitignore patterns, to make copying faster in large trees.
19
29
@@ -22,3 +32,9 @@ gitignore filtering is only used within trees containing a `.git` directory.
22
32
The filter, based on the [`ignore` crate](https://docs.rs/ignore/), also respects global git ignore configuration in the home directory, as well as `.gitignore` files within the tree.
23
33
24
34
This behavior can be turned off with `--gitignore=false`, causing ignored files to be copied.
35
+
36
+
Rust projects typically configure gitignore to exclude the `target/` directory.
37
+
38
+
## `mutants.out`
39
+
40
+
`mutants.out` and `mutants.out.old` are never copied, even if they're not covered by `.gitignore`.
0 commit comments