@@ -9,86 +9,29 @@ import (
99
1010// WARNING: Doing tricks on it
1111func updateRepo (AdjBranch string ) error {
12- var repo * git.Repository
1312 var err error
1413
1514 if AdjBranch == "" {
16- // Makes use of submodule
15+ // Makes use of user's custom ADJ
1716 return nil
1817 } else {
18+ cloneOptions := & git.CloneOptions {
19+ URL : RepoUrl ,
20+ ReferenceName : plumbing .NewBranchReferenceName (AdjBranch ),
21+ SingleBranch : true ,
22+ Depth : 1 ,
23+ }
1924 if _ , err = os .Stat (RepoPath ); os .IsNotExist (err ) {
20- repo , err = git .PlainClone (RepoPath , false , & git.CloneOptions {
21- URL : RepoUrl ,
22- ReferenceName : plumbing .NewBranchReferenceName (AdjBranch ),
23- SingleBranch : true ,
24- Depth : 1 ,
25- })
25+ _ , err = git .PlainClone (RepoPath , false , cloneOptions )
2626 if err != nil {
2727 return err
2828 }
2929 } else {
30- repo , err = git .PlainOpen (RepoPath )
31- if err != nil {
30+ if err = os .RemoveAll (RepoPath ); err != nil {
3231 return err
3332 }
34- }
35-
36- err = repo .Fetch (& git.FetchOptions {
37- RemoteName : "origin" ,
38- Force : true ,
39- })
40- if err != nil && err != git .NoErrAlreadyUpToDate {
41- return err
42- }
43-
44- head , err := repo .Head ()
45- if err != nil {
46- return err
47- }
48-
49- branch := head .Name ().Short ()
50-
51- worktree , err := repo .Worktree ()
52- if err != nil {
53- return err
54- }
55-
56- if branch != AdjBranch {
57- localBranchRef := plumbing .NewBranchReferenceName (AdjBranch )
58- _ , err = repo .Reference (localBranchRef , false )
33+ _ , err = git .PlainClone (RepoPath , false , cloneOptions )
5934 if err != nil {
60- remoteBranchRef := plumbing .NewRemoteReferenceName ("origin" , AdjBranch )
61- remoteRef , err2 := repo .Reference (remoteBranchRef , true )
62- if err2 != nil {
63- return err2
64- }
65-
66- err = worktree .Checkout (& git.CheckoutOptions {
67- Branch : localBranchRef ,
68- Create : true ,
69- Force : true ,
70- Hash : remoteRef .Hash (),
71- })
72- if err != nil {
73- println (err .Error ())
74- return err
75- }
76- } else {
77- err = worktree .Checkout (& git.CheckoutOptions {
78- Branch : localBranchRef ,
79- Force : true ,
80- })
81- }
82- }
83-
84- err = worktree .Pull (& git.PullOptions {
85- RemoteName : "origin" ,
86- SingleBranch : true ,
87- })
88- if err != nil {
89- if err == git .NoErrAlreadyUpToDate {
90- return nil
91- } else {
9235 return err
9336 }
9437 }
0 commit comments