[对不起,这不是一个直接的编程问题.但我最近切换到一台新的Vista机器,我保持启用UAC(请不要告诉我禁用它,它不是一个选项).
每次运行gnu的patch.exe时,我都会从Vista获得一个提升对话框.如果我将patch.exe重命名为foo.exe它不会这样做,所以我认为这是Vista的"启发式"之一.
有谁知道如何禁用它?这让我疯狂,谷歌没有帮助.
或者我应该为patch.exe添加一个清单,告诉系统不要试图提升这个?这会起作用,如果是这样,你怎么做出这样的表现?
非常感谢,到目前为止,我一直在墙上撞了一个小时.
我想应用此线程中提到的action_mailer补丁,但我之前从未应用过补丁,我不确定这些是如何工作的:https: //rails.lighthouseapp.com/projects/8994/tickets/2263
我的动作邮件宝石在这里:/opt/ruby-enterprise-1.8.6-20090421/lib/ruby/gems/1.8/gems/actionmailer-2.3.2
我假设我需要去那个目录并运行patch命令......这样的事情?
cd /opt/ruby-enterprise-1.8.6-20090421/lib/ruby/gems/1.8/gems/
wget https://rails.lighthouseapp.com/attachments/108548/0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch
patch < 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch
Run Code Online (Sandbox Code Playgroud)
我还不太清楚的一件事是补丁文件是指"actionmailer"目录,但是我的名字叫做"actionmailer-2.3.2"
我已经使用Eclipse中的Create Patch工具为未提交的更改创建补丁.我正在寻找一种在Eclipse中为已经提交给VCS的更改创建补丁的方法.
除非我错过了一些我不认为这是可能的,但是有没有添加此功能的插件?例如,您可以在"历史记录"视图中选择两个版本,并在它们之间创建补丁或比较两个分支,并且能够在"同步"视图中根据结果创建补丁吗?
我很高兴从命令行创建这样的补丁,但我正在寻找一种方法来简化/集成过程,如果可能的话.
谢谢你的帮助.
更新:如果有任何建议特定于特定的源控制系统,我对CVS,SVN和Mercurial特别感兴趣.再次感谢.
在我的Windows框中,我尝试使用该命令创建Subversion补丁svn diff > my_patch.diff.生成的文件使用UTF-16编码,而不是UTF-8或ASCII编码,所以当我尝试使用patch(来自GnuWin32)应用补丁时,它不起作用.
我可以通过在记事本中打开它并将其保存为所需的格式,将补丁文件转换为UTF8,然后在patch此之后处理它.但是,有没有办法svn diff在Windows上生成UTF8?
更新:正如我的回答所示,事实证明问题与Subversion无关diff,或者patch.PowerShell是非常有用的将输出转换为Unicode.我将问题保留原样,以便有类似问题的人可能偶然发现它.
我知道为现有文件创建补丁很容易:
diff -aru oldFile newFile 2>&1 | tee myPatch.patch
但该怎么办,如果我想为一个全新的文件创建一个补丁?假设我的文件驻留在一个名为的文件夹中TestDir.之前TestDir没有一个名为的文件entirelyNewfile.c,但现在却有相同的文件.
如何为其创建补丁entirelyNewfile.c?这个想法是,补丁应该适当地应用于规范并生成RPM构建.使用BUILD dir有这个新文件.
只是添加:如果我尝试在两个目录之间进行差异,一个具有新文件而另一个缺少相同的,为了创建补丁,它会生成错误,说该文件仅存在于一个文件夹中
我有一系列我想要发送给开源项目的补丁但是我无法弄清楚如何正确格式化电子邮件.我尝试运行git format-patch命令然后将它们全部附加到来自Thunderbird的电子邮件中,但它们都被拒绝了,因为每个补丁本身应该是一个单独的电子邮件.我想避免使用git email命令,因为我在私有的同一个树中有代码,我需要发送一些代码,这意味着我需要能够在发送之前手动查看每封电子邮件.
我想继续使用Thunderbird,但它似乎有问题,因为它包装线并使补丁无法使用.我也尝试过设置fetchmail和mutt,但经过10个小时的阅读和尝试,我放弃了.是否有用于发送git补丁的非fetchmail和非thunderbird解决方案?
我正在尝试通过reviewboard创建一个补丁文件.
这将是最初的补丁.
diff -ruN --exclude=.git empty_dir working_dir > mypatch_00.patch有效,但我得到一个"所选文件似乎不是差异." 错误.
有没有办法让它使用git-diff或diff工作?谢谢
我有一个补丁文件.
我想将此补丁应用于我在git存储库中的代码.
当我使用subversion时,这个过程非常简单:右键单击 - > tortoise svn - > apply patch.它总是像我预期的那样工作.
但是我不能用git这样做.Git不适用我的补丁.它抱怨
补丁没有有效的电子邮件地址.
所以,我的问题是:"在这种情况下如何应用补丁文件?"
由于自制软件工作者现在已经删除了在安装期间应用mutt侧边栏补丁的选项,我去搜索并发现有人为mutt版本1.5.22创建了更新的mutt侧边栏补丁(每个mutt侧边栏版本似乎总是与上一个或下一个).
但是补丁,它只是github存储库上的.patch文件,位于https://github.com/nedos/mutt-sidebar-patch并不包含任何安装指令.由于自制软件包是二进制软件包我不知道如何安装它,因为您通常需要将patch命令指向要修补的文件.
经过一些搜索,我发现有人如何使用他们在git上找到的补丁来修补其他软件,他们克隆了git存储库并使用git命令应用补丁,但是后来我又不知道github存储库url(如果正在使用git)1.5.22版本的mutt,我也不确定我是否需要重新编译它.
有人能指出我正确的方向并给我一些提示吗?优选地是解决方案 谢谢你的时间.
关于它们如何工作,我想知道低级工作的东西:
关于安全性,事实上,巨大的Linux内核存储库是他们安全的证明.但我想知道以下几点:
好的人,我正在编辑,因为问题含糊不清,答案没有解决细节问题.
Git似乎默认使用的统一差异格式基本上输出三个东西:变化,变化周围的上下文以及与上下文相关的行号.这些东西中的每一个可能同时也可能没有同时更改,因此Git基本上必须处理8种可能的情况.
例如,如果在上下文之前添加或删除了行,则行号将不同; 但是如果上下文和更改仍然相同,那么diff可以使用上下文本身来对齐文本并应用补丁(我不知道这是否确实发生).现在,其他案件会发生什么?我想知道Git如何决定自动应用更改以及何时决定发出错误并让用户解决冲突的详细信息.
我非常确定Git是完全可靠的,因为它确实具有完整的提交历史并且可以遍历历史.我想要的是一些指向学术研究和有关这方面的参考资料,如果它们存在的话.
仍然有点与这个主题相关,我们知道Git/diff将文件视为通用文本文件并在线上工作.此外,diff使用的LCS算法将生成一个试图最小化变化数量的补丁.
所以这里有一些我想知道的事情:
同样,这些可能是一个巨大的主题,欢迎学术文章.