一些背景知识: 我公司的服务模式最初是基于设备的服务器模式。我们将向我们的客户发送一台装有 Windows Server 2003/2008 的服务器,预装了一个网络服务器和我们的软件。我们将所有客户端特定的配置移至 Git 存储库,并使用 sparse-checkout 使每个服务器仅包含客户端软件正常运行所必需的内容。
在设置稀疏结帐时,我们遇到了巨大的不一致。干的好
git clone git@github.com:ourclientconfigrepo.git .
git config core.sparsecheckout true
echo www.thisclient.com/ > .git/info/sparse-checkout
git read-tree -m -u HEAD
预期的结果是
ls
www.thisclient.com/
但我们得到
ls
www.thisclient.com/
www.randomclient1.com/
www.randomclient2.com/
www.randomclient3.com/
我已经尝试了多次,每次都在一个新目录中,每次都出现问题。我的 ju-git-su 在这里失败了。我们使用的是 git 版本 1.8.1.msysgit.1。
感谢您的帮助,如果我需要提供更多信息,请告诉我。
---编辑1---
澄清:存储库只是我们客户的配置目录。每个客户端在存储库中都有一个不同的目录,我们试图在每个客户端的单独服务器上进行稀疏检出,因此我们试图排除除了有问题的客户端之外的所有内容。
---编辑2---
只是一个更新,结果证明它是 Windows 文件夹权限的问题,Git 试图删除非空目录。通过删除空文件夹来修复它。感谢您提供帮助的所有尝试!