Started repro.sh v1.1.0 at Thu Jan 8 10:44:42 EST 2026 in /home/perforce/repro/DeleteOfDeletedFile. ReproDir=/tmp/repro ============================================================================== Scenario 1: Delete Of Deleted File Preliminary info: Show versions of p4/p4d on the PATH: Executing command: p4 -V Perforce - The Fast Software Configuration Management System. Copyright 1995-2025 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 3.0.15 3 Sep 2024 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/LINUX26X86_64/2024.2/2726408 (2025/02/27). Executing command: p4d -V Perforce - The Fast Software Configuration Management System. Copyright 1995-2025 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 3.0.15 3 Sep 2024 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.5.17 Version of Cyrus SASL Libraries: 2.1.28 See 'p4 help [ -l ] legal' for additional license information on these licenses and others. Using the 'mimalloc' memory manager. Rev. P4D/LINUX26X86_64/2024.2/2726408 (2025/02/27). License: Perforce Software, Inc. 28 users (support ends 2026/08/03) (expires 2026/08/03) Preliminary setup: Spin up a local repo. Operating in: /tmp/repro Executing command: p4 init -C0 -n Server perforce-dvcs-1767887082 saved. Client spec before tweak: Client: perforce-dvcs-1767887082 Update: 2026/01/08 10:44:43 Access: 2026/01/08 10:44:43 Owner: perforce Description: Created by perforce. Root: /tmp/repro Options: allwrite noclobber nocompress unlocked nomodtime rmdir noaltsync SubmitOptions: revertunchanged LineEnd: local Stream: //stream/main View: //stream/main/... //perforce-dvcs-1767887082/... Changing client 'SubmitOptions:' field value to 'leaveunchanged'. Client perforce-dvcs-1767887082 saved. Client spec after tweak: Client: perforce-dvcs-1767887082 Update: 2026/01/08 10:44:43 Access: 2026/01/08 10:44:43 Owner: perforce Description: Created by perforce. Root: /tmp/repro Options: allwrite noclobber nocompress unlocked nomodtime rmdir noaltsync SubmitOptions: leaveunchanged LineEnd: local Stream: //stream/main View: //stream/main/... //perforce-dvcs-1767887082/... Starting file operations: Executing command: touch foo Executing command: p4 add foo //stream/main/foo#1 - opened for add /tmp/repro/foo - empty, assuming text. Executing command: p4 submit -d Add. Submitting change 1. Locking 1 files ... add //stream/main/foo#1 Change 1 submitted. Generating client ws2. Client ws2 saved. Client ws3 saved. Executing command: rm -f foo Executing command: p4 -c ws2 sync //stream/main/foo#1 - added as /tmp/repro/foo Executing command: p4 -c ws3 sync //stream/main/foo#1 - added as /tmp/repro/foo Executing command: p4 delete foo //stream/main/foo#1 - opened for delete Executing command: p4 submit -d DeleteMeOnce Submitting change 2. Locking 1 files ... delete //stream/main/foo#2 Change 2 submitted. Executing command: p4 -c ws2 delete foo Submitting change 3. Locking 1 files ... delete //stream/main/foo#3 Change 3 submitted. //stream/main/foo#1 - opened for delete ... //stream/main/foo - warning: delete of deleted file Submitting change 4. Locking 1 files ... delete //stream/main/foo#4 Change 4 submitted. //stream/main/foo#1 - opened for delete ... //stream/main/foo - warning: delete of deleted file Executing command: p4 filelog //stream/main/foo //stream/main/foo ... #4 change 4 delete on 2026/01/08 by perforce@ws3 (text) 'DeleteMeThreeTimes' ... #3 change 3 delete on 2026/01/08 by perforce@ws2 (text) 'DeleteMeTwice' ... #2 change 2 delete on 2026/01/08 by perforce@perforce-dvcs-1767887082 (text) 'DeleteMeOnce' ... #1 change 1 add on 2026/01/08 by perforce@perforce-dvcs-1767887082 (text) 'Add.' ============================================================================== The Result: This is the currently expected p4d behvaior, allowing the delete of a deleted file with just a warning, 'warning: delete of deleted file' . Is there a valid use case for allowing a delete of a deleted file just because workspaces were not in sync? Is it risky to change this behaviour? Note that a workspace SubmitOptions value of leaveunchange and revertunchanged have no impact; they do not prevent the double-delete - or triple ...
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #3 | 32381 | C. Thomas Tyler | Enhaced to show mutilpe deletes are possible. | ||
| #2 | 32380 | C. Thomas Tyler |
Changed workspace to see if a 'SubmitOptions:' value of 'leaveunchanged' had any impact. Sadly, it didn't. |
||
| #1 | 32379 | C. Thomas Tyler | Addd repro script for a delete of a deleted file. |