“反向移植”一词有相反含义吗?


20

据我了解,术语“反向移植”用于描述在将来的版本中应用的修补程序,该版本也移植到了先前的版本中。维基百科的定义如下:

反向移植是对软件进行某些修改(补丁)并将其应用于比其最初创建的版本更早的软件的操作。它构成了软件开发过程中维护步骤的一部分。

例如:

  • 在V2.0中发现并修复了问题。移植了相同的修补程序并将其应用于V1.5。

在相反方向进行操作时,该术语是什么?

  • 在V1.5中发现并修复了该问题。移植了相同的修补程序并将其应用于V2.0。

术语“反向移植”是否仍然适用?还是有诸如“转发”之类的术语(听起来很像“端口转发”)?


1
那“传播”呢?
Gill Bates

Answers:


28

它与反斜杠的反义词相同。每个人都想称其为正斜杠,但实际上这只是一个“斜杠”。向后移植的反义词就是“移植”。


“移植”是一个更笼统的术语,可以应用于任何代码传输,即使是在语言之间也是如此。在我的公司中,对于此问题中描述的特定情况,我们使用“转发”。
Marko Topolnik'8

14

通常不会发生这种情况,因为您可以在V2.0代码库中解决上述问题,并有选择地向后移植。:)就版本控制而言,简称为merging


3
之所以会发生这种情况,是因为V1.x和V2.x共存并并行维护,每个维护都在其自己的维护分支上。可以发现跨版本错误并在任何一侧修复。
Marko Topolnik

3
如果已经发布了V1.5,但是将来会发布V2.0,则您首先要在V1.5中修复该问题,因为客户已经使用了此版本,因此需要更紧急的修复。之后,将修补程序移植到V2.0。
user1364368

@ user1364368发布管理是一个正交的问题。修复包含最新信息的最新版本代码库中的错误更有意义(其更改历史记录是旧版本更改历史记录的超集)。用另一种方式思考:忽略更改与错误有关。您是否仍然希望在旧版本中进行更改?您会说是否在较旧版本的代码库中开始功能开发?这很快就变成了一种荒谬的,向后递归的开发策略
awdz9nld

@MartinKällman(由于当前的开发工作)(由于当前的开发工作)代码库的负责人可能处于不允许其开发修补程序的状态。可能需要几天或几周的时间,才能再次清理代码库的头部,但是您不能等那么长时间进行紧急更正。
user1364368

1

我想我会使用以下术语:面向未来向前兼容

来自维基百科,面向未来

未来证明:“未来证明”一词描述了试图预测未来发展的专有过程,因此可以采取措施将可能的负面影响降至最低,并抓住机遇。

向前兼容

前向兼容性或向上兼容性(有时与可扩展性相混淆)是系统设计的兼容性概念,例如向后兼容性。前向兼容性旨在使设计能够优雅地接受打算用于其自身更高版本的输入的能力。

或两者都是“通过前向兼容性确保未来发展”。

哦,流行语:)


0

向后移植在相反的方向只是移植,但没有理由这样做,在你所描述的背景。


0

我认为,“反向移植”一词仅指将某个程序的新版本的功能带给同一程序的较旧版本的行为,以继续使用该程序。

由于您不在旧的,封闭的版本上开发新功能,因此不存在“反向”反向移植(如果定义的话,该版本不是旧的)。

您所说的“前向端口”,只是解决了新旧版本中的一个问题,仅是一个错误修正或补丁。


-1

没有一个常用的术语来合并从较旧的软件分支到较新的软件分支的一组更改。除非软件的最新版本高度不稳定,否则大多数开发人员都会在软件的最新版本上开发错误修复程序,而不管发现该错误的版本是什么。这样做是为了减少自软件最新版本更改以来的合并冲突。比老分支更频繁。根据定义,客户报告的任何软件错误均以比其更早版本的版本进行报告,因为客户无权访问软件的最新分支。


除非您的客户现在想要修复,否则为true。
亚历克斯R

-1

我来这里寻找答案是因为我正在针对这种情况编写提交评论。考虑到在这种常见情况下缺乏实际的行话,我将其解释为“将生产修补程序合并到dev分支中”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.