代码之家  ›  专栏  ›  技术社区  ›  samuraiseoul

格式化整个项目,保留git历史记录

  •  0
  • samuraiseoul  · 技术社区  · 6 年前

    我正试图将一个旧的设计和技术债务的庞然大物格式化成类似可读的东西,以便在将来自动化和检查它。我已经反复研究了几天了,并且已经读过了 article

    git filter-branch --tree-filter 'prettier --no-config --ignore-path /Users/samuraiseoul/.prettierignore --single-quote --use-tabs --print-width=90 --write "**/*.{js,php,scss,ts,md,css}" || echo “Error formatting, possibly invalid code“' -- --all

    问题在于,虽然它可以在一个较小的测试回购上运行,大约有500次提交,但要在doom的主回购上运行30000多个提交和100x的文件,则需要几周的时间。

    git filter-branch 似乎得救了。我不知道到底出了什么问题。它似乎与此类似 SO post ,但不起作用。

    git filter-branch --tree-filter 'git show $GIT_COMMIT --pretty="" --name-only --diff-filter=AM | grep -e "\.scss$" -e "\.php$" -e "\.css$" -e "\.js$" -e "\.ts$" -e "\.md$" -e "\.yml$" | tr " " "\ " | tr "\n" " " | xargs -t find 2> /dev/null | tr " " "\ " | tr "\n" " " | xargs -t prettier --no-config --single-quote --use-tabs --print-width=90 --write || echo “Error formatting, invalid syntax' -- --all

    我想问题出在我编写的bash命令传递到 filter-branch ,但我现在还不能百分之百肯定。任何帮助将非常感谢,如果有更多的信息或其他命令我应该尝试,让我知道!谢谢。

    0 回复  |  直到 6 年前