Release Notes for P4, the Helix Command Line, P4D, the Helix Versioning Engine P4P, the Helix Proxy and P4Broker, the Helix Broker Version 2018.1 Introduction This document lists all user-visible changes to: * Helix Versioning Engine (P4D) * Command line client (P4) * Helix Proxy (P4P) * Helix Broker (P4Broker) in 2018.1 release. Release notes for other Perforce Helix products are available separately on the Perforce Documentation web page. Developer notes for Perforce API programming, the Helix Broker and also a separate document which programmers should read in addition to this release note document. Perforce numbers releases YYYY.R/CCCCC, e.g. 2002.1/30547. YYYY is the year; R is the release of that year; CCCCC is the bugfix change level. Each bugfix in these release notes is marked by its change number. Any build includes (1) all bugfixes of all previous releases and (2) all bugfixes of the current release up to the bugfix change level. Both 'p4' and 'p4d' will report their version information by passing the '-V' flag. Additionally, 'p4' can report the server's information with the 'p4 info' command. Version information includes a release version and a build change number. The build change number can be compared with change numbers and patch information mentioned in the matching version release notes file to determine if a particular build of a version includes the change mentioned. Supported Platforms for p4d Linux kernel 2.6+ for Intel(x86, x86_64) Windows 8 for Intel(x86, x64) Windows 8.1 for Intel(x86, x64) Windows 10 for Intel(x86, x64) Windows 2008 for Intel(x86, x64) Windows 2012 for Intel(x64) Windows 2016 for Intel(x64) Apple Darwin 9.0+ for Intel(x86, x86_64) Supported Platforms for p4 Linux kernel 2.6+ for Intel(x86, x86_64) Windows 8 for Intel(x86, x64) Windows 8.1 for Intel(x86, x64) Windows 10 for Intel(x86, x64) Windows 2008 for Intel(x86, x64) Windows 2012 for Intel (x64) Windows 2016 for Intel(x64) Mac OS X 10.5, 10.6, 10.7, 10.8, 10.9, 10.10(x86, x86_64) Apple Darwin 9.0+ for Intel(x86, x86_64) Supported Platforms for p4p and p4broker Linux kernel 2.6+ for Intel(x86, x86_64) Windows for Intel(ntx86, ntx64) Apple Darwin 9.0+ for Intel(x86, x86_64) -------------------------------------------------------------------------- Important security note This release links OpenSSL version 1.0.2q. Note: 2018.1 patch 8 upgrades to OpenSSL 1.0.2q -------------------------------------------------------------------------- Important export note This product is subject to U.S. export control laws and regulations including, but not limited to, the U.S. Export Administration Regulations, the International Traffic in Arms Regulation requirements, and all applicable end-use, end-user and destination restrictions. Licensee shall not permit, directly or indirectly, use of any Perforce technology in or by any U.S. embargoed country or otherwise in violation of any U.S. export control laws and regulations. -------------------------------------------------------------------------- Upgrading the Server ** IMPORTANT UPGRADE NOTES ** CHANGES TO UNLICENSED SERVER FOR THIS RELEASE For v16.1 onwards of the Helix Versioning Engine (P4D) the number of free users allowed with an unlicensed server has changed to 5, the number of clients remains at 20. Previous versions of the server will continue to support the 20/20 usage allowance. ------------------------------------------------------------------- BEFORE UPGRADING To upgrade your Helix Versioning Engine (P4D), your Perforce license file must be current. Expired licenses do not work with upgraded servers. In addition to your usual checkpointing scheme, always checkpoint your server immediately before undertaking an upgrade. DOWNGRADING A 2018.1 SERVER IS NOT POSSIBLE UPGRADING PROCEDURE IS DIFFERENT DEPENDING ON WHAT YOUR CURRENT PERFORCE VERSION IS: UPDATE DATABASE SCHEMA vs UPDATE DATABASE FORMAT ------------------------------------------------------------------- ** UPDATE DATABASE SCHEMA If your current server version is 2013.3 or above, then this upgrade is a UPDATE DATABASE SCHEMA upgrade: Unix Platforms 1. Issue the 'p4d -r -J -xu' command. This command performs the significant schema upgrades, then exits. 2. Restart your server with your site's usual parameters. Windows Platforms 1. Issue the 'p4d -r -J -xu' command from a command prompt window. This command performs the significant schema upgrades, then exits. 2. Restart your Helix Versioning Engine (P4D) service. Note: Personal DVCS servers will automatically perform any database schema upgrades; whilst the upgrade steps described above are unnecessary for these servers, they are safe to run. ------------------------------------------------------------------- ** UPDATE DATABASE FORMAT If your current server version is 2013.2 or a previous release then this upgrade is an UPDATE DATABASE FORMAT upgrade: Due to the new btree format introduced in 2013.3 this is not an UPDATE DATABASE SCHEMA upgrade. A checkpoint using your old server and then a restore using the 2018.1 server is required before the internal upgrades 'p4d -xu' (if required) can be performed. Note: If you have made use of the (undocumented) '+T' modifier (storing file content in the tiny.db database) this data is not checkpointed (and therefore not restored). See 'p4 help undoc' for backup/restore procedures for this table. Once the database has been restored with the 2018.1 version, update your database schema: Unix Platforms 1. Issue the 'p4d -r -J -xu' command. This command performs the significant schema upgrades, then exits. 2. Restart your server with your site's usual parameters. Windows Platforms 1. Issue the 'p4d -r -J -xu' command from a command prompt window. This command performs the significant schema upgrades, then exits. 2. Restart your Helix Versioning Engine (P4D) service. -------------------------------------------------------------------------- Interoperating With Previous Releases 1. Unless stated otherwise you can intermix any release of Helix Command Line (P4) with any release of the Helix Versioning Engine (P4D), but any functionality new to 2018.1 requires you to upgrade the client and/or P4D. See marks in the notes below. * -- requires new p4 client program including all client applications and derived APIs ** -- requires new p4d server program *** -- requires new p4p proxy program **** -- requires new p4broker broker program Any replica servers must be at the same release levels as the master server; any functionality that requires an upgrade for the master requires an upgrade for the replica, and vice versa. 2. Beginning with 99.2, remote depots will interoperate between UNIX and NT. Beginning with 98.2, remote depots will interoperate across (98.2 and higher) releases. In 98.1 and before, remote depots will only operate with another server of the same release. 3. As of 2005.1, remote depot support for 98.2 and 99.1 servers has been dropped. Attempts by 98.2 and 99.1 servers to contact 2005.1 servers still works, but the depots will appear devoid of files. -------------------------------------------------------------------------- Technology Preview features: Technology Preview features are currently unsupported, might not be functionally complete, and are not suitable for deployment in production. These features are provided to the customer to solicit interest and feedback, with the goal of full support in future releases. Customers are encouraged to provide feedback and functionality suggestions for Technology Preview features before they become fully supported. -------------------------------------------------------------------------- Important note: Please refer to: http://www.perforce.com/perforce/r18.1/user/relnotes.txt to get up to date GA and post-GA information about this release. -------------------------------------------------------------------------- Major new functionality in 2018.1 #1623544 ** Further Graph Depot enhancements. The commands which allow direct contribution to the git data model have undergone improvements. Most notably, submits of changes that affect multiple repos are now performed atomically, with the resulting changelist recording the resulting commits so that their association is not lost. #1622318 (Bug #10428) ** 'p4d -jr' will now automatically recognize that a checkpoint or journal is compressed when restoring either. It is now possible to chain compressed and uncompressed checkpoint and journal files during restoration in a single command by omitting the -z option. #1617715 (Bug #92977, #94460, #94461) ** On-demand fetch of graph depot objects from a master server is now supported for 'p4 diff2', 'p4 sync' (including parallel), 'p4 fstat -Ol', 'p4 print', and 'p4 describe'. This enables reliable replication for supported graph depot read-only commands. #1616256 (Bug #91300) ** A new command 'p4 admin end-journal' has been added that allows a standard or operator user, with super access, to end a journal being replicated to a standby server via 'journalcopy' at the last replicated consistency point. The 'journalcopy' thread is stopped, and the journal number and the offset of that last replicated consistency point is returned. This feature is required to facilitate some advanced failover strategies. #1603239 (Bug #50063) ** Stream path definitions may now include a wildcard in the final expression of a path, following the last slash. This is useful should you wish to refer to a collection of files, such as - path_type pattern/to/....exe (or) path_type pattern/to/*.txt #1601670 (Bug #92974) ** The new command 'p4 graph rebase' has been added to allow rebasing of commits within graph depot. #1596216 (Bug #92976) ** The non-interactive graph depot 'p4 merge' now supports specifying multiple repos, which will be merged atomically. This ensures that if a merge on any repo would fail, none are performed. #1630915 (Bug #48959) ** Second factor authentication is now a supported server feature. Users can now be configured to require second factor authentication on a per host basis. This involves first enabling second factor authentication by adding 3 new auth triggers and then setting the 2FA modifier on the user's AuthMethod in the user spec (it can be used with either 'perforce' or 'ldap'). The new triggers are: * auth-pre-2fa - returns a list of second factor authentication methods that the user may use. * auth-init-2fa - begins the second factor authentication process for a given method. * auth-check-2fa - verifies a one-time-password/token/passphrase/etc against the second factor authentication service or checks the status of an ongoing session. The output of these triggers is complex. For details and examples, see the 'p4 help 2fa' documentation and http://answers.perforce.com/articles/KB/15334 Please note that not all client applications have added support for second factor authentication yet. Minor new functionality in 2018.1 #1623544 ** The following commands previously documented as technology preview features) are now supported for use in conjunction with the git data model: filelog, fstat, non-interactive merge. (For more information see 'p4 help-graph'). #1622291 (Bug #77528) ** The new 'rpl.journalcopy.location' configurable can be used to change the prefix of the filepath where the current journalcopy'd journal is written. With the default value of zero, the current journalcopy'd journal is written directly to the filepath with a prefix of the standby server's 'journalPrefix' configurable. With a value of one, the current journalcopy'd journal is written alongside where the standby server's P4JOURNAL would be written, and then rotated to the filepath with a prefix of the standby server's 'journalPrefix' configurable. The effect of changing the value of the 'rpl.journalcopy.location' configurable occurs when the standby server replicates the P4TARGET's journal rotation. journalcopy'd journals will always have their journal number in the suffix. #1620269 (Bug #60462) ** The new configurable 'dm.info.hide', when set to '1', prevents 'p4 info' from returning sensitive data to unauthenticated users. This is primarily aimed at servers running on public networks. #1620201 (Bug #93347) ** "p4 graph show-ref" may now be provided with a "-e" or "-E" flag to filter the returned references by name. #1619740 (Bug #92904) ** "p4 graph tag -l" now lists tags from all repos when no repo is specified. #1619150 (Bug #91132) ** The new command 'p4 show-permissions' has been added. This is the graph permissions equivalent of 'p4 protects', providing a user-centric view of granted permissions. #1617808 (Bug #94207) ** The second factor authentication triggers now provide the user's email address and full name in the %email% and %fullname% variables. The values of these variables come from the user spec. If user modification of these fields in the user's user spec is undesirable, setting the new configurable 'dm.user.allowselfupdate' to '0' will prevent those fields be being changed by the user. #1614722 (Bug #92878) ** The graph depot index table (db.graphindex) now stores a file's size, type and LFS OID. Any previously-indexed graph depot repos must be manually re-indexed after upgrade. #1612161 (Bug #90744) ** LDAP user auto-creation may now prevent users being created if they would have no permissions on the server. To enable this, the 'auth.ldap.userautocreate' must be set to '2'. #1610807 (Bug #93604) ** Replicas now support syncing LFS files from graph depots. #1609265 (Bug 90487) ** A new structured log 'ldapsync.csv' has been added to record the activity of 'p4 ldapsync'. #1608660 (Bug #92975) ** The graph-push-reference* triggers now pass the original reference value in the %oldValue% variable. When these triggers are fired from 'p4 graph receive-pack', the reference type is passed in the %refType% variable and the %refFlags% variable is populated with a list of actions that are being applied to the reference. #1595764 (Bug #93545) ** A new configurable 'auth.tickets.nounlocked' has been added, providing a means of preventing 'p4 login -a' from issuing host unlocked tickets. When set to '1', the '-a' flag is silently ignored and the users always be issued host locked tickets. When the configurable is set to '2', the '-a' flag is explicitly disabled and the user will get an error if they try to use it. If either value is set, the tagged output from 'p4 info' will show unlockedTickets disabled. #1586092 (Bug #93002) ** 'p4 filelog' is now supported when specifying a graph depot paths. #1583012 (Bug #92967) ** 'p4 configure set' now validates numeric configurables to prevent them from being set outside of their acceptable ranges. Previously configurables set outside of the acceptable ranges were silently altered to the minimum or maximum values when used; this meant that the values reported as being set and the values actually used were different. Configurables already set outside the acceptable ranges will continue to be silently altered. Bugs fixed in 2018.1 Patch 16 #1955702 (Bug #99520) ** 'p4 tag' run with multiple arguments updating an autoreload label would cause the label to be loaded into memory and rewritten to the unload depot for each argument. This has been fixed. #1937483 (Bug #101639) ** 'p4 fstat -Ol' for graph depot could crash the server when run on mid-branch and a file there is deleted in the branch tip. #1925279 (Bug #100917) ** The 'p4 graph cat-file' command was missing the -o option. This change adds in the missing option. #1925278 (Bug #100902) ** 'p4 fstat -OI' for graph depots would miss changeCommit if the graph depot index is missing. Now, the changeCommit appears whether or not the index exists. #1925277 (Bug #101062) ** When 'p4 have' for graph has no matching repos, it would complete as a failure. This fix changes the failure message "No matching repos" to the warning message "file(s) not on client". Bugs fixed in 2018.1 Patch 15 #1915408 (Bug #101215) ** A memory leak in SSL-enabled servers has been closed. #1912798 (Bug #95082) * ** *** **** The final select() for Rpc::Close() no longer blocks for ssl connections. The timeout is subject to 'net.maxclosewait'. #1911941 * ** *** **** OpenSSL has been upgraded to 1.1.1a #1908979 (Bug #93870, #89608) ** 'p4d -cset' and 'p4d -cunset' now resolves the journal file to write too in the same way that the server would if started with the same flags and environment. When using 'p4d -cset' to set P4JOURNAL, if the new value would change the journal file being used, the new value is used instead. #1906391 (Bug #100948) 'p4 submit' now fails with a "tampered with after resolve" error when trying to submit an unshelved file that is resolved with 'ay' and then modified inadvertently. Note that this error is not generated for ktext files. Bugs fixed in 2018.1 Patch 14 #1902668 (Bug #100945) ** 'p4 revert -C clientname' should ignore admin's client since the client name is specified as a parameter. This has been fixed. #1902172 (Bug #100158) ** UTF8 type files sync'ed from cache mode replica with a pre-2016.2 client could report a depot file error. This has been fixed. Bugs fixed in 2018.1 Patch 13 #1894626 (Bug #100608) ** Avoid error on conflicting clients for commands that are read-only. For 'p4 opened -c ' or -u, the current client of the user is irrelevant and no error should be displayed if that client is tied to another server. The same should be the case for 'p4 client' when the client name is provided as an argument or for 'p4 client -i' which should validate the client name listed in the form rather than the client tied to the user initiating the command. #1882546 (Bug #83623) * ** The default value of the 'filesys.lockdelay' has been decreased from 300 to 90 to ensure abandoned .lck files are correctly deleted. #1882546 (Bug #99077) ** A race condition can no longer cause a lock (.lck) file to remain after use. Bugs fixed in 2018.1 Patch 12 #1821147 (Bug #99117) ** 'p4 protects -M' was not displaying the correct result in P4AUTH environments. Additionally, the path handling for this command was only considering protections that matched all of the provided path not just a portion of that path. This has been fixed. #1808412 (Bug #98651) ** The server can enter an infinite loop trying to join the rev and have table during a sync request using the #have revision specifier and a changed client view. This has been fixed. #1805434 (Bug #97669) * ** *** **** SSL connections that negotiated with TLS 1.1 and above handshakes were rejected as plaintext. This has been fixed. Note that successful negotiation would still result in the use up to TLS 1.2 regardless of the version used for negotiation. Bugs fixed in 2018.1 Patch 11 #1795237 (Bug #95627) ** 'pull -L' now correctly updates the 'state' file through the end of consistency points containing only entries that don't actually apply any metadata (e.g. @nx@ and @ex@ entries). #1790547 (Bug #97898) * The 'p4 clone' command could fail when using remote specifications with DepotMap paths containing spaces. This has been fixed. #1782941 (Bug #92961) ** Successful OTP based 2FA events logged to the auth.csv structured log were incorrectly recorded as failures. This has been fixed. #1782878 (Bug #95173) ** 'p4 describe' would report errors when run against shelved changelists created by 'p4 switch'. This has been fixed. Bugs fixed in 2018.1 Patch 10 #1762664 (Bugs #97818, #97870, #97871) ** DVCS triggers (push-submit, push-content and push-commit) now support exclusionary mappings in the same way that submit triggers do: the paths of multiple consecutive trigger entries with the same name and type are aggregated into a single map. #1760169 (Bug #97155) ** Deletion of a shelf during a 'p4 submit -e' could leave opened files that could not be reverted. This has been fixed. #1754469 (Bug #97618) ** Edge servers no longer allow deletion of a shelf created during the edge server submit process while the submit is in progress. Bugs fixed in 2018.1 Patch 9 #1751790 (Bug #97585) ** 'p4 user -d' run against a very specific configured replica would fail to lock the correct database tables and could cause a deadlock. This has been fixed. #1747841 (Bug #95435) ** 'p4 undo' was recording the incorrect resolve action when files being undone were modified with 'p4 edit' before submit. This has been fixed. Bugs fixed in 2018.1 Patch 8 #1734993 (Bug #97134) ** Group protections entries containing wildcards in the group name could cause a server crash. This has been fixed. #1730852 (Bug #92743) * UTF8 validation would not catch some invalid files. When a file terminated with a partial unicode, the client would not detect the error. This has been fixed. #1728426 (Bug #96335) ** Admin/super user cannot unlock files after failed/rejected DVCS push Running p4 -c unlock -f -r //path/to/file returns a permission error when done by admin while it should be allowed because of the -f option. This has been fixed. #1727238 (Bug #96662) ** Parallel submit could fail to transfer archive content if the file transfer threads exit without error. This has been fixed by insuring that archives exist on the server before the submit continues and reports success. #1726525 (Bug #96818) ** The have table can be corrupted with the use of 'and' mapppings set to a specific revision. This has been fixed. #1726395 (Bug #96469) ** A graph merge -n operation did not clean up correctly, failing a subsequent graph merge request. This has been fixed. #1726388 (Bug #96468) ** A graph merge -n operation with a conflicting file incorrectly stated that the merge will succeed. This has been fixed. #1720347 (Bug #94695) ** 'p4 integ' of a stream with a +S moved file could propagate wrong content. This has been fixed. #1717005 (Bug #96569) ** The 'p4 switch stream@change' command now takes into account stream imports when syncing files. Bugs fixed in 2018.1 Patch 7 #1714682 (Bug #96120) ** 'p4 undo' uses current client mapping when placing undone files in workspace. File locations maintained in haveMaps are ignored. #1709104 (Bug #96381) ** The 'p4 journals' command when run during a checkpoint operation could hang the server. This has been fixed. #1707877 (Bug #96312) ** Processing of stream specs with a large number of exclude and/or isolate paths has been made faster. #1706332 (Bug #96438) ** A proxy in front of an edge server now allows 'p4 login' to be run when 'rpl.forward.login=1' is set. #1706331 (Bug #96326) ** On-demand replication of graph files containing reserved characters in their paths would fail. This has been fixed. Bugs fixed in 2018.1 Patch 6 #1703579 (Bug #96370) For graph clients, 'p4 add -f filepath' succeeds when the filepath contains a asterisk. #1697902 (Bug #96279) ** There was a memory leak when checking the permissions for graph merge actions. This has been fixed. Bugs fixed in 2018.1 Patch 5 #1689825 (Bug #96001) ** The repo and reference permissions are now correctly checked during a graph merge request. It uses the same model as submit and receive-pack. #1688292 (Bug #90685) ** Change how the graph permissions are checked during a 'p4 graph receive-pack' command. This copies the methods used by submit and avoids checking each individual file path where possible. #1692676 (Bug #96039) ** Support graph files with reserved characters in their paths originating from git datasets. #1692160 (Bug #96155) ** Improve the performance of group protections. #1690481 (Bug #95656) ** Ensure all clients see stream view changes after 'p4 stream edit'. #1689663 (Bug #96020) ** A graph merge command with more than one repo and a missing source component can crash the server. This has been fixed. Bugs fixed in 2018.1 Patch 4 #1687110 (Bug #95988) ** The server no longer crashes when a parallel 'sync -L' is interrupted. Bugs fixed in 2018.1 Patch 3 #1680890 (Bug #95177) ** Running 'p4 describe' against a changelist involved in a DVCS push during a push-submit or push-content trigger execution now shows the files associated with that change. #1679672 (Bug #95740) ** Improve the performance of graph permissions. #1677079 (Bug #95668) ** When a description is passed to a graph merge request, extra text is no longer added to the commit comment. #1676342 (Bug #95293) ** A proxy in front of an edge server now allows a user to submit sync'ed files. #1674502 (Bug #95639) ** 'p4 filelog' run against a graph file no longer causes issues with successive commands run on the same connection. Bugs fixed in 2018.1 Patch 2 #1672670 (Bug #94877) *** Fix new proxytotals reporting accuracy. #1672310 ( Bug #95546) ** Correct errors caused by the '-d' option with "p4 merge --repo". #1667081 (Bug #95136) ** Optimize the 'p4 filelog -m1" for graph repos. The normal and -ztag output format are slightly different. #1666512 (Bug #94847) ** The filesys.checklinks configurable will may now be set to '4', providing the same checking as '3' but disallows using '-f' to override the check. #1665939 (Bug #95333) ** 'p4 logparse' could fail to find the structured log file under certain conditions. This has been fixed. #1665779 (Bugs #92403, #95219) ** 'p4 revert -C client' would fail to revert files in the target workspace if that workspace was locked or specified a host other than the one the command was run from. This has been fixed. #1665775 (Bug #95317) ** Graph merges reject non-interactive requests that do not have a client mapping. This has been fixed. #1662526 (Bug #95163) ** 'p4 show-permissions' would fail to show permissions granted at a depot level when a repo within that depot was specified. This has been fixed. #1658865 (Bug #95149) ** The error message produced when a graph merge fails due to a file not being in the client view is incorrect. This has been fixed. 1651515 (Bug #94778) ** Provide 'p4 pubkeys [-k key -t type]' lookup. This option verifies existence of an ssh public key. Bugs fixed in 2018.1 Patch 1 #1655243 (Bug #95102) ** The database table (db.haveg) for tracking file-specific revisions in a graph depot now correctly retains entries after a user invokes p4 edit followed by p4 revert. #1653784 (Bug #95033) ** A scheduled checkpoint on a 'standby' or 'forwarding-standby' server executed when the master server's journal is rotated no longer corrupts the prior journalcopy'd journal. #1651968 (Bug #94668) ** If a graph depot client workspace is set to 'noclobber' and the user issues the 'p4 sync ...#0' (or 'p4 sync ...#none') command even though one or more 'noclobber' files cannot be removed from the workspace, the output of the 'p4 have' command correctly displays 'File specific revisions' instead of 'File(s) not on client'. #1650350 (Bug #93996) ** Graph permissions of at least read level are now required before graph depots are made visible to users. #1649010 (Bug #93650) ** An interactive graph merge operation incorrectly ignored conflicting files outside of the client view. This has been fixed. #1649031 (Bug #94528, #94911) ** Graph depot permissions may now be set across all graph depots by specifying '-d *'. Additionally, 'p4 show-permissions' now accepts a '-g' flag show permissions that apply to the specified group. #1646840 (Bug #94877) *** Additional logging is now reported by the proxy when track=1 is set. The new proxytotals line records the number of files and the total file size (in MB) transferred to the client from the upstream server and from the proxy's cache. #1645485 (Bug #94825) ** 'p4 fstat' using a revision specification on an opened file would hang if the file had ditto mapping. This has been fixed. #1644841 (Bug #94890) ** Creation or deletion of a graph branch on a client connected to an edge replica is not supported. A proper error message is now displayed. #1644657 (Bug #94670) ** When a file was not sync (eg: noclobber) and was at a different revision than the rest of the graph client workspace, but later was deleted (by another user) and the user attempts to edit it, a proper error will be displayed. #1644215 (Bug #94634) ** 'p4 submit' on a graph depot without the "leaveunchanged" submit option would leave unchanged files with read/write permission. This has been fixed. #1643679 (Bug #94827) ** Fixed "p4 switch" for graph to work with branch names that are legal, possibly shortened, SHA values. #1643520 (Bug #94831) ** A multi-repo graph switch with an empty repo could cause a failure. This has been fixed. #1643295 (Bug #94106) ** The help text for graph resolve was incorrect. This has been fixed. #1642219 (Bug #93833) ** Adding support for file with wildcards in 'p4 add -f' in graph. #1642206 (Bug #94633) ** Symbolic links not deleted properly in graph client with allwrite noclobber. #1641204 (Bug #94538) ** Network problems can cause graph submit to process the request in the wrong order. This has been fixed. #1641056 (Bug #94742) ** Graph 'p4 sync' would schedule an unneeded resolve if a file that is being synced is opened for edit. This has been fixed. #1640625 (Bug #94700) ** p4 describe on a changelist number containing multiple graph repos can sometimes report on only one repo. This has been fixed. #1638175 (Bug #94493) ** Graph 'p4 client -d' would not check for opened files before deleting the client. Also the -f option would not revert opened files before deleting the client. These behaviors have been fixed. #1636355 (Bug #94567) ** A one-off memory leak in a server using an SSL P4PORT is fixed. #1635754 (Bug #94636) ** Unrecognized join-join code in p4 sync in some conditions. Happens when one file is open for edit and p4 sync would add a new file from another submit. The new file will not be added to the workspace and the error will be displayed instead. #1635359 (Bug #94621) ** Certain server rejectList settings will no longer block replication. #1634420 (Bug #94470) ** 'p4 client -T type' now correctly sets client type when a client template is specified via 'p4 client -t' or the template.client server configurable. #1634347 (Bug #94428) ** Clients configured with 'allwrite' now correctly sync lfs files. #1634345 (Bug #94255) ** Running 'p4 add -c' against a file already opened for add in a graph depot gave the wrong error. This has been fixed. #1634236 (Bug #94599) ** Running 'p4 submit -c' from a graph client against an existing submitted changelist number gave an unhelpful error message. This has been fixed. #1633781 (Bug #94559) ** Running 'p4 describe' against a pending changelist owned by a graph client could crash the server. This has been fixed. #1633069 (Bug #93131) ** p4 grant|revoke permission now disallows '...' in user/group names. #1633065 (Bug #94342) ** 'p4 switch -d' run from a graph type client now warns before deleting a branch that is not merged with its parent (the repo's default branch) and in this case requires the -f force flag to be passed. #1632668, #1628823 (Bug #91231, Bug #94494) ** Deletion of empty repos no longer requires the -f flag. #1631097 (Bug #94187) ** 'p4 reconcile' run from a graph type client could report the same files added twice under certain conditions. This has been fixed. #1631503 (Bug #94555) ** 'p4 graph show-ref -e nameFilter' now supports '.' in ref names. Bugs fixed in 2018.1 #1636440 (Bug #94694) ** p4 sync removed +w (for noclobber client) on lfs file during sync #1635359 (Bug #94621) ** Certain server rejectList settings will no longer block replication. #1630915 (Bug #94537) ** When 'p4 login2 -S check-auth' is run and the second factor authentication service's response is that an external prompt has been rejected, the user's second factor authentication status remained 'required waiting' when it should have transitioned to 'required rejected'. This has been fixed. #1628184 (Bug #93747) ** The journalcopy on a Windows standby server from a server running on a platform other than Windows is now journalcopy'd correctly. #1626200 (Bug #91459) ** 'p4 receive-pack' now prevents ASCII control characters from being used in reference names. #1625571 (Bug #93641) ** 'p4 pull --batch' could cause graph depot pack and index archive files to be transferred using incorrect filenames, resulting in 'Blob data not found' errors from 'p4 sync'. This has been fixed. #1625540 (Bug #93916) ** "p4 print -o" is now supported when specifying a graph depot path. Previously the '-o' flag was ignored and the file content would be output to stdout. This has been fixed. #1625385 (Bug #93132) ** Providing 'p4 receive-pack' with a truncated pack file could cause the server to crash. This has been fixed. #1624026 (Bug #93453) ** Parallel sync of from a graph depot via a forwarding replica may crash the parallel transfer threads. This has been fixed. #1622147 (Bug #94348) ** Running 'p4 diff2' against 2 files in different graph depot repos could cause a crash. This has been fixed. #1620977 (Bug #92620) ** If a sync of a graph file failed, the server would record that the sync had completed for the entire commit, preventing further sync commands from attempting to retry. The server now records a list of exceptions to the files sync'ed to the have commit so that the sync can be retried. #1620366 (Bug #90502) ** 'p4 resolve' in a federated environment could leave orphaned locks after a filetype resolve that changed files from '+l' to filetypes without '+l'. This has been fixed. #1619465 (Bug #92050) ** 'p4 dirs' run against a graph depot path would ignore the '-C', '-D' and '-H' flags, returning misleading results. These flags are not supported yet when specifying a graph depot path, and now return no files instead. #1619071 (Bug #94219) ** It was possible that a unicode server running on Windows may crash if untranslatable characters were entered in a password when the user logging in is configured to use LDAP authentication. This has been fixed. #1618574 (Bug #94247) Post-command triggers for spec-updating commands would get internal RPC callback function names instead of the user command names. For example: 'dm-UpdateClientSpec' instead of 'user-client' for a 'p4 client' command. This has been fixed. #1618387 (Bug #94152) ** Creating and deleting the same label at the same time could result in a deadlock, hanging the server. This has been fixed. #1617327 (Bug #94225) ** A memory leak when running 'p4 merge' against a graph depot has been fixed. #1614880 (Bug #94116) ** A memory leak when running 'p4 shelve -d' without any file arguments has been fixed. #1614541 (Bug #93383) ** Active LDAP configs may have been skipped on insensitive platforms due to the case of the LDAP configuration name not matching. This has been fixed. #1614386 (Bug #5109) ** 'p4 protect', 'p4 triggers' and 'p4 typemap' now require that the main list field name is present in the spec, even if the list is empty. This is to prevent accidentally resetting these specs from the command line by running 'p4 protect -i' and then using CTRL+C to cancel in the input. #1608123 (Bug #93736) ** 'p4 describe -a' for graph depot no longer attempts to display file diff for deleted files. #1604210 (Bug #90915) ** The 'p4 reshelve' command would fail to shelve into an existing changelist when run against a non-distributed server running with a serverId. This has been fixed. #1600842 (Bug 93672) ** 'p4 graph receive-pack' was completing regardless of failing graph-push-reference triggers. This has been fixed. #1598323 (Bug #89751) ** 'p4 graph receive-pack --discard-archives' could remove pack files that were in use by other threads. This has been fixed. #1592596 (Bug #92822) * 'p4 ignores -i' no longer concatenates the current working directory to the paths of files specified with absolute files. #1590591 (Bug #92898) ** 'p4 logout -a' was not clearing the second factor authentication state for users who's state were set to persistent. This has been fixed. #1589311 (Bug #92744) ** Files of type 'utf8' containing content that ends with a partial utf8 sequence will now correctly result in a translation error when attempting to submit from a pre-15.2 client. #1582091 (Bug #92754, #81128 ) ** Readonly clients are now allowed to run 'p4 clean' and 'p4 status'. #1577965 (Bug #93001) ** 'p4 annotate -I' will no longer terminate abnormally if access to a branch is excluded within some integration histories. #1568232 (Bug #91885) ** Submitting a moved 'utf8' file using a pre-15.2 client no longer results in a missing archive. #1562762 (Bug #92623) **** When the p4broker is in router mode, an unresponsive altserver might not have its connection error sent to the client. #1561275 (Bug #92417) ** A delay in the replication of a consistency point will no longer corrupt the journal written by a 'journalcopy' thread.