Skip to content
Permalink
Branch: master
Commits on Apr 26, 2019
  1. Merge pull request #3627 from bk2204/ssh-stdin

    bk2204 committed Apr 26, 2019
    Pass standard input to ssh
Commits on Apr 25, 2019
  1. Merge pull request #3623 from bk2204/moar-release-fixes

    bk2204 committed Apr 25, 2019
    Various release updates
Commits on Apr 24, 2019
  1. lfshttp: pass stdin to ssh

    bk2204 committed Apr 24, 2019
    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.
  2. script/packagecloud: add Ubuntu release disco

    bk2204 committed Apr 23, 2019
    Now that Ubuntu 19.04 (disco) has been released, add it to the list of
    release that we can upload for.
  3. script/packagecloud: ignore existing packages

    bk2204 committed Apr 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.
  4. Merge pull request #3624 from bk2204/install-system-failure

    bk2204 committed Apr 24, 2019
    Improve error handling in git lfs install
  5. command/install: don't warn about lack of root on Windows

    bk2204 committed Apr 23, 2019
    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.
  6. command/install: exit unsuccessfully on error

    bk2204 committed Apr 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.
Commits on Apr 23, 2019
  1. script/packagecloud: remove SLES 12.4

    bk2204 committed Apr 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.
  2. script/packagecloud: fix syntax error

    bk2204 committed Apr 23, 2019
    Since we now start these array literals with "[" instead of "%w(", close
    them with "]" instead of ")".
  3. Makefile: update signing cert hash

    bk2204 committed Apr 23, 2019
    The Git LFS signing cert has changed, so update the default signing cert
    SHA-1 hash in the Makefile.
Commits on Apr 16, 2019
  1. Merge pull request #3569 from mstrap/issue-3252

    bk2204 committed Apr 16, 2019
    Issue 3252: git-lfs locks should optionally denote own locks
Commits on Apr 4, 2019
  1. Merge pull request #3584 from bk2204/url-case-config

    bk2204 committed Apr 4, 2019
    Properly handle config options for URLs with upper case letters
  2. Merge pull request #3594 from h-hirokawa/fix-typo-in-href-rewrite

    bk2204 committed Apr 4, 2019
    tq/adapterbase: fix typo enableHrefRerite to enableHrefRewrite
  3. tq/adapterbase: fix typo enableHrefRerite to enableHrefRewrite

    h-hirokawa committed Apr 4, 2019
Commits on Apr 3, 2019
  1. Merge pull request #3590 from h-hirokawa/rewriting-href

    bk2204 committed Apr 3, 2019
    tq/adapterbase: support rewriting href
  2. tq/adapterbase: add lfs.transfer.enablehrefrewrite config

    h-hirokawa committed Apr 3, 2019
    For backward compatibility and some incompatible situations such as
    using SSH protocol, href-rewriting is only enabled if
    lfs.transfer.enablehrefrewrite is set to true explicitly.
Commits on Apr 2, 2019
  1. Properly handle config options for URLs with upper case letters

    bk2204 and ttaylorr committed Mar 28, 2019
    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>
  2. Merge pull request #3588 from bk2204/git-lfs-go-ntlm

    bk2204 committed Apr 2, 2019
    Use git-lfs version of go-ntlm
  3. tq/adapterbase: support rewriting href

    h-hirokawa committed Apr 2, 2019
    Use insteadOf/pushInsteadOf aliases to rewrite href to upload/download
    LFS objects. This is useful in situations such like you need to access
    the LFS server via a reverse proxy.
Commits on Apr 1, 2019
  1. Use git-lfs version of go-ntlm

    bk2204 committed Apr 1, 2019
    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.
Commits on Mar 28, 2019
  1. Merge pull request #3582 from bk2204/isatty-mingw

    bk2204 committed Mar 28, 2019
    Detect Cygwin-style pipe TTYs as TTYs
  2. tasklog: detect Cygwin-style pipe TTYs as TTYs as well

    bk2204 committed Mar 27, 2019
    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.
  3. tasklog: use helper method to determine if file is a TTY

    bk2204 committed Mar 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.
  4. Merge pull request #3579 from bk2204/push-remote-set

    bk2204 committed Mar 28, 2019
    Set push remote for pre-push
  5. locking: "locks --verify" supports "--cached"

    Marc Strapetz
    Marc Strapetz committed Mar 28, 2019
    "locks --verify" can be combined with "--cached" option now in the same
    way as for "plain" remote queries.
    
    Cached data is stored in a separate file "path/to/ref/verifiable", next
    to the "plain" remote query cache file.
    
    This resolves issue #3252.
  6. locking: new "locks --verify" option

    Marc Strapetz
    Marc Strapetz committed Mar 28, 2019
    "locks --verify" verifies the server-side lock owner and denotes own
    locks in the output by 'O'.
    
    Internally, the /locks/verify API is used to have the server reporting
    locks categorized by "ours" and "theirs". Note that this categorization
    must be performed on the server because only the server knows the
    mapping between login and lock owner name.
    
    This basically resolves issue #3252 but does not yet address the
    combination of "--verify" and "--cached".
Commits on Mar 27, 2019
  1. commands: set push remote for pre-push

    bk2204 committed Mar 27, 2019
    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.
  2. Merge pull request #3577 from bk2204/log-test-server-stderr

    bk2204 committed Mar 27, 2019
    Log test server standard error to log file
  3. Log test server stderr to log

    bk2204 committed Mar 27, 2019
    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.
Commits on Mar 22, 2019
  1. Merge pull request #3560 from bk2204/junctions

    bk2204 committed Mar 22, 2019
    Handle Windows junctions properly
Commits on Mar 19, 2019
  1. locking: SearchLocksVerifiable should use Client's RemoteRef

    Marc Strapetz
    Marc Strapetz committed Jan 2, 2019
    Refactor SearchLocksVerifiable to use Client.RemoteRef instead of having
    a separate ref parameter. This makes ref-processing more consistent with
    other locks-functions.
  2. locking: SearchLocksVerifiable allows nil ref

    Marc Strapetz
    Marc Strapetz committed Jan 2, 2019
    Refactor locks API to allow /locks/verify requests without a ref being
    specified
  3. locking: rename locks.VerifiableLocks to SearchLocksVerifiable

    Marc Strapetz
    Marc Strapetz committed Jan 2, 2019
    SearchLocks and SearchLocksVerifiable are quite similar; also
    API is using struct names like "lockVerifiableRequest".
Commits on Mar 14, 2019
  1. commands/unlock: always attempt an unlock with --force

    bk2204 committed Mar 13, 2019
    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.
Older
You can’t perform that action at this time.