1. 19 1月, 2014 7 次提交
  2. 26 12月, 2013 14 次提交
    • M
      v1.11.1 · f4b8980b
      Mislav Marohnić 提交于
      f4b8980b
    • M
      Filter files that are not in version control from the gemspec · 8c869ea9
      Mislav Marohnić 提交于
      Keeps unversioned files that I'm currently experimenting with from
      accidentally getting released.
      8c869ea9
    • M
      Remove test stuff from the gemspec · 0e57bebc
      Mislav Marohnić 提交于
      We can stop pretending that you could run the test suite if you just
      obtained the gem. You'd need the Gemfile for that, and the whole
      Cucumber suite as well.
      0e57bebc
    • M
      Merge branch 'speed' · 78dc4bd7
      Mislav Marohnić 提交于
      78dc4bd7
    • M
      Shell out only once to list git remotes and their URLs · 76afe6a3
      Mislav Marohnić 提交于
      Each hub invocation would previously shell out twice to `git remote`:
      1. Once to get the list of available remote names
      2. A second time to obtain remote URLs with `remote -v`
      
      With the new approach, we get the list of available remotes and collect
      their URLs in the same pass. This is part of an effort to reduce the
      number of shelling out to git if not absolutely necessary.
      76afe6a3
    • M
      Fix Ruby 1.8 failure with missing stderr in Cucumber test · bb73ac1d
      Mislav Marohnić 提交于
      In cukes, we use Aruba which uses ChildProcess to handle spawning of hub
      processes in tests. It uses Tempfile to create file descriptors with
      which stdout and stderr streams are collected from the child process.
      
      However, when hub finished with an `exec`, the stderr in one test would
      be mysteriously blank in Ruby 1.8. I tracked that down to being an issue
      of Ruby not flushing STDERR output to the stream (really a Tempfile in
      the context of tests). https://travis-ci.org/github/hub/jobs/15965636
      
      This hopes to fix the tests, but shouldn't change anything about how hub
      operates normally when invoked directly.
      bb73ac1d
    • M
      Read default branch for remote from filesystem, not `rev-parse --symbolic-full-name` · eed97014
      Mislav Marohnić 提交于
      Assume that the default branch ref is stored in the file located at
      `.git/refs/remotes/origin/HEAD`
      
      This is part of the effort to reduce the number of shelling out to git
      in a single invocation of hub if a more direct alternative is available.
      eed97014
    • M
      Check if a ref exists using filesystem, not `rev-parse --verify` · 4eb9d8b8
      Mislav Marohnić 提交于
      We presume that if "origin/master" ref exists, that means this file
      represents it: `.git/refs/remotes/origin/master`.
      
      This is part of the effort to reduce the number of shelling out to git
      if an alternative, more direct approach is available.
      4eb9d8b8
    • M
      Read the current git branch directly from `.git/HEAD` · 526ce3a8
      Mislav Marohnić 提交于
      This operates on a presumption that `.git/HEAD` will be in this format
      when currently on a checked-out branch:
      
          ref: refs/heads/master
      
      This change is part of the effort to reduce the number of shelling out
      to git in a single invocation of hub.
      526ce3a8
    • M
      Avoid shell redirection to silence stderr when shelling out · ef3a7cfb
      Mislav Marohnić 提交于
      Shelling out to `git`, which by itself takes ~6ms, used to consistently
      take 8-11ms in hub. Due to the number of different data we have to
      collect from git, this overhead is the leading cause of slow execution.
      
      Turns out, when we don't use shell redirection, but silence STDERR
      ourselves in Ruby, this overhead is gone and the time spent shelling out
      is much closer to git execution time.
      ef3a7cfb
    • M
      Lazily read "hub.host" configuration only when necessary · abcf5290
      Mislav Marohnić 提交于
      For speed, we want to reduce the number of shelling out to git in a
      single invocation of hub, and reading from "hub.host" is unnecessary if
      the current hostname matches the default host ("github.com"), which is
      the most common case.
      abcf5290
    • M
      Only access ssh_config for hosts other than "github.com" · 3606ab01
      Mislav Marohnić 提交于
      Assume that "github.com" is not an ssh alias to anywhere else. This
      optimizes the most common case in which all remotes in a repository
      point to "github.com" in their URLs and in which we can avoid
      instantiating SshConfig altogether.
      3606ab01
    • M
      Reduce features in SshConfig scanner for speed · 0a6fd699
      Mislav Marohnić 提交于
      A lot of hub execution time was spent in SshConfig, which was a
      reasonably compatible reader implementation for the format described in
      ssh_config(5). However, all we ever used this functionality for is
      resolving hostname aliases the same way `ssh` on the command-line does.
      See 4b57f61e
      
      To speed up hub, this strips SshConfig feature set down to a bare
      minimum to keep the original functionality:
      
      - Don't record all configuration keys, just "HostName"
      - Drop support for the "key=value" assignment syntax
      - Drop support for hostname patterns, including "*" to match any value
      0a6fd699
    • M
      Add rake and Webmock to Gemfile · e4667e1f
      Mislav Marohnić 提交于
      Not sure how CI ever worked without them, but now it started failing:
      https://travis-ci.org/github/hub/builds/15945780
      e4667e1f
  3. 25 12月, 2013 1 次提交
  4. 22 12月, 2013 14 次提交
  5. 20 12月, 2013 4 次提交