repro.log #3

  • //
  • guest/
  • tom_tyler/
  • repro/
  • DeleteOfDeletedFile/
  • repro.log
  • View
  • Commits
  • Open Download .zip Download (5 KB)
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.