You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
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.
Snapshots fixes and optimizations #88 has introduced a perfomance optimization based on the assumption that pass-through streams can be skipped when collecting relevant transactions using deep-hist. This is not the case for pass-through streams where exclude rules have been applied.
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*`"]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 popon 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:
ignored_transaction_typeslist which includesdefcomp(aka "define component") which is the transaction type that results from callingaccurev excl.