问题标签 [patch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
executable - IDA Pro 和编辑可执行文件
这是一个非正统的问题。
我对使用 IDA Pro 有点陌生。
有没有办法编辑汇编代码,然后让 IDA 将结果保存为可执行文件?
是否有某种插件可以做到这一点?因为似乎IDA不想保存为EXE。
还是我需要以其他方式手动编辑它?
version-control - 您如何在生产服务器上的 Web 项目上应用补丁?
我们最近有一个项目,我们在客户的服务器上发布了一个大型网络应用程序的测试版。我们的客户要求我们在错误出现时进行修复,我们尝试以同样的方式进行。通常,在我们的原型服务器上构建应用程序要容易得多,因为我只需发出简单的“svn up”命令,这需要一秒钟。
但是在生产环境中,我们没有任何可用的版本控制工具。是否可以自动化修补工作,这样我们就不需要登录到 ftp 并逐个上传每个文件?
以这种方式工作非常困难。当我遇到这个问题时,可以肯定的是,你们中的一些人已经解决了这个问题。请分享您的解决方案。
期待您的回复...非常感谢您阅读。
php - 在 PHP 中应用差异
我正在使用 Text_Diff PEAR 包来区分短文本文档,其中 Text_Diff 对象是使用每个文档中以空格分隔的单词列表创建的。我希望将差异存储在数据库中,然后在再次加载文件时应用它。有没有一种简单的方法来应用这个差异,还是我需要编写一个函数来解析它?
linux - 如何向 Linux 内核提交潜在的补丁?
我们有一些软件依赖于另一个(非常常用的)应用程序的某些行为,这些应用程序现在已经改变,使我们当前的实现可行,但不是最优的。
我们相信这一变化可能影响了许多其他应用程序,特别是在性能监控领域,我们已经找到了一个我们认为可以改善一系列其他潜在问题的解决方案。
不幸的是,上述解决方案是内核更改(相对简单但如果我们把它塞进去会产生很大影响),我们没有提交内核补丁以供审查的经验。
SO上有没有人真的提交了一个补丁(虽然我很感激所有的答案,但我怀疑最好的答案来自那些已经通过这个过程的人,即使是不成功的)?您是否已接受它(Alan Cox 等人在 SO 上徘徊的机会有多大)?
正确的流程是什么?我不打算向 Linus 发送电子邮件,因为我知道他有一群保护者,你应该在它到达他之前通过这些保护者。我如何找出谁负责内核的特定部分。
可能是我过于乐观地认为内核世界从未听说过的人可以做出贡献,但我很想知道。
编辑更多细节:
更改实际上并不是针对性能错误,而是(在我看来)对进程终止时写入的进程会计条目(当前)的改进。
Websphere App Server(啊,IBM,祝福他们的小心脏)已经改变了它的工作;JVM 过去常常定期退出,以便写入它们的条目,我们可以将其用于退款。现在它让 JVM 闲置了几个月,这意味着除非我们定期强制关闭 WAS,否则无法及时获得数据。不知何故,我认为 IBM 的软件部门不会为我们修复他们的软件 :-)。无论如何,我相信它对于其他长期存在的进程来说可能是一个有用的特性。
当前类型 3 进程记帐记录是在进程退出时写入的,我们正在研究的是一种在进程仍处于活动状态时定期写入类型 N 记录的机制,给出自上次写入以来的数字(或进程启动,如果这是第一次)。计费或性能监控应用程序可以选择使用类型 3 记录(完全未更改)或临时类型 N 记录。我们目前的解决方法是监视特定进程的 /proc/PID/stat ,但这是一个可怕的问题,因为它不能很好地与实际进程记帐集成。
不需要经常(我们很高兴有 24 小时),但可能会对性能产生影响,因为当前仅在进程 exit() 上完成的工作将不得不偶尔在进程上下文切换时完成。Linus 等人可能不喜欢这个想法,因为它可能是代码的高影响区域(即使检查自上次写入以来是否有 24 小时可能对他们来说太慢了)。
不过,感谢到目前为止所有的答案,我会看看我怎么走。给我几天,我会接受最好的答案。
diff - 使用 diff 的输出创建补丁
我有这样的东西
我相信这是使用源树中的 diff 命令创建的。我想要的是使用该输出创建补丁,并将相同的更改应用于我的源代码树。
diff - 如何对两个源树使用 diff 命令
我尝试对两个源目录运行“diff”,得到一个补丁文件,两个目录之间有一个“diff”。
上面的命令似乎不起作用,它会生成所有内容的差异,我得到一个 13 MB 的文件,而实际上,它应该是一些更改。
ruby - 在 GC Patched ruby 中安装 gem 的正确方法是什么?
我想安装一个 GC Patched Ruby 来对我的应用程序进行内存分析。我按照http://guides.rubyonrails.org/performance_testing.html#gc上的说明在我的主目录安装了一个 ruby 实例(我已经有另一个“官方”实例用于开发)。这个 GC Patched ruby 实例工作正常。
问题是当我需要将 gems 安装到这个实例时,正如上面指南中的步骤 1.8.6 告诉我的那样。我不能在我的机器上使用已经安装的 rubygems,因为它指向其他 ruby 实例。而且我无法将另一个 rubygems 实例安装到我的 gc 修补的 ruby 中。
这就是为什么我想知道在 GC 修补的 ruby 上安装 rubygems 的正确方法,在一台已经安装了另一个未修补的 ruby 的机器上。
python - 如何用 Python 覆盖文件中间的一些字节?
我希望能够使用 Python 覆盖文件中给定偏移量的一些字节。
我的尝试惨遭失败并导致:
- 覆盖偏移处的字节,但也会在之后截断文件(文件模式=“w”或“w+”)
- 在文件末尾附加字节(文件模式=“a”或“a+”)
是否可以通过 Python 以可移植的方式实现这一目标?
windows - 如何在 Windows 上应用差异补丁?
有很多程序可以创建差异补丁,但我正在尝试应用一个。我正在尝试分发补丁,但我收到了用户关于如何应用它的问题。所以我自己想办法搞清楚,发现自己一点头绪都没有,能找到的工具大多都是命令行的。(我可以处理命令行,但是如果没有漂亮、友好的 GUI,很多人会迷失方向。所以这些对这个目的没有好处。)
我尝试使用 TortoiseSVN。我有我想应用的补丁。我右键单击补丁,在 TortoiseSVN 子菜单下有一个选项,上面写着“应用补丁”。它所做的只是打开一个空窗口。
所以我试着点击打开。它有两个选项:合并和应用统一差异。(幸运的是,补丁是统一的差异格式。)但是 apply 选项不起作用:它要求提供补丁和文件夹。不知何故,它忘记询问要应用补丁的文件!所以 TortoiseSVN 只是普通的不起作用。是否有基于 Windows GUI 的实用程序可以获取补丁和文件并正确应用它?
编辑:查看到目前为止的回复,似乎 Tortoise 只有在它是一个已经版本化的文件时才会正确。这不是这里的情况。我需要能够将补丁应用于不是来自 SVN 存储库的文件。我刚刚尝试使用 Tortoise,因为我碰巧知道 SVN 使用差异并且必须知道如何创建和应用它们。
.net - 为更新的 WinForms 应用程序创建安装程序
我发布了一个应用程序,并实现了用户请求的功能,并希望发布一个新版本。我不确定这通常是如何完成的 - .NET 安装项目中是否有一些设置可以用来告诉它在应用程序已安装的情况下仅覆盖某些文件,或者我是否必须以某种方式生成补丁?
如果您要建议自动更新,我同意这是个好主意,但原始版本只是检查应用程序网站以查看是否有新版本,并将用户引导至下载页面以获取更新版本- 它不会为您下载和自动更新。即使我将它添加到这个版本中,我仍然需要一种友好的方式来向我现有的用户提供更新。