使用SVN向开源项目提交工作补丁或错误修复的最简单方法是什么?
理想情况下,我想提交修订版或补丁,以便他们可以在批准时直接将其应用到他们的存储库中.
如果重要的话,我正在使用TortoiseSVN.
我想创建一个补丁来反映对未版本控制文件的更改.我有"改变前"和"改变后"版本,而Tortoise Diff很乐意比较它们.我还可以使用Tortoise SVN制作反映这些变化的补丁吗?
我试图patch在stdout上捕获bash 的输出,但是我收到一个错误:
patch -o- some/file
patch: can't output patches to standard output
Run Code Online (Sandbox Code Playgroud)
我可以在stdout上获得补丁结果吗?
这是我的程序:
#include <stdio.h>
int main(){
int var=5;
if(var==5) printf("Accesso effettuato!");
else printf("Access denied");
}
Run Code Online (Sandbox Code Playgroud)
我在十六进制编辑中更改了操作代码……就像这张图片一样,但是当我运行我的程序时,我遇到了分段错误。



我正在使用bsdiff.exe构建一个软件补丁并将其与bspatch.exe一起应用,到目前为止,对于小于120MB的文件没有任何问题.我有一个二进制文件以前是21MB,现在是77MB,而bsdiff似乎无限期挂起.
根据文档,"bsdiff非常需要内存.它需要max(17*n,9*n + m)+ O(1)字节的内存,其中n是旧文件的大小,m是大小新文件." 这解释了大文件的问题,但是当delta较大时似乎会出现问题.
有没有人有这方面的任何信息?任何事情都会有所帮助,谢谢!
我正在使用GDB调试Mac OS X 64位应用程序。我看到跳过一大堆代码可以解决我所有的问题。
但:
如何修补可执行文件以实现跳转?我希望应用程序在没有调试器的情况下自动跳转到代码中的定义点。
这就是我想做的:
在地址0x1000027a9(由调试器提供)处跳转到address 0x100003b6e。我正在努力通过HexEdit进行操作,但是没有成功。我在任何地方都读到了关于jmp到绝对地址操作码的信息(FF似乎是正确的操作码,但这是一个调用,而不是跳转...),但是没有任何效果。错误的访问,segfault。
我怎样才能做到这一点?
错误!未安装此sh脚本中使用的一些必需的系统工具:错过了工具"补丁",请安装它们(它们).
有什么我想念的吗?
编辑:
我正在为magento 1.7.0.2版运行补丁
PATCH_SUPEE-2677_EE_1.13.0.2_v2.sh文件显示此错误.
我在Buildroot(2017.02版)中打补丁,但是当我覆盖包中的包源时local.mk:
PACKAGENAME_OVERRIDE_SRCDIR = /...path_to_local_checkout
Run Code Online (Sandbox Code Playgroud)
我看到Buildroot修补程序未应用于此软件包。
仅当未在local.mk中覆盖该程序包时,才应用它们。
这是预期的行为吗?
笔记:
board/company_name/common/patches/...我目前正在尝试集成github中的一个包,它在用户空间中实现了一个MTP响应器.
我正在使用buildroot 2017.08.
我创建了包含以下内容的文件Config.in和umtprd.mk文件.
我还修补了源代码,以便将某些字段的值替换为随包提供的配置文件.
Config.in
$ cat Config.in
config BR2_PACKAGE_UMTPRD
bool "umtprd"
help
umtprd is a deamon, checking USB connection and start MTP communication.
https://github.com/viveris/uMTP-Responder
if BR2_PACKAGE_UMTPRD
config BR2_PACKAGE_UMTPRD_TAG
string "git version of umtprd package"
default "master"
help
Must be the name of the branch/tag :
https://github.com/viveris/uMTP-Responder
endif #BR2_PACKAGE_UMTPRD
Run Code Online (Sandbox Code Playgroud)
umtprd.mk
$ cat umtprd.mk
UMTPRD_VERSION = $(BR2_PACKAGE_UMTPRD_TAG)
UMTPRD_SITE_METHOD = git
UMTPRD_SITE = https://github.com/viveris/uMTP-Responder
define UMTPRD_BUILD_CMDS
$(MAKE) CFLAGS="-DUSE_SYSLOG" CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D)
endef
define UMTPRD_INSTALL_TARGET_CMDS
$(INSTALL) -D …Run Code Online (Sandbox Code Playgroud) 我正在尝试测试作为请求请求排队的更改。拉取请求位于GitHub上,位于此处。我的脚本是:
export P11KIT_DIR=p11-kit-master
rm -rf "$P11KIT_DIR" 2>/dev/null
if ! git clone --depth=3 https://github.com/p11-glue/p11-kit.git "$P11KIT_DIR";
then
echo "Failed to checkout p11-kit"
exit 1
fi
cd "$P11KIT_DIR"
if ! git cherry-pick a0946a562a8e;
then
echo "Failed to patch p11-kit"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
该脚本死于错误:
fatal: bad revision 'a0946a562a8e'
Failed to patch p11-kit
Run Code Online (Sandbox Code Playgroud)
a0946a562a8e显然是修订号。我直接从GitHub获得。我猜cherry-pick是错误的命令。
如何将a0946a562a8e添加到主机中?
patch ×10
buildroot ×2
linux ×2
tortoisesvn ×2
assembly ×1
bash ×1
binary-data ×1
binary-diff ×1
git ×1
github ×1
ida ×1
linux-kernel ×1
macos ×1
magento ×1
open-source ×1
package ×1
pull-request ×1
security ×1
svn ×1
x86-64 ×1