Skip to content
Commits on May 3, 2015
  1. @georgebrock

    Enable Git's autosquash feature by default.

    Autosquash makes it quicker and easier to squash or fixup commits during an
    interactive rebase. It can be enabled for each rebase using `git rebase -i
    --autosquash`, but it's easier to turn it on by default.
    Say I have this history:
        $ git log --oneline
        aaa1111 A first commit
        bbb2222 A second commit
        ccc3333 A third commit
    I make another change that I already know should be squashed into "A
    second commit". I can do this:
        $ git add .
        $ git commit --squash bbb2222
        [my-branch ddd4444] squash! A second commit
    Then when I rebase:
        $ git rebase -i origin/my-branch
    The interactive rebase list will be set up ready to squash:
        pick aaa1111 A first commit
        pick bbb2222 A second commit
        squash ddd4444 squash! A second commit
        pick ccc3333 A third commit
    Since it's unlikely that anyone will be writing a commit message that begins
    `squash!` or `fixup!` when they don't want this behaviour, and the user
    still has a chance to review what's going to happen with the rebase, it's
    safe to have it always turned on.
    georgebrock committed May 2, 2015
Commits on Apr 27, 2015
  1. @geoffharcourt

    Use vim-plug over vundle

    [vim-plug]( has a number of
    advantages over Vundle:
    * Installs and updates plugins very quickly in parallel
    * Can lock plugins at versions/tags
    * Can rollbacks updates (useful if a plugin breaks) and take/reload
      snapshots of current state
    * Optionally lazily-load plugins when their relevant command is invoked
    * Execute post-update hooks for plugins with compiled extensions, etc.
    vim-plug uses a DSL very close to Vundle (simplest form is `Plug` vs.
    `Plugin`), and here it is set to continue to use the same plugin
    location that Vundle was using before.
    After updating, users will need to
    1. Rename `Plugin` lines in `.vimrc.bundles.local` to use `Plug`
    2. Run `:PlugInstall` (the post-up hook does this)
    geoffharcourt committed Feb 18, 2015
  2. @croaky

    Move Git aliases to subcommand scripts

    Any executable script on you PATH
    that is named `git-some-name`
    will be available as a git subcommand,
    which means you could do `git some-name` to run the script.
    Git adds them to `git help -a` under the title
    "git commands available from elsewhere on your $PATH",
    which will then power the auto completion,
    so that will also work for any command you add.
    Examples of other projects that structure their dotfiles like this:
    croaky committed Apr 11, 2015
Commits on Apr 9, 2015
  1. @gylaz
  2. @andyw8 @gylaz

    Enable autocomplete with dictionary words

    Enable autocomplete with dictionary words when
    spell check is on.
    andyw8 committed with gylaz Mar 18, 2015
Commits on Mar 18, 2015
  1. @jessieay

    Remove GitHub colorscheme

    * Every time I pull updates from this repo into my own dotfiles, I have to
      reconfigure my preferred theme (solarized)
    * Seems like there is not a majority or plurality of thoughbotters using a
      single colorscheme
    * Easiest to just not specify a colorscheme
    * See
    jessieay committed Mar 12, 2015
Commits on Mar 13, 2015
  1. @derekprior

    Let ctrl-p find files with a leading dot

    I am constantly forgetting that I can't use `ctrl-p` to open
    `.travis.yml` or any other file with a leading `.`. This change comes
    about after some discussion in general on how to handle this. Passing
    `--hidden` to the `ag` command allows it to find files with a leading
    Unfortunately, this also includes the content of your `.git`
    directory. To overcome this, we add `/.git/` to `agignore`.
    derekprior committed Mar 12, 2015
Commits on Mar 9, 2015
  1. @jferris

    Update credits

    * Break up credits section into thanks/about
    * Use new "About thoughtbot" section
    jferris committed Mar 9, 2015
Commits on Feb 24, 2015
  1. @joshhartigan @gylaz

    remove `set nocompatible`

    It is not needed - see'nocompatible'
    (or see :help 'cp')
    joshhartigan committed with gylaz Feb 16, 2015
Commits on Feb 23, 2015
  1. @NewAlexandria @gylaz
  2. @blainesch

    Add the `-v` flag to `commit --amend`.

    This allows us to always see things we are going to commit, even if we
    are amending.
    blainesch committed Feb 23, 2015
Commits on Feb 20, 2015
  1. @iwz

    Add `git branches` command

    * Lists all remote branches
    * Sorts by last commit date, descending
    * Shows how long the branch has been around
    * Shows last commit author
    $ git branches
    6 days ago  Dan Croak  origin/HEAD
    6 days ago  Dan Croak  origin/master
    5 months ago  Dan Croak  origin/dc-rbenv-zsh
    6 months ago  Sean Doyle  origin/sd-nvm-path
    6 months ago  Tute Costa  origin/vim-multiple-cursors
    7 months ago  Sean Doyle  origin/sd-vundle
    8 months ago  Sean Griffin  origin/sg-disable-spring
    9 months ago  Mike Burns  origin/mb-experimental-tag
    iwz committed Feb 20, 2015
Commits on Feb 18, 2015
  1. @croaky

    Switch from gh to hub

    * `hub` is the official GitHub client.
    * Like `gh`, `hub` 2.2.0 now powered by the Go programming language.
    * It has been bottled in Homebrew.
    * We are using it in the Laptop script.
    croaky committed Feb 14, 2015
Commits on Feb 12, 2015
  1. @lunohodov

    Prevent unreadable prompt within Git repository

    When within a git repository, doing a tab-autocomplete on a command results with the command becoming unreadable. The command still works but this is pretty annoying visually.
    Basically I
    1. Navigate to a directory with a git repository in it. The prompt indicates the current branch properly
    2. Next, type `git -` and hit tab
    The prompt now shows only part of branch's name with the first suggestion appended.
    After googling a bit I stumbled upon several pages describing a similar problem (most useful to me was
    The culprit seems to be the git_prompt_info function escaping the `$current_branch` variable as if it is a color. As a result zsh is confused where the cursor is. After "unescaping" the variable everything seems to work fine.
    Using zsh 5.0.7 (x86_64-apple-darwin13.4.0).
    lunohodov committed Feb 12, 2015
Commits on Feb 9, 2015
  1. @gylaz

    Stop ag from excluding directories with ds_store

    * Silver searcher or ag was filtering out any directory that had a
      .DS_STORE file. Any directory that has a .DS_STORE file in it is being
      ignored by ag and therefor does not show up in the ctrlp fuzzy finder
    * Removing the * from before .DS_STORE in the gitignore
      file still prevents .DS_STORE files from being checked into source
      control and stops ag from filtering out the directory. I am not sure
      if this is a bug with silver_searcher or what
    committed with gylaz Feb 4, 2015
Commits on Feb 3, 2015
  1. @reshleman

    Don't interpolate environment variables in aliases

    A few aliases contain references to environment variables, but were
    defined using double quotes. This caused zsh to interpolate the value of
    those variables when the alias was defined instead of when it was
    executed. In particular, any change to `PATH` (or `EDITOR` or `VISUAL`)
    in `.zshrc.local`, which is sourced after `.aliases`, would not be
    reflected in these aliases.
    This commit defines these aliases using single quotes so that the
    environment variables are evaluated when the alias is executed.
    reshleman committed Feb 2, 2015
Commits on Jan 26, 2015
  1. @croaky

    Add `git rename-branch` alias

    * Extract `git current-branch` alias.
    * Re-use `git current-branch` in two places.
    croaky committed Jan 25, 2015
Commits on Jan 13, 2015
  1. @geoffharcourt

    Remove outdated references to `Rnavcommand`

    `Rnavcommand` has been removed from rails.vim. These commands don't work
    if you are using a recent version of the plugin. Users who want to
    regain this functionality can do it through projections.
    geoffharcourt committed Jan 13, 2015
Commits on Dec 19, 2014
  1. @derekprior

    Add alias for pretty-printing $PATH

    I've had a number of issues with $PATH of late and I kept using this to
    make it readable (and comparable).
    derekprior committed Dec 19, 2014
Commits on Dec 12, 2014
  1. Replace kien/ctrlp.vim with ctrlpvim/ctrlp.vim

    * kien has not commited to ctrlp.vim in over a year.
    * Switch to ctrlpvim/ctrlp.vim since it is actively maintained.
    committed Dec 12, 2014
Commits on Dec 9, 2014
  1. @christoomey

    Update tat script to also work from within tmux

    The existing script would fail if run from within tmux as the default
    behavior would cause a nested tmux session which is bad. This update
    detects if the current context is within tmux and properly handles this
    by creating a detached session and switching to it as needed.
    The idea with this is for tat to behave correctly regardless of context,
    which I believe this update achieves. Existing users and workflows all
    work identically, but now this adds support for a workflow that remains
    within tmux at all times.
    I prefer to remain within tmux all the time, rather than falling back to
    the shell, navigating to another directory, and then creating the
    session from there. With this update, I split a pane in the current tmux
    window, navigate to the directory for the new session, and use `tat` to
    open (or attach) to the new-session without ever leaving tmux.
    I actually [have a binding that I use for this][], `C-b` (I am
    "breaking" out a new session), that is mapped to `bind C-b send-keys
    'tat && exit' 'C-m'`, which also cleans up the pane.
    The reason for wanting this workflow is I am pretty strict about keeping
    a tmux session focused to a single project (~ maps to a git repo). I
    regularly want to reference another app and will use this workflow to
    quickly open that project in a new session.
    A "detached" session is one which has no clients attached. [From the man
    page entry][] for `new-session`: `The new session is attached to the
    current terminal unless -d is given.` This essentially creates it in the
    background, preventing nesting. Then the script can attach the current
    client using the `switch-client` command.
    [have a binding that I use for this]:
    [From the man page entry]:
    christoomey committed Dec 9, 2014
Commits on Dec 5, 2014
  1. @brandoncordell @croaky

    Fix pre-commit, prepare-commit-msg hooks

    For users who had not overridden the `pre-commit` or
    `prepare-commit-msg` Git hooks,
    they would see `git commit` hang,
    with nothing happening.
    The command would exit without going to their editor.
    The bug was introduced in d7f194f
    and the fix is to return a 0 exit code when the override is not present.
    brandoncordell committed with croaky Dec 4, 2014
Commits on Dec 3, 2014
  1. @croaky

    Add more Git hooks, delegate to .local convention

    The `pre-commit` and `prepare-commit-msg` git hooks can be used
    for some interesting things such as linting files.
    For example, I need to format, vet, and lint Go files:
    We've rejected Go-related pull requests to thoughtbot/dotfiles
    due to not doing enough "official" Go work at the company.
    This change helps me start with `.local` for now,
    and then promote to "upstream" (thoughtbot/dotfiles) at some point
    in the future if we do more "official" Go work.
    I'm a believer in having linting done at VCS "commit time", either
    locally in a pre-commit so I have a chance to fix things and not both my
    teammates with linting issues, or at post-commit time via Hound comments
    (also automated, but opportunity to ignore).
    I've tried adding linting libraries to my editor, and found them too
    slow, at least for Ruby. I've limited "editor-time" checking to just
    syntax checking via Syntastic.
    The downsides I see to adding linting to the test suite are:
    * Style violations are not functional failures and logically shouldn't
      fail a build.
    * Adding code coverage, linting, etc. to a test suite slows down the
    * I only need to lint my diff (the commit), not the whole codebase, when I
      make changes.
    * Style violations should not prevent a user-facing, production deploy.
    * Adding linting to the test suite can slow that process down
      unnecessarily, particularly in continuous integration setups.
    I see the appeal of linting in the test suite, particularly for
    greenfield apps where we have total control, but I don't think it's a
    practice that we can universally apply to our client projects who have
    different deploy setups and existing codebases. So, I prefer the git
    hooks + Hound approach as a pragmatic middle ground.
    croaky committed Sep 4, 2014
  2. @croaky

    Remove mention of Brewfile

    It is no longer in our dotfiles.
    croaky committed Dec 2, 2014
Commits on Nov 14, 2014
  1. @gylaz

    Fix typo in zshenv path

    gylaz committed Nov 14, 2014
  2. @gylaz

    Revert adding /usr/local/bin to path in zshenv

    * Adding /usr/local/bin to path in `~/.zshenv` causes it to be in my path twice one right after the other. /usr/local/bin is already added to the path in the correct order on OSX Yosemite by the /etc/paths file. 
    * Remove /usr/local/bin from path export in zshenv
    committed with gylaz Oct 21, 2014
Commits on Nov 4, 2014
  1. @christoomey

    Use POSIX compliant test command in git hooks

    Ubuntu systems will error out on `[[` in shell scripts with `#!/bin/sh`
    as the shebang.
    christoomey committed Nov 3, 2014
Commits on Nov 3, 2014
  1. @derekprior

    Spell check git commits

    derekprior committed Oct 28, 2014
Commits on Nov 2, 2014
  1. Revert "include, filter, user"

    This reverts commit 383612a.
    Ian Zabel committed Nov 2, 2014
  2. @iwz

    include, filter, user

    iwz committed Nov 2, 2014
Commits on Oct 29, 2014
  1. @derekprior

    Add /usr/local/sbin to PATH

    Some homebrew formulae, (e.g. [RabbitMQ][1]) link binaries here.
    derekprior committed Oct 24, 2014
Commits on Oct 27, 2014
  1. @reshleman @gylaz

    Wrap at 72 characters for git commit messages

    The body of a git commit message is conventionally ([1], [2]) wrapped at
    72 characters. This commit adjusts .vimrc to automatically wrap the body
    of git commit messages at 72 characters.
    reshleman committed with gylaz Oct 22, 2014
Commits on Oct 24, 2014
  1. @tabfugnic
Commits on Oct 22, 2014
  1. @mscoutermarsh @gylaz

    Updating readme to use thoughtbot/formulae

    Brew bundle is deprecated. fixes #309
    Removes Brewfile, no longer needed
    mscoutermarsh committed with gylaz Oct 17, 2014
  2. @scmx @gylaz

    Prevent evil nbsp from being invisible

    Not seeing these can be problematic, since you won't know what broke your code on the day that one of them sneaks in.
    Here's a few other common characters people use for this:
    scmx committed with gylaz Oct 10, 2014
Something went wrong with that request. Please try again.