Repository: rclone/rclone (language: go)

Issue:
Data direction when using --dry-run is unclear
```
$ rclone bisync . remote:university --exclude='*.{log,out,aux,toc}' --dry-run
2023/05/27 09:21:59 NOTICE: bisync is EXPERIMENTAL. Don't use in production!
2023/05/27 09:22:02 NOTICE: wtw-158/notes.rnote: Skipped copy as --dry-run is set (size 313)
2023/05/27 09:22:02 NOTICE: wtw-158/examples.rnote: Skipped copy as --dry-run is set (size 2.873Mi)
2023/05/27 09:22:03 NOTICE: ebn-111/notes.pdf: Skipped copy as --dry-run is set (size 70.623Ki)
2023/05/27 09:22:03 NOTICE: ebn-111/notes.tex: Skipped copy as --dry-run is set (size 14.479Ki)
2023/05/27 09:22:03 NOTICE: has-110/notes.pdf: Skipped copy as --dry-run is set (size 45.267Ki)
2023/05/27 09:22:03 NOTICE: has-110/notes.tex: Skipped copy as --dry-run is set (size 11.756Ki)
2023/05/27 09:22:05 NOTICE: 
Transferred:   	   3.012 MiB / 3.012 MiB, 100%, 1.503 MiB/s, ETA 0s
Checks:                 6 / 6, 100%
Transferred:            6 / 6, 100%
Elapsed time:         7.8s
```

How do I know which way the files would be copied?

```
$ rclone --version
rclone v1.61.1-DEV
- os/version: gentoo 2.13 (64 bit)
- os/kernel: 6.1.24-gentoo-dist (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.20.3
- go/linking: dynamic
- go/tags: none
```


Discussion / hints:
If you add `-v` you should see this:

```
2023/07/12 08:09:36 INFO  : - Path1    Queue copy to Path2                 - /path/to/your/file.txt
2023/07/12 08:09:36 INFO  : - Path1    Do queued copies to                 - Path2
```

That said, I agree this could be improved (and it's an easy fix.)
DEV test results:
> rclone bisync ..\hello_world\ remotemc:uni --exclude='*.{log,out,aux,toc}' --resync --dry-run
2023/10/25 08:31:07 NOTICE: bisync is EXPERIMENTAL. Don't use in production!
2023/10/25 08:31:07 NOTICE: Synching Path1 "C:\Users\gayat\projects\hello_world\" with Path2 "remotemc:uni/"
2023/10/25 08:31:08 NOTICE: main.exe: Skipped copy to main.exe as --dry-run is set (size 158.500Ki)
2023/10/25 08:31:08 NOTICE: formatted_print.exe: Skipped copy to formatted_print.exe as --dry-run is set (size 184Ki)
2023/10/25 08:31:08 NOTICE: formatted_print.pdb: Skipped copy to formatted_print.pdb as --dry-run is set (size 1.457Mi)
2023/10/25 08:31:08 NOTICE: formatted_print.rs: Skipped copy to formatted_print.rs as --dry-run is set (size 2.476Ki)
2023/10/25 08:31:08 NOTICE: main.pdb: Skipped copy to main.pdb as --dry-run is set (size 1.410Mi)
2023/10/25 08:31:08 NOTICE: main.rs: Skipped copy to main.rs as --dry-run is set (size 83)
2023/10/25 08:31:08 NOTICE:
Transferred:        3.204 MiB / 3.204 MiB, 100%, 0 B/s, ETA -
Transferred:            6 / 6, 100%
Elapsed time:         2.4s


Fix patch:
diff --git a/cmd/bisync/log.go b/cmd/bisync/log.go
index 9d2e5b046bcb5..cd39079a61778 100644
--- a/cmd/bisync/log.go
+++ b/cmd/bisync/log.go
@@ -29,6 +29,10 @@ func (b *bisyncRun) indent(tag, file, msg string) {
 		logf = fs.Logf
 	}
 
+	if b.opt.DryRun {
+		logf = fs.Logf
+	}
+
 	if tag == "Path1" {
 		tag = Color(terminal.CyanFg, "Path1")
 	} else {


Test patch:
diff --git a/cmd/bisync/testdata/test_dry_run/golden/test.log b/cmd/bisync/testdata/test_dry_run/golden/test.log
index 0eca08d1c386d..d51c7daa33ee3 100644
--- a/cmd/bisync/testdata/test_dry_run/golden/test.log
+++ b/cmd/bisync/testdata/test_dry_run/golden/test.log
@@ -67,11 +67,11 @@ INFO  : Bisyncing with Comparison Settings:
 }
 INFO  : Synching Path1 "{path1/}" with Path2 "{path2/}"
 INFO  : Copying Path2 files to Path1
-INFO  : - [34mPath2[0m    [35mResync is copying files to[0m         - [36mPath1[0m
+NOTICE: - [34mPath2[0m    [35mResync is copying files to[0m         - [36mPath1[0m
 NOTICE: file10.txt: Skipped copy as --dry-run is set (size 19)
 NOTICE: file4.txt: Skipped copy as --dry-run is set (size 0)
 NOTICE: file6.txt: Skipped copy as --dry-run is set (size 19)
-INFO  : - [36mPath1[0m    [35mResync is copying files to[0m         - [36mPath2[0m
+NOTICE: - [36mPath1[0m    [35mResync is copying files to[0m         - [36mPath2[0m
 NOTICE: file1.txt: Skipped copy as --dry-run is set (size 0)
 NOTICE: file11.txt: Skipped copy as --dry-run is set (size 19)
 NOTICE: file2.txt: Skipped copy as --dry-run is set (size 13)
@@ -97,21 +97,21 @@ INFO  : Bisyncing with Comparison Settings:
 INFO  : Synching Path1 "{path1/}" with Path2 "{path2/}"
 INFO  : Building Path1 and Path2 listings
 INFO  : Path1 checking for diffs
-INFO  : - [36mPath1[0m    [35m[33mFile changed: [35msize (larger)[0m, [35mtime (newer)[0m[0m[0m - [36mfile2.txt[0m
-INFO  : - [36mPath1[0m    [35m[31mFile was deleted[0m[0m          - [36mfile4.txt[0m
-INFO  : - [36mPath1[0m    [35m[33mFile changed: [35msize (larger)[0m, [35mtime (newer)[0m[0m[0m - [36mfile5.txt[0m
-INFO  : - [36mPath1[0m    [35m[31mFile was deleted[0m[0m          - [36mfile6.txt[0m
-INFO  : - [36mPath1[0m    [35m[33mFile changed: [35msize (larger)[0m, [35mtime (newer)[0m[0m[0m - [36mfile7.txt[0m
-INFO  : - [36mPath1[0m    [35m[32mFile is new[0m[0m               - [36mfile11.txt[0m
+NOTICE: - [36mPath1[0m    [35m[33mFile changed: [35msize (larger)[0m, [35mtime (newer)[0m[0m[0m - [36mfile2.txt[0m
+NOTICE: - [36mPath1[0m    [35m[31mFile was deleted[0m[0m          - [36mfile4.txt[0m
+NOTICE: - [36mPath1[0m    [35m[33mFile changed: [35msize (larger)[0m, [35mtime (newer)[0m[0m[0m - [36mfile5.txt[0m
+NOTICE: - [36mPath1[0m    [35m[31mFile was deleted[0m[0m          - [36mfile6.txt[0m
+NOTICE: - [36mPath1[0m    [35m[33mFile changed: [35msize (larger)[0m, [35mtime (newer)[0m[0m[0m - [36mfile7.txt[0m
+NOTICE: - [36mPath1[0m    [35m[32mFile is new[0m[0m               - [36mfile11.txt[0m
 INFO  : Path1:    6 changes: [32m   1 new[0m, [33m   3 modified[0m, [31m   2 deleted[0m
 INFO  : ([33mModified[0m: [36m   3 newer[0m, [34m   0 older[0m, [36m   3 larger[0m, [34m   0 smaller[0m)
 INFO  : Path2 checking for diffs
-INFO  : - [34mPath2[0m    [35m[33mFile changed: [35msize (larger)[0m, [35mtime (newer)[0m[0m[0m - [36mfile1.txt[0m
-INFO  : - [34mPath2[0m    [35m[31mFile was deleted[0m[0m          - [36mfile3.txt[0m
-INFO  : - [34mPath2[0m    [35m[33mFile changed: [35msize (larger)[0m, [35mtime (newer)[0m[0m[0m - [36mfile5.txt[0m
-INFO  : - [34mPath2[0m    [35m[33mFile changed: [35msize (larger)[0m, [35mtime (newer)[0m[0m[0m - [36mfile6.txt[0m
-INFO  : - [34mPath2[0m    [35m[31mFile was deleted[0m[0m          - [36mfile7.txt[0m
-INFO  : - [34mPath2[0m    [35m[32mFile is new[0m[0m               - [36mfile10.txt[0m
+NOTICE: - [34mPath2[0m    [35m[33mFile changed: [35msize (larger)[0m, [35mtime (newer)[0m[0m[0m - [36mfile1.txt[0m
+NOTICE: - [34mPath2[0m    [35m[31mFile was deleted[0m[0m          - [36mfile3.txt[0m
+NOTICE: - [34mPath2[0m    [35m[33mFile changed: [35msize (larger)[0m, [35mtime (newer)[0m[0m[0m - [36mfile5.txt[0m
+NOTICE: - [34mPath2[0m    [35m[33mFile changed: [35msize (larger)[0m, [35mtime (newer)[0m[0m[0m - [36mfile6.txt[0m
+NOTICE: - [34mPath2[0m    [35m[31mFile was deleted[0m[0m          - [36mfile7.txt[0m
+NOTICE: - [34mPath2[0m    [35m[32mFile is new[0m[0m               - [36mfile10.txt[0m
 INFO  : Path2:    6 changes: [32m   1 new[0m, [33m   3 modified[0m, [31m   2 deleted[0m
 INFO  : ([33mModified[0m: [36m   3 newer[0m, [34m   0 older[0m, [36m   3 larger[0m, [34m   0 smaller[0m)
 INFO  : Applying changes
@@ -120,25 +120,25 @@ ERROR : file5.txt: md5 differ
 NOTICE: {path2String}: 1 differences found
 NOTICE: {path2String}: 1 errors while checking
 INFO  : Finished checking the potential conflicts. 1 differences found
-INFO  : - [36mPath1[0m    [35m[32mQueue copy to[0m Path2[0m       - [36m{path2/}file11.txt[0m
-INFO  : - [36mPath1[0m    [35m[32mQueue copy to[0m Path2[0m       - [36m{path2/}file2.txt[0m
-INFO  : - [34mPath2[0m    [35m[31mQueue delete[0m[0m              - [36m{path2/}file4.txt[0m
+NOTICE: - [36mPath1[0m    [35m[32mQueue copy to[0m Path2[0m       - [36m{path2/}file11.txt[0m
+NOTICE: - [36mPath1[0m    [35m[32mQueue copy to[0m Path2[0m       - [36m{path2/}file2.txt[0m
+NOTICE: - [34mPath2[0m    [35m[31mQueue delete[0m[0m              - [36m{path2/}file4.txt[0m
 NOTICE: - [34mWARNING[0m  [35mNew or changed in both paths[0m       - [36mfile5.txt[0m
 NOTICE: file5.txt: Skipped rename as --dry-run is set
 NOTICE: - [36mPath1[0m    [35m[32mQueue copy to[0m Path2[0m       - [36m{path2/}file5.txt.conflict1[0m
 NOTICE: file5.txt: Skipped rename as --dry-run is set
 NOTICE: - [34mPath2[0m    [35m[32mQueue copy to[0m Path1[0m       - [36m{path1/}file5.txt.conflict2[0m
-INFO  : - [34mPath2[0m    [35m[32mQueue copy to[0m Path1[0m       - [36m{path1/}file6.txt[0m
-INFO  : - [36mPath1[0m    [35m[32mQueue copy to[0m Path2[0m       - [36m{path2/}file7.txt[0m
-INFO  : - [34mPath2[0m    [35m[32mQueue copy to[0m Path1[0m       - [36m{path1/}file1.txt[0m
-INFO  : - [34mPath2[0m    [35m[32mQueue copy to[0m Path1[0m       - [36m{path1/}file10.txt[0m
-INFO  : - [36mPath1[0m    [35m[31mQueue delete[0m[0m              - [36m{path1/}file3.txt[0m
-INFO  : - [34mPath2[0m    [35mDo queued copies to[0m                - [36mPath1[0m
+NOTICE: - [34mPath2[0m    [35m[32mQueue copy to[0m Path1[0m       - [36m{path1/}file6.txt[0m
+NOTICE: - [36mPath1[0m    [35m[32mQueue copy to[0m Path2[0m       - [36m{path2/}file7.txt[0m
+NOTICE: - [34mPath2[0m    [35m[32mQueue copy to[0m Path1[0m       - [36m{path1/}file1.txt[0m
+NOTICE: - [34mPath2[0m    [35m[32mQueue copy to[0m Path1[0m       - [36m{path1/}file10.txt[0m
+NOTICE: - [36mPath1[0m    [35m[31mQueue delete[0m[0m              - [36m{path1/}file3.txt[0m
+NOTICE: - [34mPath2[0m    [35mDo queued copies to[0m                - [36mPath1[0m
 NOTICE: file1.txt: Skipped copy as --dry-run is set (size 19)
 NOTICE: file10.txt: Skipped copy as --dry-run is set (size 19)
 NOTICE: file3.txt: Skipped delete as --dry-run is set (size 0)
 NOTICE: file6.txt: Skipped copy as --dry-run is set (size 19)
-INFO  : - [36mPath1[0m    [35mDo queued copies to[0m                - [36mPath2[0m
+NOTICE: - [36mPath1[0m    [35mDo queued copies to[0m                - [36mPath2[0m
 NOTICE: file11.txt: Skipped copy as --dry-run is set (size 19)
 NOTICE: file2.txt: Skipped copy as --dry-run is set (size 13)
 NOTICE: file4.txt: Skipped delete as --dry-run is set (size 0)
diff --git a/cmd/bisync/testdata/test_filtersfile_checks/golden/test.log b/cmd/bisync/testdata/test_filtersfile_checks/golden/test.log
index 28f4cfa895a9d..6a25834020abe 100644
--- a/cmd/bisync/testdata/test_filtersfile_checks/golden/test.log
+++ b/cmd/bisync/testdata/test_filtersfile_checks/golden/test.log
@@ -153,11 +153,11 @@ INFO  : Synching Path1 "{path1/}" with Path2 "{path2/}"
 INFO  : Using filters file {workdir/}filtersfile.txt
 INFO  : Skipped storing filters file hash to {workdir/}filtersfile.txt.md5 as --dry-run is set
 INFO  : Copying Path2 files to Path1
-INFO  : - [34mPath2[0m    [35mResync is copying files to[0m         - [36mPath1[0m
-NOTICE: subdir: Skipped set directory modification time as --dry-run is set (size 4Ki)
+NOTICE: - [34mPath2[0m    [35mResync is copying files to[0m         - [36mPath1[0m
+NOTICE: subdir: Skipped set directory modification time as --dry-run is set
 NOTICE: {path1String}: Skipped set directory modification time as --dry-run is set
-INFO  : - [36mPath1[0m    [35mResync is copying files to[0m         - [36mPath2[0m
-NOTICE: subdir: Skipped set directory modification time as --dry-run is set (size 4Ki)
+NOTICE: - [36mPath1[0m    [35mResync is copying files to[0m         - [36mPath2[0m
+NOTICE: subdir: Skipped set directory modification time as --dry-run is set
 NOTICE: {path2String}: Skipped set directory modification time as --dry-run is set
 INFO  : Resync updating listings
 INFO  : [32mBisync successful[0m