在远程系统上应用文件结构diff / patch?

时间:2008-10-09 14:58:56

标签: filesystems diff

是否有一个工具可以创建文件结构的差异,可能基于MD5清单。我的目标是通过线路发送包含新/更新文件和要删除的文件列表的包。它需要复制新的/更新的文件并删除已在源文件结构上删除的文件吗?

2 个答案:

答案 0 :(得分:3)

您可以尝试rsync。根据您的需要,命令可能就像这样简单:

rsync -az --del /path/to/master dup-site:/path/to/duplicate

引自rsync's web site

  

rsync是一个开源实用程序   提供快速增量文件   传递。 rsync是免费提供的   根据GNU通用公共许可证   目前正在维护   韦恩戴维森。

或者,如果您更喜欢wikipedia

  

rsync是一个软件应用程序   Unix系统同步文件   和目录从一个位置到   另一个是最小化数据传输   适当时使用delta编码。   rsync的一个重要特性不是   发现大多数相似   程序/协议就是这样的   镜像只与一个镜像发生   每个方向的传输。 rsync的   可以复制或显示目录内容   并复制文件,可选择使用   压缩和递归。

答案 1 :(得分:1)

@vfilby我是实现类似的东西的过程。

我已经使用rsync了一段时间,但是在部署到远程服务器时,它会变得很时髦,权限更改不受我的控制。使用rsync,您可以选择不包含权限,但它们仍然因某种原因而被考虑。

我现在正在使用git diff。这适用于文本文件。 Diff会生成补丁,而不是您必须包含在文件中的MANIFEST。补丁的好处在于,已经建立了一个框架,用于在应用这些补丁之前使用和测试这些补丁。

例如,使用任何* unix框标准的补丁实用程序,您可以在干运行模式下运行补丁。这将告诉您在运行之前,您要应用的补丁是否实际应用。这有助于您确保在准备修补程序时更新的文件没有更改。

如果这与你想要的相似,我可以详细说明我的过程。