所以我试图让git diff为sqlite工作。基本上,我想让git比较文件,就好像它们是文本文件一样。在我的存储库中,我有一个@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 2) {
if(resultCode == Activity.RESULT_OK){
String message=data.getStringExtra("MESSAGE");
Toast.makeText(getApplicationContext(), "Đã thêm danh bạ: " + message, Toast.LENGTH_SHORT).show();
}
}
}
文件,其中包含以下内容:
.gitattributes
然后在我的*.db diff=sqlite3
文件中添加以下内容:
.git/config
但这不起作用。我收到错误消息:
[diff "sqlite3"]
textconv = sqlite3 "$1" .dump
因此,我尝试更改配置以仅回显其输入内容:
Error: near "/": syntax error
fatal: unable to read files to diff
然后我可以看到git diff起作用了,但是它输出如下:
[diff "sqlite3"]
textconv = echo "$1"
这是路径的两倍,但是我似乎找不到关于为什么这样以及如何解决它的任何信息(无需使用正则表达式在空格处将其分割)。
我使用的是macOS 10.14.3,-/var/folders/mn/_1zkhxm93dq787rf0n1p_vyr0000gn/T//blFdBa_database.db /var/folders/mn/_1zkhxm93dq787rf0n1p_vyr0000gn/T//blFdBa_database.db
+path/to/the/database/database.db path/to/the/database/database.db
给出了git --version
答案 0 :(得分:1)
您可以简单地机械替换:
textconv = sqlite3 "$1" .dump
具有:
textconv = "f(){ sqlite3 \"$1\" .dump; }; f"
The gitattributes
documentation谈到textconv
:
程序应采用一个参数,即要转换的文件名,并在stdout上生成结果文本。
然后以这个为例:
[diff "jpg"] textconv = exif
通过添加$1
,Git使用第一个参数运行命令,然后使用参数运行命令。参数包含一个参数,因此您会两次看到一个参数。如果参数由两个字符串组成,则您会看到第一个重复,然后第二个重复一次。
(此行为与Git别名相同。)
如果您需要使用{em>两个参数运行sqlite3
,如sqlite3 name-of-file .dump
一样,则必须发明一个采用 one 参数的中间命令,像command name-of-file
中一样。然后,该中间命令可以简单地添加最终参数。
与别名一样,您可以使用shell函数来做到这一点:
[diff "odd"]
textconv = "f(){ echo $1 extra; }; f"
$ git diff
diff --git a/.gitattributes b/.gitattributes
index 9fa72ad450..bf2ef674cb 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,6 +1,6 @@
* whitespace=!indent,trail,space
*.[ch] whitespace=indent,trail,space diff=cpp
-*.sh whitespace=indent,trail,space eol=lf
+*.sh whitespace=indent,trail,space eol=lf diff=odd
*.perl eol=lf diff=perl
*.pl eof=lf diff=perl
*.pm eol=lf diff=perl
diff --git a/check-builtins.sh b/check-builtins.sh
index a0aaf3a347..089031a86e 100755
--- a/check-builtins.sh
+++ b/check-builtins.sh
@@ -1 +1 @@
-/tmp/fo3NBV_check-builtins.sh extra
+check-builtins.sh extra