Skip to content

Conversation

@BillyONeal
Copy link
Member

@BillyONeal BillyONeal commented Aug 27, 2025

Avoids a second recursive disk enumeration when installing a package.

  • files.h: Add get_files_recursive_lexically_proximate
  • path.h: Hoist parse_filename because it's also useful for parsing that out of lst files
  • commands.export.h/.cpp: Extract the bit that converts the .lst into a list of files to install so that it can be unit tested.
  • commands.install.h/.cpp:
    • Change install_files_and_write_listfile to accept the proximate file list and the triplet subdirectory as separate parameters, rather than trying to parse that out of the input strings.

@BillyONeal BillyONeal marked this pull request as ready for review August 28, 2025 19:09

if (ec)
{
msg::println_warning(format_filesystem_call_error(ec, "symlink_status", {file}));
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This fixed always claiming to be symlink_status if status is used.


const size_t prefix_length = source_dir.native().size();
const Path& destination = destination_dir.destination();
std::string destination_subdirectory = destination.filename().to_string();
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note former destination_subdirectory is now triplet_canonical_name.

ras0219-msft
ras0219-msft previously approved these changes Aug 28, 2025
Co-authored-by: Robert Schumacher <[email protected]>
@BillyONeal BillyONeal merged commit 64f53c6 into microsoft:main Aug 29, 2025
7 checks passed
@BillyONeal BillyONeal deleted the dedupe-file-lists branch September 10, 2025 19:56
vicroms pushed a commit to vicroms/vcpkg-tool that referenced this pull request Oct 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants