@@ -5,33 +5,41 @@ import (
55 "gopkg.in/src-d/go-git.v4"
66 . "gopkg.in/src-d/go-git.v4/_examples"
77 "gopkg.in/src-d/go-git.v4/plumbing"
8- "log"
98 "os"
10- "time"
119)
1210
1311func main () {
1412 cloneDirPtr := flag .String ("clone-dir" , os .Args [0 ], "Directory to clone" )
15- cloneUrlPtr := flag .String ("clone-url" , "https://github.com/fkorotkov/go-git-clone-example" , "URL to clone" )
16- refPtr := flag .String ("ref" , "refs/heads/master" , "reference to clone" )
17- depthPtr := flag .Int ("depth" , 50 , "depth to clone" )
18- singleBranchPtr := flag .Bool ("single-branch" , true , "clone only single branch" )
13+ cloneUrlPtr := flag .String ("clone-url" , "https://github.com/flutter/flutter" , "URL to clone" )
14+ shaPtr := flag .String ("sha" , "" , "sha to clone" )
1915 flag .Parse ()
2016
2117 cloneOptions := git.CloneOptions {
2218 URL : * cloneUrlPtr ,
23- ReferenceName : plumbing .ReferenceName (* refPtr ),
24- Depth : * depthPtr ,
25- SingleBranch : * singleBranchPtr ,
19+ ReferenceName : plumbing .ReferenceName ("refs/heads/master" ),
20+ SingleBranch : true ,
2621 Progress : os .Stdout ,
27- Tags : git .NoTags ,
22+ Tags : git .NoTags ,
2823 }
24+ repo , err := git .PlainClone (* cloneDirPtr , false , & cloneOptions )
25+ CheckIfError (err )
26+ reference , err := repo .Head ()
27+ CheckIfError (err )
28+ Info ("Cloned! Head at %s" , reference )
29+
30+ workTree , err := repo .Worktree ()
31+ CheckIfError (err )
2932
30- start := time .Now ()
31- Info ("Options %s" , cloneOptions )
32- _ , err := git .PlainClone (* cloneDirPtr , false , & cloneOptions )
33- elapsed := time .Now ().Sub (start )
34- log .Printf ("Cloned in %s" , elapsed )
33+ err = workTree .Reset (& git.ResetOptions {
34+ Commit : plumbing .NewHash (* shaPtr ),
35+ Mode : git .HardReset ,
36+ })
37+ CheckIfError (err )
38+ Info ("Hard reseted to %s" , * shaPtr )
3539
40+ status , err := workTree .Status ()
3641 CheckIfError (err )
42+ Info ("Status after reset: %s" , status )
43+
44+ repo .Storer .Index ()
3745}
0 commit comments