Browse files

Updated miscellaneous scripts

  • Loading branch information...
xolox committed Apr 28, 2013
1 parent 63a707f commit c22f65c48276a8e4c9c5610fb6ed0776bc8dc10f
Showing with 2 additions and 51 deletions.
  1. +0 −49 autoload/xolox/misc/
  2. +2 −2 autoload/xolox/notes.vim
@@ -1,49 +0,0 @@
-# Miscellaneous auto-load Vim scripts
-The git repository at [] [repository] contains Vim scripts that are used by most of the [Vim plug-ins I've written] [plugins] yet don't really belong with any single one. I include this repository as a subdirectory of my plug-in repositories using the following commands:
- $ git remote add -f vim-misc
- $ git merge -s ours --no-commit vim-misc/master
- $ git read-tree --prefix=autoload/xolox/misc/ -u vim-misc/master
- $ git commit -m "Merge vim-misc repository as subdirectory"
-The above trick is called the [subtree merge strategy] [merge-strategy]. To update a plug-in repository to the latest version of the miscellaneous auto-load scripts I execute the following command:
- $ git pull -s subtree vim-misc master
-## Why make things so complex?
-I came up with this solution after multiple years of back and forth between Vim Online users, the GitHub crowd and my own sanity:
-1. When I started publishing my first Vim plug-ins I would prepare ZIP archives for Vim Online using makefiles. The makefiles would make sure the miscellaneous scripts were included in the uploaded distributions. This had two disadvantages: It lost git history and the repositories on GitHub were not usable out of the box, so [I got complaints from GitHub (Pathogen) users] [github-complaints].
-2. My second attempt to solve the problem used git submodules which seemed like the ideal solution until I actually started doing it. Submodules are not initialized during a normal `git clone`, you need to use `git clone --recursive` instead but Vim plug-in managers like [Pathogen] [pathogen] and [Vundle] [vundle] don't do this (at least [they didn't when I tried] [vundle-discussion]) so people would end up with broken checkouts.
-3. After finding out that git submodules were not going to solve my problems I searched for other inclusion strategies supported by git. After a while I came upon the [subtree merge strategy] [merge-strategy] which I have been using for more than two years now.
-## Compatibility issues
-Regardless of the inclusion strategies discussed above, my current scheme has a flaw: If more than one of my plug-ins are installed in a Vim profile using [Pathogen] [pathogen] or [Vundle] [vundle], the miscellaneous autoload scripts will all be loaded from the subdirectory of one single plug-in.
-This means that when I break compatibility in the miscellaneous scripts, I have to make sure to merge the changes into all of my plug-ins. Even then, if a user has more than one of my plug-ins installed but updates only one of them, the other plug-ins (that are not yet up to date) can break (because of the backwards incompatible change).
-The `xolox#misc#compat#check()` function makes sure that incompatibilities are detected early so that the user knows which plug-in to update if incompatibilities arise.
-## Contact
-If you have questions, bug reports, suggestions, etc. the author can be contacted at <>. The latest version is available at <> and <>.
-## License
-This software is licensed under the [MIT license] [mit].
-© 2013 Peter Odding &lt;<>&gt;.
@@ -1,12 +1,12 @@
" Vim auto-load script
" Author: Peter Odding <>
-" Last Change: April 21, 2013
+" Last Change: April 28, 2013
" URL:
" Note: This file is encoded in UTF-8 including a byte order mark so
" that Vim loads the script using the right encoding transparently.
-let g:xolox#notes#version = '0.17.8'
+let g:xolox#notes#version = '0.17.9'
let s:scriptdir = expand('<sfile>:p:h')
call xolox#misc#compat#check('notes', 1)

0 comments on commit c22f65c

Please sign in to comment.