Skip to content

accurev excl (excludes) are ignored in deep-hist migrations #124

@mr-scrawley

Description

@mr-scrawley

First off: I'm aware that this repo is not actively maintained, I just wanted to publish my findings in this issue and a PR including my fixes to help others in the same situation.

I am working with a somewhat unconventional AccuRev depot structure that makes heavy use of pass-through streams and the exclude feature to maintain multiple applications in one big depot. Some of these applications share no code with the rest of the depot while others share a small amount. Pass-through streams are mostly used to group and structure the streams, but (critically) sometimes carry exclude information directly. A simplified and generalized example of how this looks like:

graph LR
    root["`Root<br>*stream*`"] --> pt1{"`Desktop Apps<br>*pass-through*`"}
    pt1 -.- excl1>"`*exclude rules for Web App elements*`"]
    pt1 --> app1["`App 1<br>*stream*`"]
    pt1 --> app2["`App 2<br>*stream*`"]
    root --> pt2{"`Web Apps<br>*pass-through*`"}
    pt2 -.- excl2>"`*exclude rules for Desktop App elements*`"]
    pt2 --> lib1["`WebApp 1<br>*stream*`"]
    pt2 --> lib2["`WebApp 2<br>*stream*`"]
Loading

When trying to migrate such a depot using the deep-hist method, the git trees of the resulting commits do not match the result of an accurev pop on the corresponding source transactions. The git trees often include files that had already been excluded in the accurev source stream at that point in time.

The reason for this appears to be two-fold:

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