Source

threesome.vim / site / index.markdown

Threesome - a Vim plugin for resolving three-way merges-

Demo

Watch the demo screencast in HD on Vimeo.

Requirements

Vim 7.3+ compiled with Python 2.5+ support.

Yes, that's some (relatively) new stuff. No, I'm not going to support anything less than that.

Threesome is a merge tool which means you'll be working with it on your development machine, not over SSH on your servers.

If you can't be bothered to run up-to-date versions of your tools on your main development machine, I can't be bothered to clutter the codebase to support you. Feels bad, man.

Installation

Use Pathogen to install the plugin from your choice of repositories:

hg clone https://bitbucket.org/sjl/threesome.vim ~/.vim/bundle/threesome
git clone https://github.com/sjl/threesome.vim.git ~/.vim/bundle/threesome

Build the docs:

:call pathogen#helptags()

Add it as a merge tool for your VCS of choice.

Mercurial

Add the following lines to ~/.hgrc:

[merge-tools]
threesome.executable = mvim
threesome.args = -f $base $local $other $output -c 'ThreesomeInit'
threesome.premerge = keep
threesome.priority = 1

Note: replace mvim with gvim if you're on Linux, or just plain vim if you prefer to keep the editor in the console.

Git

Add the following lines to ~/.gitconfig:

[merge]
tool = threesome

[mergetool "threesome"]
cmd = "mvim -f $BASE $LOCAL $REMOTE $MERGED -c 'ThreesomeInit'"
trustExitCode = true

Note: replace mvim with gvim if you're on Linux, or just plain vim if you prefer to keep the editor in the console.

Bazaar

For Bazaar 2.4 or greater, add the following line to bazaar.conf:

bzr.mergetool.threesome = vim {base} {this} {other} {result} -c 'ThreesomeInit'

Optionally, change the default merge tool by setting:

bzr.default_mergetool = threesome

For earlier versions of Bazaar, set the following entry in bazaar.conf:

external_merge = vim %b %t %o %r -c 'ThreesomeInit'

Note: replace mvim with gvim if you're on Linux, or just plain vim if you prefer to keep the editor in the console.

More Information

Full Documentation: :help threesome
Source (Mercurial): http://bitbucket.org/sjl/threesome.vim
Source (Git): http://github.com/sjl/threesome.vim
Issues: http://github.com/sjl/threesome.vim/issues
License: MIT/X11

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.