Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 致命:git是在不支持git add--interactive(NO_PERL=1)的情况下构建的_Linux_Git - Fatal编程技术网

Linux 致命:git是在不支持git add--interactive(NO_PERL=1)的情况下构建的

Linux 致命:git是在不支持git add--interactive(NO_PERL=1)的情况下构建的,linux,git,Linux,Git,当我执行“git add-I”时,会弹出以下错误: 致命:git是在不支持git add--interactive(NO_PERL=1)的情况下构建的 我急需帮助 谢谢大家的评论。我通过删除git并安装“apt get install git”来修复它 问题是Bitnami-LAMP虚拟机附带了一个预构建的git,我想它不是用PERL构建的。我检查了我的PERL版本,一切正常。不管怎样,一切都很好 有了Git 2.25(2020年第1季度,五年后),Perl应该不再是Git add的要求 在这里

当我执行“git add-I”时,会弹出以下错误:

致命:git是在不支持git add--interactive(NO_PERL=1)的情况下构建的


我急需帮助

谢谢大家的评论。我通过删除git并安装“apt get install git”来修复它

问题是Bitnami-LAMP虚拟机附带了一个预构建的git,我想它不是用PERL构建的。我检查了我的PERL版本,一切正常。不管怎样,一切都很好

有了Git 2.25(2020年第1季度,五年后),Perl应该不再是Git add的要求 在这里,“
git add-i
”正在用C重写

参见(2019年11月15日)和(2019年11月13日)作者。
参见(2019年11月15日)和(2019年11月13日)作者。
参见(2019年11月13日)作者。
(于2019年12月5日合并)

:执行
help
命令 签字人:SlavicaĐukić
签字人:Johannes Schindelin

这模仿代码,在内置版本中显示来自Perl脚本
git add--interactive.Perl
的帮助文本

以及:

:显示命令的唯一前缀 原始补丁作者:SlavicaĐukić
帮助人:SZEDER Gábor
签字人:Johannes Schindelin

就像在Perl脚本
git add--interactive.Perl
中一样,为每个命令确定一个唯一的前缀(如果给定参数中存在),并显示在列表中,并作为命令的快捷方式接受

为了确定唯一前缀,以及查找相关命令,我们使用列表的副本并对其进行排序

虽然对于单个命令来说这似乎有些过分,但当所有命令都实现时,当我们使用相同的逻辑来显示要编辑的文件列表,并带有方便的唯一前缀时,这将更有意义

在本修补程序系列开发之初,引入了一个专用的数据结构,它模仿了Perl版本实现的Trie。然而,这被认为是矫枉过正,我们现在只需对列表进行排序,然后通过查看每个项的相邻项来确定唯一前缀的长度。作为奖励,我们现在使用相同的排序列表执行二进制搜索,使用用户提供的前缀作为搜索键

说明:

“前缀项列表”是由字符串标识的项列表,并且为每个项确定唯一的前缀(如果有)

开始时:

:开始实现内置版本的
git add--interactive
签字人:Johannes Schindelin

与以前的C转换不同,我们从一个内置助手开始,在新的opt-in
add.interactive.useBuiltin
配置旋钮打开时(或相应的环境变量
GIT\u TEST\u add\u USE\u BUILTIN
),我们通过在
run\u add\u interactive()
函数中添加一个拦截来开始转换,并调用新的内部API函数
run\u add\u i()
,该函数直接在
libgit.a
中实现

转换的整个弧线可以在PRs-175 at中找到

不幸的是,“
--helper
方法”不能在这里使用:在Windows上,我们面临一个非常具体的问题,即当生成的进程消耗
stdin
中的一个字符时,Perl中的
system()
调用似乎关闭父进程中的
stdin
。这使得我们无法在C中实现主循环,并且仍然试图将其交给Perl脚本

我们在这里必须采取的方法的真正缺点是,在转换完成之前,
GIT\u test\u ADD\u I\u USE\u BUILTIN=true
不会通过测试套件(即使在每个增量转换步骤中,
--helper
方法也会让它通过)


注意:使用Git 2.25可以看到错误消息(在中报告):

这应该在Git 2.25.2(2020年3月)中加以修正

参见(2020年1月16日)by.
(于2020年1月30日合并)

:再次接受开放范围 签字人:Johannes Schindelin

交互式
add
命令允许通过唯一的前缀、索引或索引范围为其某些子命令选择多个文件

当在C中重新实现
git add-i
时,我们甚至添加了一条代码注释,讨论了缺少结束索引的范围,例如
2-
,但正如by中指出的,代码实际上并不接受这些范围

另一方面,在
C
中重写
git add--interactive
打破了使用开放范围(例如
Patch update>>2-
来选择除第一个文件以外的所有文件的能力。
这与此问题有关,因为尝试此操作会导致与此问题相同的行为(即2.24.1.windows.2中的错误和2.25.0.windows.1中的立即退出)

让我们修复这个问题,并添加一个测试用例来验证它是否永远保持不变


有了Git2.26(2020年第1季度),将“
GitAdd--interactive
”移动到C的工作仍在继续

参见,,,,(2019年12月21日)by.
(于2020年2月5日合并)

:准备“阶段”以外的补丁模式 签字人:Johannes Schindelin

支持
git add-p
的Perl脚本不仅用于该命令,还用于
git stash-p
git reset-p
git checkout-p

为了教C版的
git add-p
同时支持后面的命令,让我们将特定于“阶段”的内容抽象为一个专用的数据结构,描述补丁模式之间的差异

最后,请注意,Perl版本试图确保仅为修改后的文件生成差异。 这不是行动
BUG: pathspec.c:555: PATHSPEC_PREFER_CWD requires arguments