背景:私の会社のサービスモデルは、アプライアンスベースのサーバーモデルとして始まりました。クライアントに、WebサーバーとソフトウェアがプリロードされたWindowsServer2003/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は空でないディレクトリを削除しようとしていました。空のフォルダを削除して修正しました。助けてくれてありがとう!