Skip to content

Conversation

@silverweed
Copy link
Contributor

This Pull request:

Depends on #20531.

Replaces rootcp.py with a native version in C++.
Like for rootls and rootbrowse, this makes rootcp available even without python and, as a bonus, makes the tool significantly faster (the python version takes about 500ms just to start).

The behaviour should be the same as the python version and it has the benefit of not crashing when trying to copy RNTuples (although RNTuple is not handled yet).

The new rootcp has been currently mostly tested with our own roottest suite, but probably we want some more thorough testing before merging, especially if rootcp is used in experiments workflows.

Other significant changes

  • Some code was put in common between rootls and rootcp (will also be useful for rootmv and likely rootmkdir): this is the code that basically converts a path like "file.root:a/b/*" to a tree of objects and directories.

Checklist:

  • tested changes locally
  • updated the docs (if necessary)

@silverweed silverweed self-assigned this Nov 26, 2025
@silverweed silverweed force-pushed the rootcp_cxx branch 3 times, most recently from ad80460 to a6e4556 Compare November 26, 2025 13:37
@silverweed silverweed marked this pull request as draft November 26, 2025 15:04
@github-actions
Copy link

github-actions bot commented Nov 26, 2025

Test Results

    22 files      22 suites   4d 0h 25m 35s ⏱️
 3 780 tests  3 778 ✅ 0 💤 2 ❌
81 227 runs  81 225 ✅ 0 💤 2 ❌

For more details on these failures, see this check.

Results for commit f96b407.

♻️ This comment has been updated with latest results.

With this change rootcp will by default not print Info messages (same
as rootcp.py), will print a `cp -v`-like output with -v and more detailed
info with -vv.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant