Skip to content

complex --path value, --branch, and BranchSet::stripBasePath incompatibilities #68

@dchsueh

Description

@dchsueh

Hello,

I have a streams-based repository with branches of the format:

//vehicles/rav4/...
//vehicles/rav4-prime/...
//vehicles/rav4-hybrid/...
//vehicles/corolla/...
//vehicles/corolla-cross/...
//vehicles/corolla-hybrid/...

With the "prime", "hybrid", and "cross" variants child streams of the appropriately-named mainline stream.

I'd like to p4-fusion --branch rav4 --branch rav4-prime --branch rav4-hybrid --path //vehicles/rav*/... to convert these three streams. The client is written to also select only these three.

The internal call to p4 changes -l -s submitted //vehicles/rav*/... will get only the CLs that are associated with the three streams implied by the depot path. This simplifies and shortens the list of CLs requested from the server.

The result of p4-fusion called this way is actually to request the right CLs but they end up skipping because they are determined to be "Not under the depot path" in BranchSet::ParseAffectedFiles due to the prefix strip not matching.

If I use --path //vehicles/... I end up with a lot of zero file CLs (corresponding to the non-rav4 streams) and an eventual segfault whose cause I haven't determined yet.

I can kludge the p4-fusion run to do what I want by manually assigning m_basePath but this is very ugly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions