Windows で、ネットワーク共有(\\サーバー名\... のような UNC パス)上にあるプロジェクトのフォルダの所有者が、ログインしているユーザーと一致しないと、プロジェクトを開く、ノートをパブリッシュする、データをリフレッシュするといった操作で、次のエラーが表示されることがあります。
Error code: 128
Error: Command failed: git log -n 1 --pretty=format:%n%H%n%s%n%cD
fatal: detected dubious ownership in repository at '//<サーバー名>/<ユーザー名>/exploratory/projects/<プロジェクトID>'
'//<サーバー名>/<ユーザー名>/exploratory/projects/<プロジェクトID>' may refer to a non-local directory
To add an exception for this directory, call:
git config --global --add safe.directory '%(prefix)///<サーバー名>/<ユーザー名>/exploratory/projects/<プロジェクトID>'
原因
Git 2.35.2 以降に入った安全チェック(CVE-2022-24765 への対策)によるものです。ネットワーク共有上のフォルダの所有者(SID)が、ログインしている Windows ユーザーと一致しないと、Git はそのフォルダのレポジトリを信頼せず、git log が Error code 128 で失敗します。
Exploratory はプロジェクトの履歴管理に Git を使っているため、この時点で処理が止まります。ファイルサーバーの設定によって、フォルダの所有者がログインしているユーザーと異なる場合があります。
対処方法
Git の設定で、すべてのフォルダを信頼するレポジトリ(safe.directory)として登録します。
- Git Bash を開きます。Exploratory のご利用には Git のインストールが必須となっており、Windows で Git をインストールすると、通常は Git Bash も一緒にインストールされます。
- 次のコマンドを実行します。
git config --global --add safe.directory "*" - Exploratory でプロジェクトを開き直します。
"*" を指定すると、すべてのフォルダで所有者のチェックが行われなくなります。社内のファイルサーバーなど、信頼できる環境でのみご利用ください。
なお、プロジェクトのフォルダをローカルのドライブ(C:\Users\<ユーザー名>\.exploratory など)に置き、ご自身でプロジェクトを作成・インポートしている場合は、通常は所有者が一致するため、このエラーは発生しません。