aboutsummaryrefslogtreecommitdiff
path: root/scripts/vim-patch.sh
diff options
context:
space:
mode:
authorJohn Whitley <john@luminous-studios.com>2015-08-18 21:21:11 -0700
committerJustin M. Keyes <justinkz@gmail.com>2015-08-26 02:15:24 -0400
commit4d39db355b6599389a86d9ad1aa76c98cb3c2461 (patch)
treedd6863c954f76b54557520db5db2c6f5920ffde8 /scripts/vim-patch.sh
parent9602f0d58987bdbe16caf59cf9fb3e92f26de897 (diff)
downloadrneovim-4d39db355b6599389a86d9ad1aa76c98cb3c2461.tar.gz
rneovim-4d39db355b6599389a86d9ad1aa76c98cb3c2461.tar.bz2
rneovim-4d39db355b6599389a86d9ad1aa76c98cb3c2461.zip
vim-patch.sh: update for Vim's hg => git migration
Diffstat (limited to 'scripts/vim-patch.sh')
-rwxr-xr-xscripts/vim-patch.sh44
1 files changed, 22 insertions, 22 deletions
diff --git a/scripts/vim-patch.sh b/scripts/vim-patch.sh
index 9ae9377d8f..02b10d761e 100755
--- a/scripts/vim-patch.sh
+++ b/scripts/vim-patch.sh
@@ -20,7 +20,7 @@ usage() {
echo " -l Show list of Vim patches missing from Neovim."
echo " -p {vim-revision} Download and apply the Vim patch vim-revision."
echo " vim-revision can be a version number of the "
- echo " format '7.4.xxx' or a Mercurial commit hash."
+ echo " format '7.4.xxx' or a Git commit hash."
echo " -r {pr-number} Review a vim-patch pull request to Neovim."
echo
echo "Set VIM_SOURCE_DIR to change where Vim's sources are stored."
@@ -36,17 +36,22 @@ check_executable() {
}
get_vim_sources() {
- check_executable hg
+ check_executable git
echo "Retrieving Vim sources."
if [[ ! -d ${VIM_SOURCE_DIR} ]]; then
echo "Cloning Vim sources into '${VIM_SOURCE_DIR}'."
- hg clone https://code.google.com/p/vim "${VIM_SOURCE_DIR}"
+ git clone --depth=1000 https://github.com/vim/vim.git "${VIM_SOURCE_DIR}"
cd "${VIM_SOURCE_DIR}"
else
+ if [[ ! -d "${VIM_SOURCE_DIR}/.git" ]]; then
+ echo "✘ ${VIM_SOURCE_DIR} does not appear to be a git repository."
+ echo " Please remove it and try again."
+ exit 1
+ fi
echo "Updating Vim sources in '${VIM_SOURCE_DIR}'."
cd "${VIM_SOURCE_DIR}"
- hg pull --update &&
+ git pull &&
echo "✔ Updated Vim sources." ||
echo "✘ Could not update Vim sources; ignoring error."
fi
@@ -64,17 +69,17 @@ assign_commit_details() {
if [[ ${1} =~ [0-9]\.[0-9]\.[0-9]{3,4} ]]; then
# Interpret parameter as version number.
vim_version="${1}"
- vim_commit="v${1//./-}"
+ vim_commit="v${1}"
local strip_commit_line=true
- vim_commit_url="https://github.com/vim/vim/commit/${vim_commit}"
+ vim_commit_url="https://github.com/vim/vim/tree/${vim_commit}"
else
# Interpret parameter as commit hash.
vim_version="${1:0:7}"
vim_commit="${1}"
local strip_commit_line=false
- vim_commit_url="https://code.google.com/p/vim/source/detail?r=${vim_commit}"
+ vim_commit_url="https://github.com/vim/vim/commit/${vim_commit}"
fi
- vim_message="$(hg log --template "{desc}" --rev "${vim_commit}")"
+ vim_message="$(git log --pretty='format:%B' "${vim_commit}^\!")"
if [[ ${strip_commit_line} == "true" ]]; then
# Remove first line of commit message.
vim_message="$(echo "${vim_message}" | sed -e '1d')"
@@ -86,7 +91,7 @@ get_vim_patch() {
assign_commit_details "${1}"
- hg log --rev "${vim_commit}" >/dev/null 2>&1 || {
+ git log "${vim_commit}^\!" -- >/dev/null 2>&1 || {
>&2 echo "✘ Couldn't find Vim revision '${vim_commit}'."
exit 3
}
@@ -94,8 +99,8 @@ get_vim_patch() {
echo "✔ Found Vim revision '${vim_commit}'."
# Collect patch details and store into variables.
- vim_full="$(hg log --patch --git --verbose --rev "${vim_commit}")"
- vim_diff="$(hg diff --show-function --git --change "${vim_commit}" \
+ vim_full="$(git log --pretty=medium "${vim_commit}^\!")"
+ vim_diff="$(git diff "${vim_commit}^\!" \
| sed -e 's/\( [ab]\/src\)/\1\/nvim/g')" # Change directory to src/nvim.
neovim_message="$(commit_message)"
neovim_pr="
@@ -162,22 +167,17 @@ list_vim_patches() {
# runtime patches before between 384 and 442 have already been ported
# to Neovim as of the creation of this script.
local vim_commits=$(cd "${VIM_SOURCE_DIR}" && \
- hg log --removed --template='{if(startswith("Added tag", firstline(desc)),
- "{latesttag}\n",
- "{if(startswith(\"updated for version\", firstline(desc)),
- \"\",
- \"{node}\n\")}")}' -r tip:v7-4-442)
+ git log --pretty='tformat:%H|%d' v7.4.442..HEAD | awk -f ${NEOVIM_SOURCE_DIR}/scripts/vim-patch-helper.awk)
+
# Append remaining vim patches.
# Start from 7.4.160, where Neovim was forked.
local vim_old_commits=$(cd "${VIM_SOURCE_DIR}" && \
- hg log --removed --template='{if(startswith("Added tag",
- firstline(desc)),
- "{latesttag}\n")}' -r v7-4-442:v7-4-161)
+ git log --pretty='tformat:%d' v7.4.160..v7.4.442 | awk '{ if ($1 != "") { gsub(/[()]/, "", $2); print($2); } }')
local vim_commit
for vim_commit in ${vim_commits} ${vim_old_commits}; do
local is_missing
- if [[ ${vim_commit} =~ v([0-9]-[0-9]-([0-9]{3,4})) ]]; then
+ if [[ ${vim_commit} =~ v([0-9].[0-9].([0-9]{3,4})) ]]; then
local patch_number="${BASH_REMATCH[2]}"
# "Proper" Vim patch
# Check version.c:
@@ -253,9 +253,9 @@ review_pr() {
echo "✔ Saved pull request diff to '${NEOVIM_SOURCE_DIR}/n${base_name}.diff'."
echo "${neovim_patch}" > "${NEOVIM_SOURCE_DIR}/n${base_name}.patch"
echo "✔ Saved full pull request commit details to '${NEOVIM_SOURCE_DIR}/n${base_name}.patch'."
- hg diff --show-function --git --change "${vim_commit}" > "${NEOVIM_SOURCE_DIR}/${base_name}.diff"
+ git diff "${vim_commit}^\!" > "${NEOVIM_SOURCE_DIR}/${base_name}.diff"
echo "✔ Saved Vim diff to '${NEOVIM_SOURCE_DIR}/${base_name}.diff'."
- hg log --patch --git --verbose --rev "${vim_commit}" > "${NEOVIM_SOURCE_DIR}/${base_name}.patch"
+ git show "${vim_commit}" > "${NEOVIM_SOURCE_DIR}/${base_name}.patch"
echo "✔ Saved full Vim commit details to '${NEOVIM_SOURCE_DIR}/${base_name}.patch'."
echo "You can use 'git clean' to remove these files when you're done."