Branch: master
-
Merge pull request #3627 from bk2204/ssh-stdin
Pass standard input to ssh
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits
-
Merge pull request #3623 from bk2204/moar-release-fixes
Various release updates
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits
-
Some people have SSH prompt them for their passphrase when a key is used. In such a situation, the user needs to be able to enter a password on standard input so that they can use their key. When invoking ssh, pass our standard input through to the ssh process so that it can prompt the user if needed.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits -
script/packagecloud: add Ubuntu release disco
Now that Ubuntu 19.04 (disco) has been released, add it to the list of release that we can upload for.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits -
script/packagecloud: ignore existing packages
bk2204 committedApr 23, 2019 Every time we build a release, we build new CentOS packages of Ruby and ronn, among others. These packages have the same names as the packages built during previous releases. However, attempting to upload a package with an identical name fails because PackageCloud doesn't allow us to overwrite packages in that way. To prevent the maintainer from having to delete these packages by hand, and to allow the maintainer to retry package uploads if they fail partway through, look for the error message we get if a package already exists and simply ignore it, continuing on as if no error occurred.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits -
Merge pull request #3624 from bk2204/install-system-failure
Improve error handling in git lfs install
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits -
command/install: don't warn about lack of root on Windows
On Windows, we don't have a good way to detect administrator-equivalent permissions. The os.Geteuid call we use on Unix returns -1, so we always print a warning to the user that they lack root permissions (which, since it's Windows, which lacks the root user, technically they do). Nevertheless, this warning is irksome and unwelcome since it's prone to false positives and doesn't tell the user anything about whether their operation is actually likely to succeed or fail. Simply skip printing it on Windows or in any other case where we're unable to fetch the actual user ID.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits -
command/install: exit unsuccessfully on error
bk2204 committedApr 23, 2019 When git lfs install fails, exit unsuccessfully, so that the users writing scripts can easily detect this error. Disable the test on Windows, which does not have the proper chmod behavior to make the test work.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits
-
script/packagecloud: remove SLES 12.4
bk2204 committedApr 23, 2019 SLES 12.4 is not a valid distribution according to PackageCloud, so we can't upload RPMs for it. Remove it from the list since it's not usable.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits -
script/packagecloud: fix syntax error
bk2204 committedApr 23, 2019 Since we now start these array literals with "[" instead of "%w(", close them with "]" instead of ")".Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits -
Makefile: update signing cert hash
bk2204 committedApr 23, 2019 The Git LFS signing cert has changed, so update the default signing cert SHA-1 hash in the Makefile.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits
-
Merge pull request #3569 from mstrap/issue-3252
Issue 3252: git-lfs locks should optionally denote own locks
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits
-
Merge pull request #3584 from bk2204/url-case-config
Properly handle config options for URLs with upper case letters
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits -
Merge pull request #3594 from h-hirokawa/fix-typo-in-href-rewrite
tq/adapterbase: fix typo enableHrefRerite to enableHrefRewrite
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits
-
Merge pull request #3590 from h-hirokawa/rewriting-href
tq/adapterbase: support rewriting href
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits
-
Properly handle config options for URLs with upper case letters
Git configuration options have a complicated situation with regard to case. For the most part, they are case-insensitive: you may write any case into the file, but Git interprets it as lower case. However, there are exceptions. Because the middle component of a three-component option can be a URL, branch name, or remote name, this component (and only this component) is treated as case sensitive. Since this component can be a URL, which may (and, due to the ".git" portion, usually does) contain a dot, the first component of the config option is read up until the first dot, and the last component is read from the end to the last dot. When git config writes a value into the file, it preserves the case the user has provided, and when it prints the config values, it canonicalizes the keys by folding the case-insensitive portions to lowercase. Git LFS then reads this canonicalized form in as our source of config options, relieving us from having to parse the files ourselves. However, when we read this data in, we forced the key to lowercase, and when we looked up a key, we also forced the key we were looking up to lowercase. While this behavior was wrong (since URLs, at least, are case-sensitive), it did happen to mostly work if the configuration didn't contain settings for two URLs differing in case. In the 2.7.0 cycle, we changed the way we did URL config lookups to match the way Git does them. Previously, we performed configuration lookups on several possible keys (forcing them to lower case, URL portion included) and took the first that matched. Now, we directly compare the URL we're connecting to (which may be in mixed case) to the values we got in the configuration (which we've forced to lowercase). Consequently, we will fail to find configuration options for a mixed-case URL, resulting in things like "http.extraHeader" not being used. Fix this issue by letting Git do the canonicalization of configuration keys for us instead of lowercasing them ourselves and then canonicalizing the key when looking it up in the table. Add tests for this behavior with "http.extraHeader" in the integration suite and several canonicalization assertions in the unit tests. Update several tests to use the canonical version of the data in their test data stores, and add a check to avoid noncanonical test data. Co-authored-by: Taylor Blau <me@ttaylorr.com>
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits -
Merge pull request #3588 from bk2204/git-lfs-go-ntlm
Use git-lfs version of go-ntlm
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits
-
Use git-lfs version of go-ntlm
The upstream of go-ntlm has archived its repository and is no longer doing releases. Because this dependency is required for Git LFS, we've created our own fork to ensure that the upstream repo doesn't disappear on us. Use our own copy of go-ntlm within Git LFS.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits
-
Merge pull request #3582 from bk2204/isatty-mingw
Detect Cygwin-style pipe TTYs as TTYs
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits -
tasklog: detect Cygwin-style pipe TTYs as TTYs as well
Some Unix emulation layers for Windows, such as Cygwin and MSYS, use pipes to create their Unix-style TTYs. These TTYs are not detected as such by Windows, which sees them as pipes. However, our isatty module has a way to detect them, and they will function just like a TTY for our purposes, so check for them as well and handle them as TTYs if present.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits -
tasklog: use helper method to determine if file is a TTY
bk2204 committedMar 27, 2019 We already have a helper method to determine if a file is a TTY. In a future commit, we'll modify the definition of what constitutes a TTY, so refactor the code to always use the helper method so that we need only update one place.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits -
Merge pull request #3579 from bk2204/push-remote-set
Set push remote for pre-push
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits
-
commands: set push remote for pre-push
In the pre-push hook, we set the remote to the remote value that has been passed to us from Git. In most cases, this works fine. However, because we're pushing and have set a remote but not specifically a push remote, if the user has a remote.pushDefault setting, we'll use that instead of honoring the remote passed into the hook. As a result, we can end up pushing LFS objects to the wrong place. Instead, since we're pushing, set the push remote instead of the regular remote. This has no effects other than to make us not read the pushDefault setting.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits -
Merge pull request #3577 from bk2204/log-test-server-stderr
Log test server standard error to log file
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits -
When there's a problem with the test server, it's helpful to see the log output to help troubleshoot the issue. However, when the Stderr member of a command struct is not set, the standard error gets redirected to /dev/null, which isn't really what we want. Since we already have a log set up for logging standard output, send standard error there as well.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits
-
Merge pull request #3560 from bk2204/junctions
Handle Windows junctions properly
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits
-
commands/unlock: always attempt an unlock with --force
When a user has gotten their locks into a bad state, it should be possible to unlock them by using the ID and --force, even if Git LFS thinks that the file does not exist or that the repository is for some reason not in a sane state. Consequently, skip the check for existence in --force mode and just attempt the operation. This allows users to recover from an issue where we could produce relative paths with ".." in them when using junctions on Windows, which prevented the locks from being unlocked.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits -
commands: sanity-check lock paths
bk2204 committedMar 12, 2019 When creating a lock, the file to be locked should always be relative to the root of the repository, and not contain any ".." components. Previously, such a ".." component could occur on Windows when using a junction because the repository root we received from Git was not properly canonicalized. Now that that issue has been fixed, it should no longer be possible to create a lock with a ".." component. However, as a safety feature, let's check for this anyway and report it as an error if it occurs.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits
-
git: handle Windows junctions properly
bk2204 committedMar 12, 2019 On Windows, there is the concept of a junction point, which is a by-name reference from the junction point to a directory using an absolute path. Go's filepath.EvalSymlinks resolves this and provides a canonical path. However, Git for Windows ignores them and provides a path containing junctions, despite the fact that Unix versions of Git always provide an absolute path. When locking, we canonicalize paths on Windows before making them relative to the root, meaning that if junctions are used, the lock path contains a ".." component, which breaks unlocking. Canonicalize the paths we get from Git so that we can be confident that lock paths will be relative. This case cannot, unfortunately, be easily tested in our testsuite, since the Git Bash environment lacks support for invoking the system mklink.exe utility, which is used to create junctions.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits -
git: refactor out some common path handling code
bk2204 committedMar 12, 2019 Currently, we have some duplicated path handling code that is used for handling paths that we get from Git. Refactor this code out into a function for ease of reuse in the future.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits
-
Merge pull request #3550 from bk2204/multiple-insteadof
Allow specifying multiple insteadOf aliases
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits -
lfsapi: allow specifying multiple insteadOf aliases
It's possible for a user to specify multiple insteadOf aliases and have all of the specified URLs map to the same rewritten URL. Make sure we do handle this correctly by iterating over the all values we read from the config, not just the last one.
Verified
This commit was signed with a verified signature.bk2204 brian m. carlson
GPG key ID: 2D0C9BC12F82B3A1 Learn about signing commits
-
Merge pull request #3546 from andyneff/patch-4
Update packagecloud.rb
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits -
Merge pull request #3549 from ssgelm/fix-debian-go-generate
Switch from manually running go generate to using dh-golang to run it
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits
-
Merge pull request #3547 from bk2204/worktree-hooks
Install worktree hooks in the proper directory
Verified
This commit was created on GitHub.com and signed with a verified signature using GitHub’s key.GPG key ID: 4AEE18F83AFDEB23 Learn about signing commits