@@ -10,17 +10,6 @@ import (
1010 "strings"
1111)
1212
13- var GlobalFlags []string
14-
15- func Version () (string , error ) {
16- versionCmd := exec .Command ("git" , "version" )
17- output , err := versionCmd .Output ()
18- if err != nil {
19- return "" , fmt .Errorf ("error running git version: %s" , err )
20- }
21- return firstLine (output ), nil
22- }
23-
2413var cachedDir string
2514
2615func Dir () (string , error ) {
@@ -35,30 +24,12 @@ func Dir() (string, error) {
3524 return "" , fmt .Errorf ("Not a git repository (or any of the parent directories): .git" )
3625 }
3726
38- var chdir string
39- for i , flag := range GlobalFlags {
40- if flag == "-C" {
41- dir := GlobalFlags [i + 1 ]
42- if filepath .IsAbs (dir ) {
43- chdir = dir
44- } else {
45- chdir = filepath .Join (chdir , dir )
46- }
47- }
48- }
49-
5027 gitDir := firstLine (output )
51-
5228 if ! filepath .IsAbs (gitDir ) {
53- if chdir != "" {
54- gitDir = filepath .Join (chdir , gitDir )
55- }
56-
5729 gitDir , err = filepath .Abs (gitDir )
5830 if err != nil {
5931 return "" , err
6032 }
61-
6233 gitDir = filepath .Clean (gitDir )
6334 }
6435
@@ -157,58 +128,6 @@ func SymbolicFullName(name string) (string, error) {
157128 return firstLine (output ), nil
158129}
159130
160- func Ref (ref string ) (string , error ) {
161- parseCmd := exec .Command ("git" , "rev-parse" , "-q" , ref )
162- parseCmd .Stderr = nil
163- output , err := parseCmd .Output ()
164- if err != nil {
165- return "" , fmt .Errorf ("Unknown revision or path not in the working tree: %s" , ref )
166- }
167-
168- return firstLine (output ), nil
169- }
170-
171- func RefList (a , b string ) ([]string , error ) {
172- ref := fmt .Sprintf ("%s...%s" , a , b )
173- listCmd := exec .Command ("git" , "rev-list" , "--cherry-pick" , "--right-only" , "--no-merges" , ref )
174- listCmd .Stderr = nil
175- output , err := listCmd .Output ()
176- if err != nil {
177- return nil , fmt .Errorf ("Can't load rev-list for %s" , ref )
178- }
179-
180- return outputLines (output ), nil
181- }
182-
183- func NewRange (a , b string ) (* Range , error ) {
184- parseCmd := exec .Command ("git" , "rev-parse" , "-q" , a , b )
185- parseCmd .Stderr = nil
186- output , err := parseCmd .Output ()
187- if err != nil {
188- return nil , err
189- }
190-
191- lines := outputLines (output )
192- if len (lines ) != 2 {
193- return nil , fmt .Errorf ("Can't parse range %s..%s" , a , b )
194- }
195- return & Range {lines [0 ], lines [1 ]}, nil
196- }
197-
198- type Range struct {
199- A string
200- B string
201- }
202-
203- func (r * Range ) IsIdentical () bool {
204- return strings .EqualFold (r .A , r .B )
205- }
206-
207- func (r * Range ) IsAncestor () bool {
208- cmd := exec .Command ("git" , "merge-base" , "--is-ancestor" , r .A , r .B )
209- return cmd .Run () != nil
210- }
211-
212131func CommentChar (text string ) (string , error ) {
213132 char , err := Config ("core.commentchar" )
214133 if err != nil {
@@ -261,7 +180,14 @@ func Remotes() ([]string, error) {
261180}
262181
263182func Config (name string ) (string , error ) {
264- return gitGetConfig (name )
183+ configCmd := exec .Command ("git" , "config" , name )
184+ output , err := configCmd .Output ()
185+ if err != nil {
186+ return "" , fmt .Errorf ("unknown config key: %s" , name )
187+ }
188+
189+ return firstLine (output ), nil
190+
265191}
266192
267193func ConfigAll (name string ) ([]string , error ) {
@@ -270,48 +196,14 @@ func ConfigAll(name string) ([]string, error) {
270196 mode = "--get-regexp"
271197 }
272198
273- configCmd := exec .Command ("git" , gitConfigCommand ([] string { mode , name }) ... )
199+ configCmd := exec .Command ("git" , "config" , mode , name )
274200 output , err := configCmd .Output ()
275201 if err != nil {
276202 return nil , fmt .Errorf ("Unknown config %s" , name )
277203 }
278204 return outputLines (output ), nil
279205}
280206
281- func GlobalConfig (name string ) (string , error ) {
282- return gitGetConfig ("--global" , name )
283- }
284-
285- func SetGlobalConfig (name , value string ) error {
286- _ , err := gitConfig ("--global" , name , value )
287- return err
288- }
289-
290- func gitGetConfig (args ... string ) (string , error ) {
291- configCmd := exec .Command ("git" , gitConfigCommand (args )... )
292- output , err := configCmd .Output ()
293- if err != nil {
294- return "" , fmt .Errorf ("Unknown config %s" , args [len (args )- 1 ])
295- }
296-
297- return firstLine (output ), nil
298- }
299-
300- func gitConfig (args ... string ) ([]string , error ) {
301- configCmd := exec .Command ("git" , gitConfigCommand (args )... )
302- output , err := configCmd .Output ()
303- return outputLines (output ), err
304- }
305-
306- func gitConfigCommand (args []string ) []string {
307- cmd := []string {"config" }
308- return append (cmd , args ... )
309- }
310-
311- func Alias (name string ) (string , error ) {
312- return Config (fmt .Sprintf ("alias.%s" , name ))
313- }
314-
315207func Run (args ... string ) error {
316208 cmd := exec .Command ("git" , args ... )
317209 return cmd .Run ()
0 commit comments