【发布时间】:2016-02-18 18:56:38
【问题描述】:
瞄准
我想知道一段时间内特定存储库中更改的行数,并将其打印到一个简单的文本文件中。但是,当我运行下面的代码时,我收到了一个我不知道如何解决的错误。
代码
git log --stat --since="2015-01-01" --until="2015-11-16" `find . \( ! -path "*[PATH]*" -a ! -path "*[PATH2]*" \)` | awk -F',' "/files? changed/ {
files += \$1
insertions += \$2
deletions += \$3
destination = \"$DESTINATION\"}
END {
print \"Files Changed: \" files > destination
print \"Insertions: \" insertions > destination
print \"Deletions: \" deletions > destination
print \"Lines changed: \" insertions + deletions > destination}"
错误
fatal: ambiguous argument '[PATH]': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
awk: cmd. line:7: fatal: expression for `>' redirection has null string value
其他有用信息
- 使用的 Git 版本是 1.7.1。因此我不能使用这个: --oneline --format=%s -- 。 ":(排除)[PATH]"
- 我知道当我不尝试排除目录时此代码有效。
- 我也知道“查找”在单独运行时可以正常工作。
问题
有人可以帮我理解我做错了什么或提供一种更好的方法来排除多个目录吗?
任何帮助将不胜感激。
【问题讨论】:
-
想一想:
find返回的任何文件是否在任何地方(路径或文件名)都有空格?因为在这种情况下,反引号find会搞砸。 -
不,杰夫是个好主意,但不幸的是他们没有。我刚刚检查过了,
-
还有其他人有什么想法吗?