Skip to content

Releases: microsoft/p4vfs

1.28.2.0

13 Oct 23:38
2b65a29
Compare
Choose a tag to compare

This release includes a minor fix.

Version [1.28.2.0]

  • Fixing support for specifying a value for P4TICKETS from within a P4CONFIG file,
    and correctly used from working directory of p4vfs.exe, or placeholder file folder
    during service hydration. Service requires P4CONFIG set in system environment or
    system registry.

1.28.1.0

24 Sep 04:34
cc1a189
Compare
Choose a tag to compare

This release fixes a minor intermittent memory leak which has existed prior to the OSS release of P4VFS.

Version [1.28.1.0]

  • Fixing possible memory leak during sync operation while accumulating logging
    elements for statistics

1.28.0.0

19 Aug 19:40
Compare
Choose a tag to compare

This release fixes some minor logging bugs and compatibility issues with early versions of Windows Server. It also includes update to latest recommended stable versions of OpenSSL and P4API for security.

Version [1.28.0.0]

  • Addition of 'dehydrate' command as synonym for 'resident -v', for changing existing
    files from #have to zero-byte placeholder files. Unit tests included.
  • Fixing support for p4vfsflt driver backwards compatibility for Windows Server 2019 and
    earlier, including Windows prior to Windows 10 version 2004. This addressed
    down-level compatibility new zeroed allocation API's such as ExAllocatePool2
  • Fixing bug causing some perforce sync errors not to be shown when doing a quite
    single mode sync, such as 'populate', or 'sync -q -m Single'.
  • Update to P4API 2024.1 and OpenSSL 3.3.1. UnitTest now uses p4d.exe/p4.exe 2024.1
  • Virtual sync details at the start of sync operation now write to StdOut instead of StdErr

1.27.1.0

20 Mar 04:06
Compare
Choose a tag to compare

This release of Microsoft P4VFS now automatically supports Dev Drive for Windows 11. This allows for using P4VFS virtual sync as expected on workspaces residing on high-performance ReFS Dev Drive volumes.

Version [1.27.1.0]

  • Now also ignoring specdef tag from P4API results, similar to P4API.NET
  • The P4VFS install now configures the driver as allowed by Windows Dev Drive, and the uninstall will remove this exemption.
  • Additional native unit tests for windows registry utilities and Dev Drive installation
  • Additional Dev Drive unit tests with ReFS virtual hard drive

1.27.0.0

11 Dec 04:27
ed52e5d
Compare
Choose a tag to compare

This is the first release use new altsync related features from Perforce server 2023.1 and later. Specifically, the new P4API support for sizes -C option to make placeholder file size to be the same as expected once hydrated. This discrepancy usually occurs with various text filetype's and this correction allows the actual hydrated file size to be determined from a placeholder file's extended attributes. (addresses issue #3)

Version [1.27.0.0]

  • New sync -c option to force the placeholder file size to be the expected workspace
    file size, instead of server file size. This requires server 2023.1 or later.
  • Updating to P4API 2023.2 and OpenSSL 1.1.1v. UnitTest now uses p4d.exe/p4.exe 2023.1
  • P4VFS.External checksum verification fix to handle unexpected whitespace around SHA256
  • Driver IRP_MJ_CREATE PostCreate callback fix for properly ignoring reparse on non-P4VFS
    files with FileTag matching our P4VFS_REPARSE_TAG.
  • Driver now requires process to be elevated in order to set control parameters (p4vfs ctrl)
  • Addition of DepotClient accessor for server protocol level used for testing for server
    features and unicode behavior
  • Additional tests for elevated access requirements for internal p4vfsflt control port
    operations
  • Fixing stdout display of native unit test assertions and other inner assertions
  • Fixing bug where "Text" would appear at the top of the Setup details output.
  • Additional tests for both internal ClientSize sync API and p4vfs sync -c

1.26.1.0

16 Jul 19:20
53a73dd
Compare
Choose a tag to compare

The 1.26.1.0 is minor update to fix support for non-ASCII characters in file paths on non-unicode perforce servers.
Primarily fixes issue #15

Version [1.26.1.0]

  • Fixing support for file paths including non-ASCII single-byte (CP-1252) encoded characters.
    Additional unit test for handling file paths containing common french accent marks.
  • Fixing execution of remote unit tests requiring an installed p4.exe instead of using
    the included P4VFS external binaries

1.24.0.0

09 Mar 04:29
038dd21
Compare
Choose a tag to compare

First open source release of the Microsoft Virtual File System for Perforce

1.26.0.0

10 Jul 00:56
85beb9a
Compare
Choose a tag to compare

The 1.26.0.0 is primarily a refactor of perforce login flow to properly support new single-sign-on (SSO) features such as the Helix Authentication Service (2). Microsoft P4VFS continues to support legacy client P4LOGINSSO login, as well as password login. The on-demand HAS web browser SSO login flow integrates well with login requests from either the p4vfs.exe client or the windows service.

The Helix Authentication Service extension is becoming a very popular technique across Microsoft Xbox Studios for authenticating perforce credentials using Microsoft Azure Active Directory. Similar support exists for the Okta identity provider as well.

Version [1.26.0.0]

  • Driver using officially allocated FSFilter HSM altitude of 189700
  • Refactor of perforce client login operations to support common forms of password and
    SSO login. This includes password auth, classic P4LOGINSSO client script auth, and server
    auth extensions such as Helix Authentication Service.
  • Fixing service process launch as impersonated user to include the user's profile environment.
    This allows the service's interactive password prompt, or browser authentication, to execute
    with expected user environment variables.

1.25.1.0

28 Jun 04:50
cd6d798
Compare
Choose a tag to compare

The 1.25.1.0 release is a minor update containing bug fixes and a few new features. A primary motivation for this release has been to support a new reconfig command. We currently require this command to help quickly switch existing placeholder files in a workspace to use a new P4PORT, such as replica or broker server, instead of the commit server. It also supports modifying the P4CLIENT, and/or P4USER referenced by the placeholder files.

Version [1.25.1.0]

  • Addition of new "hydrate" command as synonym for "resident -x". Moved the implementation into
    C++ and now using a single fstat command instead of a files & where command.
  • Moving native thread pool utilites for system limits into shared location
  • Addition of native parallel directory traversal utility and new TestIterateDirectoryParallel
    unit test to verify correctness. Implementation allows both the directory traversal, as well
    as the visitation, to be done across multiple threads. This will be used for sweeping operations
    including hydrating and reconfiguring files recursively.
  • Addition of new service setting "PoolDefaultNumberOfThreads" to customize the default number
    of thread pool threads for concurrent operations, such as a virtual sync.
  • Native test factory now displays both skipped and executed tests, similar to Managed factory.
  • Major refactor to managed interface for native SettingManager which fixes missing new
    properties being serialized in configuration files, and reported in 'p4vfs set'. Managed property
    code generation now moved into C++ to remove duplication.
  • Addition of service tick thread for performing garbage collection on cached DepotClient
    connections. Two new settings GarbageCollectPeriodMs & DepotClientCacheIdleTimeoutMs can be
    configured to remove lingering (cached) connections at a certain frequency and life-time.
  • Addition of user settings file locations for allowing incremental overrides of installed settings.
    Settings files are now loaded in order (with UserSettingsFilePath loaded last)
    1. InstalledSettingsFilePath - C:\Program Files\P4VFS\P4VFS.Settings.xml
      This is most common installed settings file
    2. AssemblySettingsFilePath - <directory of p4vfs.exe or P4VFS.Service.exe>\P4VFS.Settings.xml
      Primarily used for custom unit test run settings
    3. PublicSettingsFilePath - %PUBLIC%\P4VFS.Settings.xml
      Shared user location for both p4vfs and service
    4. UserSettingsFilePath - %USERPROFILE%\P4VFS.Settings.xml
      Different for p4vfs.exe and non-impersonated service
  • Addition of DepotClientCacheIdleTimeoutTest which verifies correct operation of service
    garbage collection frequency and behavior
  • Adding timestamps to version headers in release notes P4VFS.Notes.txt
  • Addition of p4vfs reconfig command to modify the perforce configuration of local
    placeholder files. Includes options for limiting which configuration variable to apply.
    This is commonly used to change files in an existing workspace to use a different
    perforce server endpoint (ie, a different broker or proxy server) without requiring a
    force sync #have
  • Fixing bug where resident command doesn't correctly support quiet logging (#23). Additional
    unit test to verify -q option works correctly for commands that support it.

1.25.0.0

27 Mar 02:06
0a111b3
Compare
Choose a tag to compare

The 1.25.0.0 release is the first release developed as Open Source on GitHub. This version includes some significant optimizations and fixes from the community. This has also given us the opportunity to create GitHub actions for CI, as well as production CI/CD pipelines internal to Microsoft for codesigned releases. Notable changes from the previous release:

Version [1.25.0.0]

  • Updated drivers for VS 2022 and WDK 10.0.22621.382

Version [1.24.2.0]

  • Specializing the Algo::Contains method to for optimized use of HashSet. This significantly
    speeds up the Contains ops in the last loop of DepotOperations::SyncCommand. @belkiss
  • Fixing test FileAttributeTest for handling possible NotContentIndexed attribute @belkiss
  • Removing UnitTest EventSourceAnalyzer dependency and cleanup of EventSource trace
    support and tests

Version [1.24.1.0]

  • Adding simple verify pipeline for running on GitHub hosted runners which has required
    some library updates, for the best. Full CI/CD pipelines remain in internal Microsoft
    DevOps for codesign purposes.
  • Updating to Visual Studio 2022 (17.5.1). Platform toolset v143. MSVC Redist 14.34.31931
  • Updating to Windows SDK version 10.0.22621.0 (current latest component install for 17.5.1)
  • Updating to WDK version 10.0.22621.382
  • Updating to OpenSSL 1.1.1t
  • Dropping driver support for Windows 8.1 and earlier.

Full Release Notes