Merge branch 'master' into lfsapi/slight-extraheaders-optimization

This commit is contained in:
risk danger olson 2017-10-03 09:12:57 -07:00 committed by GitHub
commit 0bae5e05d7
13 changed files with 38 additions and 20 deletions

@ -97,7 +97,7 @@ ArgsLoop:
writeablePatterns = append(writeablePatterns, pattern)
}
Print("Tracking %q", pattern)
Print("Tracking %q", unescapeTrackPattern(encodedArg))
}
// Now read the whole local attributes file and iterate over the contents,
@ -261,7 +261,7 @@ var (
)
func escapeTrackPattern(unescaped string) string {
var escaped string = unescaped
var escaped string = strings.Replace(unescaped, `\`, "/", -1)
for from, to := range trackEscapePatterns {
escaped = strings.Replace(escaped, from, to, -1)

@ -81,6 +81,15 @@ func getAPIClient() *lfsapi.Client {
return apiClient
}
func closeAPIClient() error {
global.Lock()
defer global.Unlock()
if apiClient == nil {
return nil
}
return apiClient.Close()
}
func newLockClient(remote string) *locking.Client {
storageConfig := config.Config.StorageConfig()
lockClient, err := locking.NewClient(remote, getAPIClient())

@ -66,7 +66,7 @@ func Run() {
}
root.Execute()
getAPIClient().Close()
closeAPIClient()
}
func gitlfsCommand(cmd *cobra.Command, args []string) {

@ -44,7 +44,7 @@ be scoped inside the configuration for a remote.
Sets the maximum time, in seconds, that the HTTP client will wait for the
next tcp read or write. If < 1, no activity timeout is used at all.
Default: 10 seconds
Default: 30 seconds
* `lfs.keepalive`

6
glide.lock generated

@ -1,5 +1,5 @@
hash: 7ac0f055e06001b80cc9cfc40de07c103b3b59abec0f3be0fca7cce49b71eec7
updated: 2017-09-19T15:38:52.833333079-06:00
hash: e19b925b9eaca9a10a7742b4a4b1dc8047bff437584538dda59f4f10e69fa6ca
updated: 2017-09-27T12:34:48.032089491-04:00
imports:
- name: github.com/bgentry/go-netrc
version: 9fd32a8b3d3d3f9d43c341bfe098430e07609480
@ -14,7 +14,7 @@ imports:
- name: github.com/pkg/errors
version: c605e284fe17294bda444b34710735b29d1a9d90
- name: github.com/rubyist/tracerx
version: d7bcc0bc315bed2a841841bee5dbecc8d7d7582f
version: 787959303086f44a8c361240dfac53d3e9d53ed2
- name: github.com/spf13/cobra
version: c55cdf33856a08e4822738728b41783292812889
- name: github.com/spf13/pflag

@ -11,7 +11,7 @@ import:
- package: github.com/olekukonko/ts
version: ecf753e7c962639ab5a1fb46f7da627d4c0a04b8
- package: github.com/rubyist/tracerx
version: d7bcc0bc315bed2a841841bee5dbecc8d7d7582f
version: 787959303086f44a8c361240dfac53d3e9d53ed2
- package: github.com/spf13/cobra
version: c55cdf33856a08e4822738728b41783292812889
- package: github.com/spf13/pflag

@ -251,7 +251,7 @@ func (c *Client) httpClient(host string) *http.Client {
MaxIdleConnsPerHost: concurrentTransfers,
}
activityTimeout := 10
activityTimeout := 30
if v, ok := c.uc.Get("lfs", fmt.Sprintf("https://%v", host), "activitytimeout"); ok {
if i, err := strconv.Atoi(v); err == nil {
activityTimeout = i

@ -22,6 +22,8 @@ type credsConfig struct {
// See: https://git-scm.com/docs/gitcredentials#_requesting_credentials
// for more.
AskPass string `os:"GIT_ASKPASS" git:"core.askpass" os:"SSH_ASKPASS"`
// Helper is a string defining the credential helper that Git should use.
Helper string `git:"credential.helper"`
// Cached is a boolean determining whether or not to enable the
// credential cacher.
Cached bool `git:"lfs.cachecredentials"`
@ -42,7 +44,7 @@ func getCredentialHelper(cfg *config.Configuration) (CredentialHelper, error) {
}
var hs []CredentialHelper
if len(ccfg.AskPass) > 0 {
if len(ccfg.Helper) == 0 && len(ccfg.AskPass) > 0 {
hs = append(hs, &AskPassCredentialHelper{
Program: ccfg.AskPass,
})
@ -118,7 +120,7 @@ func (h CredentialHelpers) Reject(what Creds) error {
}
// Approve implements CredentialHelper.Approve and approves the given Creds
// "what" amongst all knonw CredentialHelpers. If any `CredentialHelper`s
// "what" amongst all known CredentialHelpers. If any `CredentialHelper`s
// returned a non-nil error, no further `CredentialHelper`s are notified, so as
// to prevent inconsistent state.
func (h CredentialHelpers) Approve(what Creds) error {

@ -64,9 +64,9 @@ func NewClient(osEnv Env, gitEnv Env) (*Client, error) {
gitEnv = make(TestEnv)
}
netrc, err := ParseNetrc(osEnv)
netrc, netrcfile, err := ParseNetrc(osEnv)
if err != nil {
return nil, err
return nil, errors.Wrap(err, fmt.Sprintf("bad netrc file %s", netrcfile))
}
httpsProxy, httpProxy, noProxy := getProxyServers(osEnv, gitEnv)

@ -11,18 +11,19 @@ type NetrcFinder interface {
FindMachine(string) *netrc.Machine
}
func ParseNetrc(osEnv Env) (NetrcFinder, error) {
func ParseNetrc(osEnv Env) (NetrcFinder, string, error) {
home, _ := osEnv.Get("HOME")
if len(home) == 0 {
return &noFinder{}, nil
return &noFinder{}, "", nil
}
nrcfilename := filepath.Join(home, netrcBasename)
if _, err := os.Stat(nrcfilename); err != nil {
return &noFinder{}, nil
return &noFinder{}, nrcfilename, nil
}
return netrc.ParseFile(nrcfilename)
f, err := netrc.ParseFile(nrcfilename)
return f, nrcfilename, err
}
type noFinder struct{}

@ -19,6 +19,7 @@ begin_test "askpass: push with GIT_ASKPASS"
# $password is defined from test/cmd/lfstest-gitserver.go (see: skipIfBadAuth)
export LFS_ASKPASS_USERNAME="user"
export LFS_ASKPASS_PASSWORD="pass"
git config "credential.helper" ""
GIT_ASKPASS="lfs-askpass" SSH_ASKPASS="dont-call-me" GIT_TRACE=1 GIT_CURL_VERBOSE=1 git push origin master 2>&1 | tee push.log
GITSERVER_USER="$(printf $GITSERVER | sed -e 's/http:\/\//http:\/\/user@/')"
@ -53,6 +54,7 @@ begin_test "askpass: push with core.askPass"
# $password is defined from test/cmd/lfstest-gitserver.go (see: skipIfBadAuth)
export LFS_ASKPASS_PASSWORD="pass"
git config "credential.helper" ""
git config "core.askPass" "lfs-askpass"
cat .git/config
SSH_ASKPASS="dont-call-me" GIT_TRACE=1 GIT_CURL_VERBOSE=1 git push origin master 2>&1 | tee push.log
@ -90,6 +92,7 @@ begin_test "askpass: push with SSH_ASKPASS"
# $password is defined from test/cmd/lfstest-gitserver.go (see: skipIfBadAuth)
export LFS_ASKPASS_USERNAME="user"
export LFS_ASKPASS_PASSWORD="pass"
git config "credential.helper" ""
SSH_ASKPASS="lfs-askpass" GIT_TRACE=1 GIT_CURL_VERBOSE=1 git push origin master 2>&1 | tee push.log
GITSERVER_USER="$(printf $GITSERVER | sed -e 's/http:\/\//http:\/\/user@/')"

@ -93,7 +93,9 @@ begin_test "track directory"
cd dir
git init
git lfs track "foo bar/*"
git lfs track "foo bar\\*" | tee track.txt
[ "foo[[:space:]]bar/* filter=lfs diff=lfs merge=lfs -text" = "$(cat .gitattributes)" ]
[ "Tracking \"foo bar/*\"" = "$(cat track.txt)" ]
mkdir "foo bar"
echo "a" > "foo bar/a"
@ -104,6 +106,7 @@ begin_test "track directory"
assert_pointer "master" "foo bar/a" "87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7" 2
assert_pointer "master" "foo bar/b" "0263829989b6fd954f72baaf2fc64bc2e2f01d692d4de72986ea808f6e99813f" 2
)
end_test
begin_test "track without trailing linebreak"
(

@ -52,7 +52,7 @@ func Printf(format string, args ...interface{}) {
func PrintfKey(key, format string, args ...interface{}) {
tracer := getTracer(key)
if tracer.enabled {
fmt.Fprintf(tracer.w, Prefix+format+"\n", args...)
fmt.Fprintf(tracer.w, time.Now().Format("15:04:05.000000 ")+Prefix+format+"\n", args...)
return
}
}
@ -70,7 +70,7 @@ func PerformanceSinceKey(key, what string, t time.Time) {
if tracer.performance {
since := time.Since(t)
fmt.Fprintf(tracer.w, "performance %s: %.9f s\n", what, since.Seconds())
fmt.Fprintf(tracer.w, time.Now().Format("15:04:05.000000 ")+"performance %s: %.9f s\n", what, since.Seconds())
}
}