当我在未暂存文件的差异视图中选择一堆线并尝试暂存它们时,GitExtension多数情况下会说类似“错误.....补丁不适用”之类的内容。
关于这一点,如果选择了整条生产线,而不仅仅是部分选择的话,将会更加清楚。
对于通常的复制/粘贴操作而言,选择整个行不起作用...
但我同意该算法应支持新创建的文件。 虽然不确定如何做...
好吧,想想就容易。 在提交的情况下,从diff复制文本是非常不寻常的。 我看过其他解决方案,可以复制整行,这很好。 在这种情况下,我认为复制功能很不错。 我知道,差异文件时使用的是同一视图。 因此,也许一个单独的类(委托?)可以处理提交文档的功能。
我不明白你在说什么。 这个问题存在了很长时间,非常烦人。 我暂存新创建的行而不是已跟踪的行,而是修改的文件时,不会遇到这种情况。 伤心,但我仍然没有获得复制的步骤(((
我已经有一段时间没有使用此功能的任何问题了。 一旦您能够复制它,请告诉我们,否则几乎无法修复...
好吧,它在2.25中绝对不起作用,在2.26中似乎以某种方式起作用,但是对此没有官方的解决方法。 由于这种行为,我无法分开提交,因此必须“按原样”提交。 我要说的是gitx中的行为,这是目前最好的ui之一。 这是直观而清晰的。 在提交过程中在差异内选择一条线时,将选中整条线,并且在右侧会根据选择的一条或多条线恰好显示一个按钮“ stage line(s)”。 如果单击它,则这些行是暂存的,反之亦然。 会喜欢在gitextensions中看到类似的东西。
现在:如果您完全选择要(取消)登台的整行,而不是或多或少地不选择任何字符,这似乎可行。 因此,当清楚了解发生的更多细节时,也许我们可以关闭问题并重新打开?
“目前:如果您完全选择要取消显示的整行,而不是或多或少不输入任何字符,这似乎是可行的。因此,当清楚知道会发生什么的更多细节时,也许我们可以关闭问题并重新打开?”
我不同意这个。 就在昨天,我遇到了错误,选择整行没有帮助。 我记得在某些旧版本中,这有时会有所帮助,但现在不是。 (可能是在取消升级行的能力的版本之后)。
正如我之前所说:如果您有可以复制的情况,请保存该状态,以便其他人(或您)可以尝试解决此问题! 没有可重现的测试用例,就永远无法解决!
我不知道我是否最好开一个新期刊,但我将从这里评论开始。 如果那更好,我会很高兴地打开一个新期刊。
我注意到打开“显示整个文件”时尝试暂存行时出现上述错误。 如果我重新将其关闭,则效果很好。 对于我来说,这一直在发生。 我使用的是2.26版,但我刚刚升级到2.28版,而且这种情况仍在发生。
参考#636
我昨天也遇到了同样的问题(在GitExtensions项目上也是如此)。 文件中的某些行可以暂存,而其他行则不能。 今晚我将尝试重制它。
我以带有BOM的UTF8编码重现了.sln文件的错误。 仅在组合框中的差异编码为UTF8时才会出现问题。 当我切换到默认编码时,一切正常。
我认为主要问题是因为BOM更改了行号
我刚刚在Git Extensions v2.28中观察到类似的问题。 使用Unix行尾创建的文件,以及使用Git扩展添加的文件,我收到警告,行尾不会在我的工作空间中被修改,但是如果我再次签出文件,它们将被Windows行尾替换。 在此之后,我对该文件进行了两项更改。 然后,仅尝试暂存第二个大块的尝试失败,声称补丁已损坏。 暂存第一个块似乎很好。 尽管命令行结尾,命令行git工具也可以毫无问题地进行第二次调试,因此这似乎是Git Extensions中的错误。
删除文件,然后执行“ git checkout”以获取具有正确行尾的版本,可以解决此问题-现在,我可以使用Git Extensions孤立地进行补丁的第二次扩展,而不会引起错误。
但是,当我尝试逐个撤消两个块时,也出现了类似的补丁损坏错误-当暂存区中不再有块时,它不喜欢它。
该问题似乎源自文件的编码或如上所述的行尾。 就在今天,我在ac#项目中遇到了这样的情况,该项目包含带德语字符(Latin1,Windows-1251?)字符串的注释,并且在一行中(无论出于何种原因)它更改了文件编码。 该文件已由VS2010重新格式化。 从这一行开始,每行都不能通过GE暂存(2.40,但在较早的版本中也是如此)。 在core-git中暂存效果很好。
我刚刚从2.31升级到2.40,此功能现在似乎已完全损坏。 我似乎无法在任何文件中暂存任何行。 我已经尝试过同时使用ANSI编码的C ++文件和UTF-8编码的C#文件,这些文件大多数时候都在2.31中工作(用于解决文件最后一行的问题)。
“ ...补丁失败...补丁不适用...”
+1
a670f1501103fbe0d214ab76811a33353cab87af修复了2.40中引入的错误
fd96875589f22851a691fa1f0f989816a77458aa修复了BOM问题
非常感谢Janusz。 我重建了GitExtensions,替换了Program Files中的文件,效果很好。
我确实注意到,如果文件末尾有一个空行并将其删除,则GitExtensions无法进行此更改,但这是我先前的评论中提到的现有缺陷。
这是一个快速修复。 当我测试它时,发现该阶段不起作用的另一种情况。 我将尝试以更简单的方式重写算法。
如果有人使用2.41或更高版本重现此错误,请重新打开它。
我目前在2.43中遇到此问题。 如果选中了“忽略空白更改”,则无法在任何文件的任何位置“分段选定的行”。 (不幸的是,当取消选中该选项时,我必须提交的许多文件都删除了文件中的每一行,然后又添加了每一行。我不确定为什么;可以想象这是制表符对空格的事情,但是那会特有的,因为这些文件之一是.csproj,通常不会手动编辑该文件,因此该设置不会受到更改。
此功能不适用于忽略的空格。 它看起来更像是停产问题。
在以下情况下,发生这种情况的原因是2.48:
Tools->Settings->Git config->Line Endings: Not set
将“行尾”设置为任何选项均可解决此问题。 在effective
视图中看起来像not set
是一个配置问题,在我看来应该这样显示。
当使用GitExtensions 2.51.03(Windows 10 64位)启用了“忽略开头和结尾的空白更改”或“忽略所有空白更改”时,此更改的特定变体(如先前由Grantbowering报告的
error: patch failed:
... error:
... patch does not apply
。请参阅#3493。
在周五,2018年6月29日,下午8时03 per1234 [email protected]写道:
特定的变体,但如先前报道
https://github.com/gitextensions/gitextensions/issues/684#issuecomment-12332133通过
当我“忽略开头和结尾的空格时,就会发生Grantbowering
更改”或“忽略所有空白更改”已通过GitExtensions启用
2.51.03,Windows 10 64位:
- 修改文件。
- 命令>提交
- 将鼠标悬停在提交对话框的差异窗口上。
- 在出现的顶部工具栏中,启用“忽略开头和
尾随空白更改”和/或“忽略所有空白更改”。- 单击差异中的修改行。
- 按“ S”键登台所选行:错误:修补失败:
...错误:...补丁不适用。-
您收到此消息是因为您已订阅此线程。
直接回复此电子邮件,在GitHub上查看
https://github.com/gitextensions/gitextensions/issues/684#issuecomment-401501721 ,
或使线程静音
https://github.com/notifications/unsubscribe-auth/ADdhsSZcDBHHn25q6HhRfvdkTdM5pjbsks5uBsA3gaJpZM4AFHeS
。
最有用的评论
在以下情况下,发生这种情况的原因是2.48:
Tools->Settings->Git config->Line Endings: Not set
将“行尾”设置为任何选项均可解决此问题。 在
effective
视图中看起来像not set
是一个配置问题,在我看来应该这样显示。