Started repro.sh v1.0.8 at Thu Nov 19 08:46:50 EST 2020. ReproDir=/tmp/repro Preliminary info: Show versions of p4/p4d on the PATH: Executing command: p4 -V Perforce - The Fast Software Configuration Management System. Copyright 1995-2020 Perforce Software. All rights reserved. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) Version of OpenSSL Libraries: OpenSSL 1.1.1g 21 Apr 2020 See 'p4 help [ -l ] legal' for additional license information on these licenses and others. Extensions/scripting support built-in. Parallel sync threading built-in. Rev. P4/MACOSX1010X86_64/2020.1/1953492 (2020/04/24). Executing command: p4d -V Perforce - The Fast Software Configuration Management System. Copyright 1995-2020 Perforce Software. All rights reserved. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) Version of OpenSSL Libraries: OpenSSL 1.1.1g 21 Apr 2020 This product includes software developed by the OpenLDAP Foundation (http://www.openldap.org/) This product includes software developed by Computing Services at Carnegie Mellon University: Cyrus SASL (http://www.cmu.edu/computing/) Version of OpenLDAP Libraries: 2.4.47 Version of Cyrus SASL Libraries: 2.1.27 See 'p4 help [ -l ] legal' for additional license information on these licenses and others. Using no memory manager. Rev. P4D/MACOSX1010X86_64/2020.1/1953492 (2020/04/24). License: none Preliminary setup: Spin up a local repo. Executing command: p4 init -C0 -n Server ttyler-dvcs-1605793610 saved. Executing command: p4 status One.h - reconcile to add //stream/main/One.h#1 Two.h - reconcile to add //stream/main/Two.h#1 Reconcile and submit. //stream/main/One.h#1 - opened for add //stream/main/Two.h#1 - opened for add Submitting change 1. Locking 2 files ... add //stream/main/One.h#1 add //stream/main/Two.h#1 Change 1 submitted. == Release r1 == Stream //stream/r1 saved. Executing command: p4 populate -f -r -S //stream/r1 2 files branched (change 3). Delete Two.h directly in main. //stream/main/Two.h#1 - opened for delete Submitting change 4. Locking 1 files ... delete //stream/main/Two.h#2 Change 4 submitted. == Release r2 == Stream //stream/r2 saved. Executing command: p4 populate -f -r -S //stream/r2 2 files branched (change 6). Reparent flow of change to: r1 --> r2 --> main. Stream //stream/r1 saved. == Bug Fix in r1 == Make changes in r1. r1 Updating One.h and Two.h in r1. Executing command: p4 edit One.h Two.h //stream/r1/One.h#1 - opened for edit //stream/r1/Two.h#1 - opened for edit Submitting ... Submitting change 8. Locking 2 files ... edit //stream/r1/One.h#2 edit //stream/r1/Two.h#2 Change 8 submitted. == Merging r1 to r2 == Executing command: p4 switch r2 Executing command: p4 switch r2 Merging ... Executing command: p4 merge -S r1 //stream/r2/One.h#1 - integrate from //stream/r1/One.h#2 ... must resolve content from //stream/r1/One.h#2 //stream/r2/Two.h#1 - sync/delete from //stream/r1/Two.h#2 ... must resolve branch from //stream/r1/Two.h#2 Resolving with -as ... Executing command: p4 resolve -as /tmp/repro/One.h - merging //stream/r1/One.h#2 Diff chunks: 0 yours + 1 theirs + 0 both + 0 conflicting //ttyler-dvcs-1605793610/One.h - copy from //stream/r1/One.h /tmp/repro/Two.h - resolving branch from //stream/r1/Two.h#2 //ttyler-dvcs-1605793610/Two.h - resolve skipped. Uh oh, the resolve was skipped, leaving it for manual resolution. Workaround: Resolving with -ay ... Executing command: p4 resolve -ay Two.h /tmp/repro/Two.h - resolving branch from //stream/r1/Two.h#2 //ttyler-dvcs-1605793610/Two.h - ignored //stream/r1/Two.h OK, that worked, but the 'p4 resolve -as' should have done that for me. Submitting ... Submitting change 9. Locking 2 files ... integrate //stream/r2/One.h#2 delete //stream/r2/Two.h#2 Change 9 submitted. == Another Bug Fix in r1 == Make more changes in r1. Executing command: p4 switch r1 Executing command: p4 switch r1 Let's try again. Updating One.h and Two.h in r1. Executing command: p4 edit One.h Two.h //stream/r1/One.h#2 - opened for edit //stream/r1/Two.h#2 - opened for edit Submitting ... Submitting change 10. Locking 2 files ... edit //stream/r1/One.h#3 edit //stream/r1/Two.h#3 Change 10 submitted. == Merging r1 to r2 == r2 Merging ... Executing command: p4 merge -S r1 //stream/r2/One.h#2 - integrate from //stream/r1/One.h#3 ... must resolve content from //stream/r1/One.h#3 //stream/r2/Two.h#2 - sync/delete from //stream/r1/Two.h#3 ... must resolve branch from //stream/r1/Two.h#3 Resolving with -as ... Executing command: p4 resolve -as /tmp/repro/One.h - merging //stream/r1/One.h#3 Diff chunks: 0 yours + 1 theirs + 0 both + 0 conflicting //ttyler-dvcs-1605793610/One.h - copy from //stream/r1/One.h /tmp/repro/Two.h - resolving branch from //stream/r1/Two.h#3 //ttyler-dvcs-1605793610/Two.h - resolve skipped. Here I was hoping that, after having done 'resolve -ay' workaround once and submitted, it would at least remmeber for next time. But alas, no, the resolve is still skipped requring manual resolution. Workaround: Resolving with -ay ... Executing command: p4 resolve -ay Two.h /tmp/repro/Two.h - resolving branch from //stream/r1/Two.h#3 //ttyler-dvcs-1605793610/Two.h - ignored //stream/r1/Two.h Submitting ... Submitting change 11. Locking 2 files ... integrate //stream/r2/One.h#3 delete //stream/r2/Two.h#3 Change 11 submitted. Now this looks silly -- all deletes: Executing command: p4 filelog //stream/r2/Two.h //stream/r2/Two.h ... #3 change 11 delete on 2020/11/19 by ttyler@ttyler-dvcs-1605793610 (text) 'Merged r1 -> r2. Manual resolve' ... ... ignored //stream/r1/Two.h#3 ... #2 change 9 delete on 2020/11/19 by ttyler@ttyler-dvcs-1605793610 (text) 'Merged r1 -> r2. Manual resolve' ... ... ignored //stream/r1/Two.h#2 ... #1 change 6 delete on 2020/11/19 by ttyler@ttyler-dvcs-1605793610 (text) 'Populate -f -r -S //stream/r2. ' ... ... delete from //stream/main/Two.h#1,#2 The deletion recorded as #1 (by 'p4 populate' with '-f') makes perfect sense, capturing the intent. But why the need to re-resolve with '-y' each time?