@@ -126,32 +126,33 @@ func (m *Manager) VerifyBranchMetadata() error {
126126 return nil
127127 }
128128
129- latest := snapshots [ 0 ]
129+ branchHeads := make ( map [ string ] string )
130130
131- brName , err := m .getProperty (branchProp , latest .ID )
132- if err != nil {
133- log .Dbg ("cannot find branch for snapshot" , latest .ID , err .Error ())
134- }
131+ for i := numberSnapshots ; i > 0 ; i -- {
132+ sn := snapshots [i - 1 ]
133+ log .Dbg (sn )
135134
136- for i := numberSnapshots ; i > 1 ; i -- {
137- if err := m .SetRelation (snapshots [i - 1 ].ID , snapshots [i - 2 ].ID ); err != nil {
138- return fmt .Errorf ("failed to set snapshot relations: %w" , err )
135+ if err := m .DeleteBranchProp (sn .Branch , sn .ID ); err != nil {
136+ return fmt .Errorf ("failed to clean branch property: %w" , err )
139137 }
140138
141- if brName == "" {
142- brName , err = m .getProperty (branchProp , snapshots [i - 1 ].ID )
143- if err != nil {
144- log .Dbg ("cannot find branch for snapshot" , snapshots [i - 1 ].ID , err .Error ())
145- }
139+ head , ok := branchHeads [sn .Branch ]
140+ if ! ok {
141+ branchHeads [sn .Branch ] = sn .ID
142+ continue
143+ }
144+
145+ if err := m .SetRelation (head , sn .ID ); err != nil {
146+ return fmt .Errorf ("failed to set snapshot relations: %w" , err )
146147 }
147- }
148148
149- if brName == "" {
150- brName = branching .DefaultBranch
149+ branchHeads [sn .Branch ] = sn .ID
151150 }
152151
153- if err := m .AddBranchProp (brName , latest .ID ); err != nil {
154- return fmt .Errorf ("failed to add branch property: %w" , err )
152+ for brName , latestID := range branchHeads {
153+ if err := m .AddBranchProp (brName , latestID ); err != nil {
154+ return fmt .Errorf ("failed to add branch property: %w" , err )
155+ }
155156 }
156157
157158 log .Msg ("data branching has been verified" )
0 commit comments