从 Grunt 生成用于部署的增量 tar

Generate delta tar for deployment from Grunt

使用 G运行t(必要时还使用 Powershell)如何构建一个 tar 文件,其中包含自指定日期以来修改过的所有文件(递归)?我知道完成此操作所需的一些步骤,但不知道如何将它们组合在一起。

使用 g运行t-contrib-compress 我能够创建 tar 个 所有 个文件:

compress: {
  full: {
    options: {
      archive: 'fullProject.tar'
    },
    files: [
      {
        src: ['**'],
        expand: true
      },
    ]
  }
}

使用 Powershell 我可以获得自特定日期以来修改过的所有文件的列表:

dir -file -Recurse | ? {$_.LastWriteTimeUtc -gt ([datetime]"2015-04-01")}

使用 g运行t-shell 如果需要,我可以 运行 Powershell 脚本:

shell: {
    ps: {
      options: {
        stdout: true
      },
      command: 'powershell deltaBuild.ps1'
    }
  }

如何构建一个 tar 文件,其中包含自指定日期以来修改过的所有文件?

对于任何想要做类似事情的人来说,这是通过编写一个执行以下操作的 bash 脚本来实现的:

  1. 将 git 日志通过管道传输到文件 x.txt,例如:git 日志 origin/master --name-status --after="2015-04-01T00: 00:00" > x.txt
  2. 运行 读取 x.txt 的 perl 脚本,仅将 new/modified 文件输出到 y.txt
  3. 运行 gulp 任务读取 y.txt 的每一行并将该文件复制到临时目录
  4. 运行 一个 gulp 构建临时目录 tar 的任务