Started repro.sh v1.0.7 at Wed Mar 16 01:37:41 EDT 2016. 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-2015 Perforce Software. All rights reserved. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) See 'p4 help legal' for full OpenSSL license information Version of OpenSSL Libraries: OpenSSL 1.0.1p 9 Jul 2015 Rev. P4/LINUX26X86_64/2015.2/1252060 (2015/10/22). Executing command: p4d -V Perforce - The Fast Software Configuration Management System. Copyright 1995-2015 Perforce Software. All rights reserved. Portions copyright 1991-2005 Compuware Corporation. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) See 'p4 help legal' for full OpenSSL license information Version of OpenSSL Libraries: OpenSSL 1.0.1p 9 Jul 2015 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/) See 'p4 help legal' for full Cyrus SASL and OpenLDAP license information Version of OpenLDAP Libraries: 2.4.40 Version of Cyrus SASL Libraries: 2.1.26 Rev. P4D/LINUX26X86_64/2015.2/1252060 (2015/10/22). License: none Preliminary setup: Spin up a local repo. Executing command: p4 init Matching server configuration from 'localhost:1999': case-sensitive (-C0), non-unicode (-n) Server ttyler-dvcs-1458106661 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 2). Delete Two.h directly in main. //stream/main/Two.h#1 - opened for delete Submitting change 3. Locking 1 files ... delete //stream/main/Two.h#2 Change 3 submitted. == Release r2 == Stream //stream/r2 saved. Executing command: p4 populate -f -r -S //stream/r2 2 files branched (change 4). 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 5. Locking 2 files ... edit //stream/r1/One.h#2 edit //stream/r1/Two.h#2 Change 5 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-1458106661/One.h - copy from //stream/r1/One.h /tmp/repro/Two.h - resolving branch from //stream/r1/Two.h#2 //ttyler-dvcs-1458106661/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-1458106661/Two.h - ignored //stream/r1/Two.h OK, that worked, but the 'p4 resolve -as' should have done that for me. Submitting ... Submitting change 6. Locking 2 files ... integrate //stream/r2/One.h#2 delete //stream/r2/Two.h#2 Change 6 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 7. Locking 2 files ... edit //stream/r1/One.h#3 edit //stream/r1/Two.h#3 Change 7 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-1458106661/One.h - copy from //stream/r1/One.h /tmp/repro/Two.h - resolving branch from //stream/r1/Two.h#3 //ttyler-dvcs-1458106661/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-1458106661/Two.h - ignored //stream/r1/Two.h Submitting ... Submitting change 8. Locking 2 files ... integrate //stream/r2/One.h#3 delete //stream/r2/Two.h#3 Change 8 submitted. Now this looks silly -- all deletes: Executing command: p4 filelog //stream/r2/Two.h //stream/r2/Two.h ... #3 change 8 delete on 2016/03/16 by ttyler@ttyler-dvcs-1458106661 (text) 'Merged r1 -> r2. Manual resolve' ... ... ignored //stream/r1/Two.h#3 ... #2 change 6 delete on 2016/03/16 by ttyler@ttyler-dvcs-1458106661 (text) 'Merged r1 -> r2. Manual resolve' ... ... ignored //stream/r1/Two.h#2 ... #1 change 4 delete on 2016/03/16 by ttyler@ttyler-dvcs-1458106661 (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?