@@ -285,7 +285,7 @@ public void RefRewritingRollsBackOnFailure()
285
285
CommitHeaderRewriter =
286
286
c => CommitRewriteInfo . From ( c , message : "" ) ,
287
287
TagNameRewriter =
288
- ( n , isA , t ) =>
288
+ ( n , a , t ) =>
289
289
{
290
290
var newRef1 =
291
291
repo . Refs . FromGlob ( backupNamespace + "*" ) . FirstOrDefault ( ) ;
@@ -376,7 +376,8 @@ public void CanNotOverWriteAnExistingReference()
376
376
( ) =>
377
377
repo . Refs . RewriteHistory ( new RewriteHistoryOptions
378
378
{
379
- TagNameRewriter = ( n , b , t ) => "test" ,
379
+ TagNameRewriter =
380
+ ( n , a , t ) => "test" ,
380
381
} , commits )
381
382
) ;
382
383
@@ -497,13 +498,12 @@ public void CanProvideNewNamesForTags()
497
498
{
498
499
CommitHeaderRewriter =
499
500
c => CommitRewriteInfo . From ( c , message : "" ) ,
500
- TagNameRewriter =
501
- ( oldName , isAnnotated , o ) => oldName + "_new" ,
501
+ TagNameRewriter = TagNameRewriter ,
502
502
} , repo . Commits . QueryBy ( new CommitFilter { Since = repo . Refs [ "refs/heads/test" ] } ) ) ;
503
503
504
- Assert . NotEqual ( lwTarget , repo . Tags [ "lw_new " ] . Target ) ;
505
- Assert . NotEqual ( e908Target , repo . Tags [ "e90810b_new " ] . Target ) ;
506
- Assert . NotEqual ( testTarget , repo . Tags [ "test_new " ] . Target ) ;
504
+ Assert . NotEqual ( lwTarget , repo . Tags [ "lw_new_e90810b " ] . Target ) ;
505
+ Assert . NotEqual ( e908Target , repo . Tags [ "e90810b_new_7b43849 " ] . Target ) ;
506
+ Assert . NotEqual ( testTarget , repo . Tags [ "test_new_b25fa35 " ] . Target ) ;
507
507
}
508
508
509
509
[ Fact ( Skip = "Rewriting of symbolic references is not supported yet" ) ]
@@ -519,8 +519,7 @@ public void CanRewriteSymbolicRefsPointingToTags()
519
519
{
520
520
CommitHeaderRewriter =
521
521
c => CommitRewriteInfo . From ( c , author : Constants . Signature ) ,
522
- TagNameRewriter =
523
- ( oldName , isAnnotated , o ) => oldName + "_new" ,
522
+ TagNameRewriter = TagNameRewriter ,
524
523
} , repo . Lookup < Commit > ( "e90810b8df" ) ) ;
525
524
526
525
// Ensure the initial tags don't exist anymore...
@@ -532,11 +531,12 @@ public void CanRewriteSymbolicRefsPointingToTags()
532
531
Assert . Equal ( tagRefName , repo . Refs [ "refs/original/tags/another_tracker" ] . TargetIdentifier ) ;
533
532
534
533
// Ensure the renamed symref tags points to the renamed target
535
- Assert . Equal ( tagRefName + "_new" , repo . Refs [ "refs/tags/one_tracker_new" ] . TargetIdentifier ) ;
536
- Assert . Equal ( tagRefName + "_new" , repo . Refs [ "refs/tags/another_tracker_new" ] . TargetIdentifier ) ;
534
+ const string renamedTarget = "refs/tags/test_new_b25fa35" ;
535
+ Assert . Equal ( renamedTarget , repo . Refs [ "refs/tags/one_tracker_new_test" ] . TargetIdentifier ) ;
536
+ Assert . Equal ( renamedTarget , repo . Refs [ "refs/tags/another_tracker_new_test" ] . TargetIdentifier ) ;
537
537
538
538
// Ensure that the non tag symref points to a renamed target...
539
- Assert . Equal ( "refs/tags/another_tracker_new " , repo . Refs [ "refs/attic/dusty_tracker" ] . TargetIdentifier ) ;
539
+ Assert . Equal ( "refs/tags/another_tracker_new_test " , repo . Refs [ "refs/attic/dusty_tracker" ] . TargetIdentifier ) ;
540
540
541
541
// ...and has been backed up as well.
542
542
Assert . Equal ( "refs/tags/another_tracker" , repo . Refs [ "refs/original/attic/dusty_tracker" ] . TargetIdentifier ) ;
@@ -556,26 +556,26 @@ public void HandlesNameRewritingOfChainedTags()
556
556
repo . Refs . RewriteHistory ( new RewriteHistoryOptions
557
557
{
558
558
BackupRefsNamespace = "refs/original/" ,
559
- CommitHeaderRewriter = c => CommitRewriteInfo . From ( c , message : "Rewrote" ) ,
560
- TagNameRewriter = ( oldName , isAnnoted , newTarget ) =>
561
- isAnnoted ? oldName + "_ann" : oldName + "_lw" ,
559
+ CommitHeaderRewriter =
560
+ c => CommitRewriteInfo . From ( c , message : "Rewrote" ) ,
561
+ TagNameRewriter = TagNameRewriter ,
562
562
} , repo . Lookup < Commit > ( "6dcf9bf" ) ) ;
563
563
564
564
// Verify the rewritten tag-annotation chain
565
- var newTagA = repo . Tags [ "lightweightA_lw " ] ;
565
+ var newTagA = repo . Tags [ "lightweightA_new_d53d92e " ] ;
566
566
Assert . NotNull ( newTagA ) ;
567
567
Assert . NotEqual ( newTagA , tagA ) ;
568
568
Assert . True ( newTagA . IsAnnotated ) ;
569
569
570
570
var newAnnotationB = newTagA . Annotation ;
571
571
Assert . NotNull ( newAnnotationB ) ;
572
572
Assert . NotEqual ( newAnnotationB , annotationB ) ;
573
- Assert . Equal ( "annotationB_ann " , newAnnotationB . Name ) ;
573
+ Assert . Equal ( "annotationB_ann_237c1b0 " , newAnnotationB . Name ) ;
574
574
575
575
var newAnnotationC = newAnnotationB . Target as TagAnnotation ;
576
576
Assert . NotNull ( newAnnotationC ) ;
577
577
Assert . NotEqual ( newAnnotationC , annotationC ) ;
578
- Assert . Equal ( "annotationC_ann " , newAnnotationC . Name ) ;
578
+ Assert . Equal ( "annotationC_ann_6dcf9bf " , newAnnotationC . Name ) ;
579
579
580
580
var newCommit = newAnnotationC . Target as Commit ;
581
581
Assert . NotNull ( newCommit ) ;
@@ -590,5 +590,17 @@ public void HandlesNameRewritingOfChainedTags()
590
590
Assert . NotNull ( backedUpTag ) ;
591
591
Assert . Equal ( annotationB , backedUpTag . ResolveToDirectReference ( ) . Target ) ;
592
592
}
593
+
594
+ private static string TagNameRewriter ( string name , bool isAnnotated , string target )
595
+ {
596
+ const string tagPrefix = "refs/tags/" ;
597
+ var t = target == null
598
+ ? ""
599
+ : target . StartsWith ( tagPrefix )
600
+ ? target . Substring ( tagPrefix . Length )
601
+ : target . Substring ( 0 , 7 ) ;
602
+
603
+ return name + ( isAnnotated ? "_ann_" : "_new_" ) + t ;
604
+ }
593
605
}
594
606
}
0 commit comments