diff --git a/docs/static_site/src/pages/community/clang_format_guide.md b/docs/static_site/src/pages/community/clang_format_guide.md new file mode 100644 index 000000000000..02ece669b3ce --- /dev/null +++ b/docs/static_site/src/pages/community/clang_format_guide.md @@ -0,0 +1,58 @@ +--- +layout: page +title: Clang format +subtitle: Clang format in MXNet codebase for reviewers and contributors. +action: Contribute +action_url: /community/index +permalink: /community/code_guide +--- + + + + + + + + + + + + + + + + + +Clang-format Guide and Tips +=================== + +This wiki page describes how to set up clang-format tool as a part of your worklow. Running the command given in the description will fix clang-format problem. + + +- Add `tools/lint/git-clang-format-13 ` to your `$PATH`. Once its added to your `$PATH`, running `git clang-format` will invoke it. +```bash +git clang-format +``` + + +- To reformat chosen file just do: +```bash +# `_FILE_NAME_` is the name of a file to be formatted. +# i - apply edits to files instead of displaying a diff +clang-format -i _FILE_NAME_ +``` + +- To reformat all the lines in the latest git commit, just do: +```bash +git diff -U0 --no-color HEAD^ | clang-format-diff.py -i -p1 + +``` + +- If you want to apply clang-format only to the changed lines in each commit do the following: +```bash +# If it's a child of origin/master, the following command-line could be used: +# If you want to run this command on another brnach, then origin/master needs to be replaced. +export COMMIT_SHA=$(git rev-list --ancestry-path origin/master..HEAD | tail -n 1) + +git filter-branch --tree-filter 'git-clang-format $COMMIT_SHA^' -- $COMMIT_SHA..HEAD +``` \ No newline at end of file diff --git a/docs/static_site/src/pages/community/index.md b/docs/static_site/src/pages/community/index.md index 063d5f66c431..afeee71b666e 100644 --- a/docs/static_site/src/pages/community/index.md +++ b/docs/static_site/src/pages/community/index.md @@ -91,6 +91,7 @@ We value all forms of contributions, including, but not limited to: - [Code Guide and Tips]({% link pages/community/code_guide.md %}) - [Error Handling Guide]({% link pages/community/error_handling.md %}) - [Git Usage Tips]({% link pages/community/git_howto.md %}) +- [Clang format]({% link pages/community/clang_format_guide.md %}) #### RFC Process