标签: patch

Microsoft(以及具有大量安装基础的其他软件公司)如何管理补丁依赖项?

Microsoft发布到社区的操作系统(通常是基于安全性的)修补程序和修补程序通常由我理解的一系列更新的DLL或其他二进制文件组成.

Microsoft和其他类似公司如何确保这些修补程序不会相互冲突?他们是否总是采用累积修补程序方法,其中单个修补程序将包含以前修补程序中的所有修补程序?这并不似乎是这种情况,因为许多修补程序似乎集中在固定的具体问题.如果它们是重点修补程序,它们如何防止一个修补程序丢弃另一个修补程序(例如,彼此安装不兼容的DLL).

我一直钦佩微软管理这个过程的能力.我工作的公司要小得多,而且几年前我在修补程序上工作时,我们总是采用累积方法,其中一个补丁立即取代所有先前基于该版本的补丁.这意味着补丁的大小逐渐变大,直到下一个"官方"版本发布.

管理补丁依赖项有哪些好的做法?

patch hotfix

5
推荐指数
1
解决办法
523
查看次数

反向xdelta补丁

有没有办法扭转xdelta补丁?
例如:
A - 文件版本1.
B - 文件的第2版.
P - 补丁.
文件B我们可以通过将补丁P应用到文件A
来更新.如果我有文件B和补丁P,是否有更新文件A的方法?

patch

5
推荐指数
1
解决办法
1041
查看次数

如何改进我们的构建和部署过程?

我们的构建/部署过程非常繁琐,手动充足且容易出错.你能提出改进建议吗?

让我来描述一下我们的部署策略和构建过程.我们正在开发名为Application Server(简称AS)的系统.它本质上是托管在JBoss Web服务器上的基于servlet的Web应用程序.AS可以安装在两个"环境"中.每个环境都是一个包含webapp代码的目录.此目录位于网络存储上.存储安装到安装了JBoss实例的多个生产服务器.目录链接到JBoss的webapps目录.因此,所有JBoss实例都使用相同的环境代码.JBoss的配置与环境分开,并且基于每个实例进行更新.

所以我们有两种类型的补丁:webapp补丁(针对不同的环境)和配置补丁(针对每个实例配置)

补丁是一个可执行文件.实际上它是带有嵌入式二进制rpm包的bash脚本.安装非常简单:您只需执行文件并可选择回答一些问题.重要的一点是补丁不是一个整体系统 - 它只包含一些带有修改和/或修改配置文件的脚本的类.将类复制到WEB-INF/classes中(AS部署为展开的目录).

我们构建这些方案的方式是:

  1. 我们采用一些以前的补丁文件并复制它们.
  2. 我们修改补丁的内容.其中最重要的部分是RPM规范.我们更改补丁名称,更改其先决条件rpm包并记下用于备份,复制和修改文件的实际bash命令.这是最讨厌的部分之一,因为我们并不总能获得实际的变更集.对于跨多个变更请求和提交的新复杂功能尤其如此.此外,为变更集编写这些命令很繁琐且容易出错.
  3. 对于webapp补丁,我们还修改了其他环境的规范.除了rpm包名外,它们通常是相同的.
  4. 我们将所有与rpm相关的文件放到VCS中
  5. 我们通过添加几个用于构建新补丁的目标来修改build.xml.修改通过复制和编辑完成.
  6. 我们通过复制项目和更改其中的ant目标来修改CruiseControl的配置
  7. 最后,我们建立了一个系统

此外,我对有关补丁准备和部署实践的任何参考感兴趣,最好是对Java应用程序.我没有成功用Google搜索.

java deployment patch build

5
推荐指数
1
解决办法
2174
查看次数

Android tabwidget的现有补丁允许左侧的选项卡?

我的雇主让我在一个具有非常特定UI要求的Android应用程序上工作.具体来说,我们需要一个看起来与TabWidget接口完全相同的界面.但是,左侧的标签是绝对必须的.我们不打算将此应用程序部署到任何Android手机,它用于内部设备,因此没有任何问题违反Android平台可能具有的任何设计考虑因素.

我们已经有了一个工作原型,它使用焦点监听器和列表视图的组合来破解我们需要的功能.它不漂亮,我们对它还不是很有信心,但它暂时有用.

我们真正喜欢的是抛弃我们的所有原型UI代码,以换取使用内置的TabWidget.但是,由于TabWidget硬编码仅适用于顶部的选项卡,因此这不是一个真正的选项.

那么,我们希望有人在那里有一个补丁,或一组补丁,或者可能是一个自定义类,用侧面的选项卡处理TabWidget功能呢?

TabWidget的相关代码位于:http://www.google.com/codesearch/p? hl = en#uX1GffpyOZk/core/java/android/widget/TabWidget.java&q = android%20package:git:adminand .git.kernel.org%20lang:JAVA%20tabwidget&SA = N和CD = 1&CT = RC

以及在顶部显示标签的硬编码的特定功能是

private void initTabWidget() {
    setOrientation(LinearLayout.HORIZONTAL);
    mGroupFlags |= FLAG_USE_CHILD_DRAWING_ORDER;

    final Context context = mContext;
    final Resources resources = context.getResources();

    if (context.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.DONUT) {
        // Donut apps get old color scheme
        if (mLeftStrip == null) {
            mLeftStrip = resources.getDrawable(
                    com.android.internal.R.drawable.tab_bottom_left_v4);
        }
        if (mRightStrip == null) {
            mRightStrip = resources.getDrawable(
                    com.android.internal.R.drawable.tab_bottom_right_v4);
        }
    } else {
        // Use modern color scheme for …
Run Code Online (Sandbox Code Playgroud)

android patch tabwidget

5
推荐指数
1
解决办法
3323
查看次数

将常规diff补丁重新格式化为git格式

有没有一种简单的方法可以将常规(统一)差异补丁重新格式化为git格式的补丁?我想做的是,带一个定期发送给我的补丁并用git应用它,添加作者信息 - 好像它是一个git格式的补丁.

我真的不想开始手动重写补丁,所以我想知道是否有一个git命令,我还没有发现这样做.

这似乎是其他人之前必须拥有的问题......

谢谢!

git diff patch

5
推荐指数
1
解决办法
2461
查看次数

在Windows上应用补丁程序的GUI实用工具是什么?

我正在寻找一个适用于Windows的优秀GUI修补程序实用程序-这是我将发送给以前没有使用过修补程序的人的工具,因此易用性很重要。我知道WinMerge可以生成补丁,但不能应用它们。Windows是否存在这样的GUI实用程序?

PS-我考虑过将此内容发布给超级用户,但是由于diff / patch主要是编程工具,因此我认为它更适合于此。如果没有其他共识,我将投票决定自己迁移。

windows diff patch utility

5
推荐指数
1
解决办法
2936
查看次数

内核补丁命令挂起

我下载了2.4.20内核源代码和ppc补丁,并一直在尝试将补丁应用于源代码.我将2.4.20源目录和补丁文件放在同一个目录中,命令是 $patch -p1 {path/to/patch/file}..but提示符挂起.

patch

5
推荐指数
1
解决办法
2104
查看次数

更改可执行文件中的内部版本号

我想在可执行文件的版本信息中更改构建号(VersionLS的低位).所以,我应该阅读VS_VERSIONINFO结构,更改内部版本号,然后将其更新回PE.

我正在使用此代码作为基础:https://stackoverflow.com/a/7999813/1970843.此代码非常适合更改VS_FIXEDFILEINFO数据,但它不会更改(也不访问)StringFileInfo信息.

我很确定我应该在VERSIONHEADER打包记录中包含一些内容来添加VS_VERSIONINFO的Children条目,但我不知道具体如何做到这一点.这是我到目前为止:

type
    StringStruc = Packed Record
        wLength: Word;
        wValueLength: Word;
        wType: Word;
        //szKey: ?;
        //Value: ?;
    End;

    StringTable = Packed Record
        wLength: Word;
        wValueLength: Word;
        wType: Word;
        szKey: Array[0..8] Of WideChar;
        Children: StringStruc;
    End;

    StringFileInfo = Packed Record
        wLength: Word;
        wValueLength: Word;
        wType: Word;
        szKey: Array[0..14] Of WideChar;   // 'STRINGFILEINFO'
        Children: StringTable;
    End;

    VERSIONHEADER = Packed Record
        wLength: Word;
        wValueLength: Word;
        wType: Word;
        szKey: Array[0..16] Of WideChar;   // …
Run Code Online (Sandbox Code Playgroud)

delphi binary winapi patch versioninfo

5
推荐指数
1
解决办法
588
查看次数

Android反盗版停止打补丁

我是Android开发的新手,我刚刚为我的免费应用程序发布了付费的pro解锁器.

我在2天前发布它,在它上线的12小时内我用谷歌搜索我的应用程序和theres至少8个网站列出我的免费应用程序,但修补所以应该锁定在免费的所有付费功能都解锁.他们基本上复制了我的整个商店列表描述,略微改变了措辞,并将几个镜像发布到修补后的apk.

反正有没有避免这个?

由于这些被如此快速地发布,它让我相信它是自动完成的.使用什么工具,我在哪里可以得到它?我可以做什么编码来阻止修补它的能力?谷歌开发者控制台中有哪些地方可以报告盗版博客/网站?

付费应用是正常的吗?谢谢!

android patch piracy-prevention apk

5
推荐指数
1
解决办法
2332
查看次数

如何在linux中添加rt补丁

我想在Linux上添加rt补丁,我拿了3.18.9内核和3.18.9-rt4补丁.我将patch-3.18.9-rt4.tar.gz复制到Linux内核文件夹中.现在我执行了zcat补丁-3.18.9-rt4.tar.gz | patch -p1执行此命令后,它要求修补文件,如下所示

|--- a/arch/sparc/Kconfig
|+++ b/arch/sparc/Kconfig
--------------------------
File to patch:
Run Code Online (Sandbox Code Playgroud)

我想一次性添加所有补丁,我该如何实现?

linux patch

5
推荐指数
1
解决办法
1449
查看次数