我正在对一个分支机构中的项目进行更改,到目前为止,除了我之外,其他人都不知道.但是,从最近开始,当我git push参与这个项目时,我现在收到这个作为响应的一部分:
remote: Create pull request for <<my branch>>:
remote: https://bitbucket.org/...
Run Code Online (Sandbox Code Playgroud)
我不知道为什么Git会给我这个消息,这是我以前从未见过的.
即使我删除了远程分支(" git push origin :<<my branch>>"我现在仍然收到此消息!(我成功删除了远程分支,但消息仍然存在)
(很长的故事 ...)
我正在将一个巨大的PHP应用程序带到本世纪...... ;-) ......而其他团队正在继续维护它的现有版本.
到目前为止,这导致约275个补丁.麻烦的是,我们所做的一项改变是将<?代码转换为代码<?php,并在整个代码中进行了一些类似的更改.当然,所有这些都阻止了应用补丁,因为(确实......)源代码不匹配.
所以,我想写一个小脚本来编辑补丁文件:更改补丁中的标签.
但是,我得到的是corrupt patch.
所以,我想知道的是:是什么导致了这个消息?也就是说,当它出现这个消息时,Git正在寻找什么样的错误?我需要"调整我的调整器"... 哼 ...以便编辑的补丁工作. (注意原始的补丁文件,在我调整之前,并没有"腐败",所以它一定是我正在做的事情.)
我的脚本试图改变上述PHP标签<?php echo,以及一个功能名称.只不过是全球的preg-replace.对于Git来说,我不容易看到我可能会说的是"结构性问题".但是,显然,有些事情是.
示例补丁:corrupt patch at line 37...
From 342c5939da8cf4cbe495be7d635cd627bd2a44ed Mon Sep 17 00:00:00 2001
From: xxx <xxx@yyy.com>
Date: Wed, 17 Feb 2016 03:45:31 +0000
Subject: [PATCH 001/275] Make it all work
---
catalog/includes/modules/shipping/upsFreeGround.php | 2 +-
catalog/product_info_v3.php | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/catalog/includes/modules/shipping/upsFreeGround.php b/catalog/includes/modules/shipping/upsFreeGround.php
index …Run Code Online (Sandbox Code Playgroud) 大约五个月前,我们开始了一个项目,对遗留的 PHP-4/5 应用程序进行大修和升级,将其迁移到 PHP-7(以及许多其他内容)。此应用程序包含 2,700 多个文件,并且几乎对所有文件都进行了大量更改。
同时,遗留应用程序继续支持客户,到目前为止已经进行了大约 250 次更改。我有(并且可以制作……)git补丁来表示这些更改。我眼前的问题是他们中的大多数都没有git apply。
当然,很容易理解为什么:补丁中表示的“行号”几乎没有用。虽然在大多数情况下,被寻找的源代码是存在,它可能已被移动一段距离。
我现在的想法(根据有关补丁文件的30考试)是,在用地,很多情况下,文字的源代码将被打补丁是仍然存在,逐字,在源文件中,只是没有在预期的地方.
尽管我很现实,知道其中许多补丁必须手动分析和制作,但为了时间和准确性,我想尽量减少这种情况。我希望将要这样做的人......包括我(!)......能够尽可能地利用自动化工具,知道他们将不得不检查每个补丁的工作。我不幻想我可以一次自动完成所有这些文件,“Shazam。 ”
那么,有谁遇到过类似的情况呢?你建议我做什么?一个建议是使用patch带有fuzz选项的命令,请注意,该命令可能会起作用或可能导致应用不正确的补丁。
(我们计划在任何情况下一次做一个补丁:“补丁git commit、冲洗和重复。” 这样我们就git diff可以检查每个更改的完整性。)
“战争故事”要求。谢谢。
(现在怀疑 Apache 中可能存在错误......见下文。)
这是声明: (Apache 2.4)
<IfDefine !SERVER_TYPE>
Define SERVER_TYPE prod
</IfDefine>
<If "${SERVER_TYPE} !~ /prod|demo|test/"> <===error here===
Error "Define 'SERVER_TYPE' is hosed'"
</If>
Run Code Online (Sandbox Code Playgroud)
Apache 抱怨 IF:
Cannot parse condition clause: syntax error, unexpected T_OP_NRE, expecting '('
Run Code Online (Sandbox Code Playgroud)
我可以猜测 T_OP_NRE 指的是“否定正则表达式”,即“!~”,但我终生无法弄清楚该语句中的语法错误是什么! (顺便说一句,“=~”产生[几乎]相同的消息。)
Apache 正在识别 ${SERVER_TYPE} 语法,因为我可以确认我是否拼错了标识符。<DEFINE> 的文档明确指出应该使用“${ident}”而不是“%{ident}”语法,就像我所做的那样。
我的语法有什么问题,为什么 Apache 需要左括号?
我开始谨慎地相信这实际上是Apache/2.4.12 中的一个BUG(!),因为解析错误仅在使用“${DEFINED_SYMBOL}”时发生。如果符号未定义,它会抱怨并做所有正确的事情(所以,它知道它在看什么......),但它给出了一个无意义的(对我来说......)消息,当且仅当,这个结构在左边。
一个明显的解决方法是将符号放在单引号中,例如:
<If "'${SERVER_TYPE}' != /prod/demo/test/">
Run Code Online (Sandbox Code Playgroud)
...但到目前为止,在我的测试中,我认为它没有正确匹配正则表达式。事实上,我还不确定发生了什么,因为以下被认为是不匹配(“true”):
<If "'prod' !~ /prod|demo|test/">
Run Code Online (Sandbox Code Playgroud)
通过这个 Perl one-liner 可以显示正则表达式语法是正确的:
perl -e 'my $var = …Run Code Online (Sandbox Code Playgroud) 好吧,我已经“谷歌搜索”但没有找到答案。基于 Python 的站点(基于其 )的例行更新requirements.txt现在在尝试更新“mysqlclient”时失败,并显示元数据生成失败。问题是为什么。
这个问题已经在旧的Haxe论坛上被问过(并且可能已经回答过)...但看起来整个论坛系统都不再起作用了.因此,我在这里问:
在Haxe中,我需要声明一个包含静态函数"instance()"的类的"接口".但是当我这样做时:
You can't declare static fields in interfaces
所以我删除了"静态"这个词public function instance() [...],我得到了这个:
Field instance needed by [...] is missing.
显然是"Catch-22".但显然必须有一些简单的解决方案.它是什么?
我希望能够www.foobar.dev使用在OS / X (High Sierra)系统上的VM中运行的DNS服务器解析DNS名称,因为我创建了/etc/resolver/dev包含以下一行的文件:(指定VM的虚拟地址)
nameserver ww.xx.yy.zz
...但是dig www.foobar.dev继续咨询Internet名称服务器,
而dig @ww.xx.yy.zz www.foobar.dev成功地检索从VM的DNS条目。
我已使用该dscacheutil命令来确保DNS解析器缓存中没有错误的条目。
那么,为什么存在/etc/resolver/dev具有指定内容的文件不足以将“ anything.dev” 定向到指定的DNS服务器?
有趣的是,有时它似乎起作用。此外,命令scutil --dns生成以下期望的进入,这似乎表明该/etc/resolver/dev文件正在被发现!
resolver #8
domain : dev
nameserver[0] : ww.xx.yy.zz
flags : Request A records
reach : 0x00020002 (Reachable,Directly Reachable Address)
Run Code Online (Sandbox Code Playgroud) 如何从Wagtail数据库中删除旧修订版?我看到每次更改时,页面的先前版本都会保存在数据库中……非常好,但是如何“清除垃圾”呢?
换句话说:“好,此页面现已完成,我不希望再保留以前的版本。” 您会认为这很容易–但是,它在哪里?