@@ -517,13 +517,15 @@ func TestManagedCheckoutBranch_Checkout(t *testing.T) {
517
517
518
518
repo , err := git2go .OpenRepository (filepath .Join (server .Root (), repoPath ))
519
519
g .Expect (err ).ToNot (HaveOccurred ())
520
+ defer repo .Free ()
520
521
521
522
branchRef , err := repo .References .Lookup (fmt .Sprintf ("refs/heads/%s" , git .DefaultBranch ))
522
523
g .Expect (err ).ToNot (HaveOccurred ())
523
524
defer branchRef .Free ()
524
525
525
526
commit , err := repo .LookupCommit (branchRef .Target ())
526
527
g .Expect (err ).ToNot (HaveOccurred ())
528
+ defer commit .Free ()
527
529
528
530
authOpts := & git.AuthOptions {
529
531
TransportOptionsURL : getTransportOptionsURL (git .HTTP ),
@@ -552,6 +554,33 @@ func TestManagedCheckoutBranch_Checkout(t *testing.T) {
552
554
g .Expect (err ).ToNot (HaveOccurred ())
553
555
g .Expect (cc .String ()).To (Equal (git .DefaultBranch + "/" + commit .Id ().String ()))
554
556
g .Expect (git .IsConcreteCommit (* cc )).To (Equal (true ))
557
+
558
+ // Create a new branch and push it.
559
+ err = createBranch (repo , "test" , nil )
560
+ g .Expect (err ).ToNot (HaveOccurred ())
561
+ transportOptsURL := getTransportOptionsURL (git .HTTP )
562
+ managed .AddTransportOptions (transportOptsURL , managed.TransportOptions {
563
+ TargetURL : repoURL ,
564
+ })
565
+ defer managed .RemoveTransportOptions (transportOptsURL )
566
+ origin , err := repo .Remotes .Create ("origin" , transportOptsURL )
567
+ defer origin .Free ()
568
+ g .Expect (err ).ToNot (HaveOccurred ())
569
+ err = origin .Push ([]string {"refs/heads/test:refs/heads/test" }, & git2go.PushOptions {})
570
+ g .Expect (err ).ToNot (HaveOccurred ())
571
+
572
+ branch .Branch = "test"
573
+ tmpDir2 := t .TempDir ()
574
+ cc , err = branch .Checkout (ctx , tmpDir2 , repoURL , authOpts )
575
+ g .Expect (err ).ToNot (HaveOccurred ())
576
+
577
+ // Check if the repo HEAD points to the branch.
578
+ repo , err = git2go .OpenRepository (tmpDir2 )
579
+ g .Expect (err ).ToNot (HaveOccurred ())
580
+ head , err := repo .Head ()
581
+ defer head .Free ()
582
+ g .Expect (err ).ToNot (HaveOccurred ())
583
+ g .Expect (head .Branch ().Name ()).To (Equal ("test" ))
555
584
}
556
585
557
586
func TestManagedCheckoutTag_Checkout (t * testing.T ) {
@@ -573,13 +602,15 @@ func TestManagedCheckoutTag_Checkout(t *testing.T) {
573
602
574
603
repo , err := git2go .OpenRepository (filepath .Join (server .Root (), repoPath ))
575
604
g .Expect (err ).ToNot (HaveOccurred ())
605
+ defer repo .Free ()
576
606
577
607
branchRef , err := repo .References .Lookup (fmt .Sprintf ("refs/heads/%s" , git .DefaultBranch ))
578
608
g .Expect (err ).ToNot (HaveOccurred ())
579
609
defer branchRef .Free ()
580
610
581
611
commit , err := repo .LookupCommit (branchRef .Target ())
582
612
g .Expect (err ).ToNot (HaveOccurred ())
613
+ defer commit .Free ()
583
614
_ , err = tag (repo , commit .Id (), false , "tag-1" , time .Now ())
584
615
585
616
checkoutTag := CheckoutTag {
0 commit comments