我在 Git 中有非常大的存储库,并且我在 Jenkins 中创建了一个作业,按照Jenkins 和 Git sparse checkouts的这些步骤从项目中只签出一个子文件夹。问题是当我或我的一些同事从 Jenkins 中清除当前工作区时,info/sparse-checkout 也会被删除。
我怎样才能解决这个问题,而不必每次都为同一个工作创建 info/sparse-checkout?
我在 Git 中有非常大的存储库,并且我在 Jenkins 中创建了一个作业,按照Jenkins 和 Git sparse checkouts的这些步骤从项目中只签出一个子文件夹。问题是当我或我的一些同事从 Jenkins 中清除当前工作区时,info/sparse-checkout 也会被删除。
我怎样才能解决这个问题,而不必每次都为同一个工作创建 info/sparse-checkout?
根据这张Jenkins 支持票,这是最近添加的。由于我目前正在处理此问题,因此我会尽量记住更新我的进度。
[编辑]澄清 - Jenkins 中的 Git Sparse Checkout 显然通过Jenkins 插件支持,截至 2014 年 3 月 31 日。我没有使用这个插件的经验说它有效。但是,我希望尽快将此插件添加到我们的 Jenkins 系统中,并报告它的成功。
我认为目前仅使用 git 插件是不可能的(也许你扩展了它)。
我看到这两种可能的解决方案:
您使用插件(EnvInject+Plugin或pre-scm-buildstep)在 SCM 检出之前执行 shell 脚本。脚本必须看起来像apenwarrs answer。
您在 Ant/Maven/Grunt/Whatever 中有一个任务,它设置了稀疏结帐(我目前正在做的事情)。像往常一样设置您的工作并在所有其他人之前执行新任务。