プロジェクトをネットワーク上のフォルダに設定している際、プロジェクトを開いたり、ノートをパブリッシュしたりすると、"Error code: 128" と "detected dubious ownership in repository" というエラーが表示される

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)として登録します。

  1. Git Bash を開きます。Exploratory のご利用には Git のインストールが必須となっており、Windows で Git をインストールすると、通常は Git Bash も一緒にインストールされます。
  2. 次のコマンドを実行します。
    git config --global --add safe.directory "*"
    
  3. Exploratory でプロジェクトを開き直します。

"*" を指定すると、すべてのフォルダで所有者のチェックが行われなくなります。社内のファイルサーバーなど、信頼できる環境でのみご利用ください。

なお、プロジェクトのフォルダをローカルのドライブ(C:\Users\<ユーザー名>\.exploratory など)に置き、ご自身でプロジェクトを作成・インポートしている場合は、通常は所有者が一致するため、このエラーは発生しません。