forked from mrambacher/rocksdb
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into performance
Conflicts: Makefile db/db_impl.cc db/db_impl.h db/db_test.cc db/memtable.cc db/memtable.h db/version_edit.h db/version_set.cc include/rocksdb/options.h util/hash_skiplist_rep.cc util/options.cc
- Loading branch information
Showing
51 changed files
with
2,149 additions
and
1,235 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
#!/bin/bash | ||
set -e | ||
# If clang_format_diff.py command is not specfied, we assume we are able to | ||
# access directly without any path. | ||
if [ -z $CLANG_FORMAT_DIFF ] | ||
then | ||
CLANG_FORMAT_DIFF="clang-format-diff.py" | ||
fi | ||
|
||
# Check clang-format-diff.py | ||
if ! which $CLANG_FORMAT_DIFF &> /dev/null | ||
then | ||
echo "You didn't have clang-format-diff.py available in your computer!" | ||
echo "You can download it by running: " | ||
echo " curl https://fburl.com/clang-format-diff" | ||
exit 128 | ||
fi | ||
|
||
# Check argparse, a library that clang-format-diff.py requires. | ||
python 2>/dev/null << EOF | ||
import argparse | ||
EOF | ||
|
||
if [ "$?" != 0 ] | ||
then | ||
echo "To run clang-format-diff.py, we'll need the library "argparse" to be" | ||
echo "installed. You can try either of the follow ways to install it:" | ||
echo " 1. Manually download argparse: https://pypi.python.org/pypi/argparse" | ||
echo " 2. easy_install argparse (if you have easy_install)" | ||
echo " 3. pip install argparse (if you have pip)" | ||
exit 129 | ||
fi | ||
|
||
# TODO(kailiu) following work is not complete since we still need to figure | ||
# out how to add the modified files done pre-commit hook to git's commit index. | ||
# | ||
# Check if this script has already been added to pre-commit hook. | ||
# Will suggest user to add this script to pre-commit hook if their pre-commit | ||
# is empty. | ||
# PRE_COMMIT_SCRIPT_PATH="`git rev-parse --show-toplevel`/.git/hooks/pre-commit" | ||
# if ! ls $PRE_COMMIT_SCRIPT_PATH &> /dev/null | ||
# then | ||
# echo "Would you like to add this script to pre-commit hook, which will do " | ||
# echo -n "the format check for all the affected lines before you check in (y/n):" | ||
# read add_to_hook | ||
# if [ "$add_to_hook" == "y" ] | ||
# then | ||
# ln -s `git rev-parse --show-toplevel`/build_tools/format-diff.sh $PRE_COMMIT_SCRIPT_PATH | ||
# fi | ||
# fi | ||
|
||
# Check the format of recently changed lines, | ||
diffs=$(git diff -U0 HEAD^ | $CLANG_FORMAT_DIFF -p 1) | ||
|
||
if [ -z "$diffs" ] | ||
then | ||
echo "Nothing needs to be reformatted!" | ||
exit 0 | ||
fi | ||
|
||
# Highlight the insertion/deletion from the clang-format-diff.py's output | ||
COLOR_END="\033[0m" | ||
COLOR_RED="\033[0;31m" | ||
COLOR_GREEN="\033[0;32m" | ||
|
||
echo -e "Detect lines that doesn't follow the format rules:\r" | ||
# Add the color to the diff. lines added will be green; lines removed will be red. | ||
echo "$diffs" | | ||
sed -e "s/\(^-.*$\)/`echo -e \"$COLOR_RED\1$COLOR_END\"`/" | | ||
sed -e "s/\(^+.*$\)/`echo -e \"$COLOR_GREEN\1$COLOR_END\"`/" | ||
echo -e "Would you like to fix the format automatically (y/n): \c" | ||
|
||
# Make sure under any mode, we can read user input. | ||
exec < /dev/tty | ||
read to_fix | ||
|
||
if [ "$to_fix" != "y" ] | ||
then | ||
exit 1 | ||
fi | ||
|
||
# Do in-place format adjustment. | ||
git diff -U0 HEAD^ | $CLANG_FORMAT_DIFF -i -p 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.