3

サーバーでdokuwiki.orgを実行したい。私はファイルベースの設定を使用しているので、外部データベースは関係していません。

data複数のコミッターがオフラインで作業し、変更が完了したらプッシュバックできるように、dokuwikiのディレクトリを含むgitリポジトリをセットアップしたいと思います。gitリポジトリ内のdataディレクトリは大した問題ではありませんdata。dokuwikiのconfig-filesを使用してディレクトリの場所を設定できます。

このガイドを使用してすべてを設定しましたが、期待どおりに機能しています。

ガイドのtl;dr:

  • セットアップbareリポジトリ
  • post-receiveベアリポジトリにフックしてhtdocsディレクトリに移動し、bareリポジトリから変更をチェックアウトします。
  • リポジトリに何かをプッシュすると、htdocsディレクトリはリポジトリからの変更を自動的にチェックアウトします。

したがって、このガイドは、静的サイトまたはデータベースベースの何かに使用している場合にのみ役立ちます。

私の問題は、www誰かがローカルリポジトリ内のファイルではなくWebベースのウィキを介して何かを編集するたびにディレクトリが変更されることです->bareフック/ウェイ/ ... toがないため、変更がリポジトリにプッシュバックされませんそれを行う。

ここで欠けているものや、このユースケースを処理するためのより良い方法はありますか?

4

2 に答える 2

0

私の頭に浮かんだ唯一のことは、Web サイトをリポジトリ自体 (レポと呼びますwww) にして、開発者がプッシュする前に人々がそこからプルすることです。git プラグインを使用して、Web サイトで発生した変更をコミットできます。

フックの設定方法を変更する必要があるため、これには欠点があります。基本的に、誰かが裸のリポジトリにプッシュするときは、フックをチェックインして、Web インターフェイス経由で行われた最後の変更がリポジトリにコミットされてwwwいること (つまり、作業ツリーがクリーンであること)、およびプッシュされるコミットにそれらが含まれていることを確認する必要があります。 (つまり、彼らはウェブサイトのリポジトリから引っ張ってきました)。はいの場合、ベア リポジトリのフックが新しいコミットをリポジトリにプッシュしますwww

ただし、これが実現可能かどうか、および git プラグインの品質はわかりません。しかし、コミットではない外部変更で Git を機能させる方法は他にありません。

于 2012-09-16T16:57:44.053 に答える
0

必要なことを正確に実行するかなり新しいプラグインgitbackendがあります。また、ライブ リポジトリへのプルもサポートしています。

data/pages説明からは明らかではありませんが、との内容を「のみ」変更するdata/media場合は、メタデータへの変更が失われます。つまり、複数のコミットがページの古いリビジョンに 1 つのリビジョンとしてのみ表示され、コミット メッセージや変更の概要などの他のデータが欠落することになります。

前述のプラグインもメタデータの変更を実装していませんが、内部で行うことができます。外部で何かを行うスクリプトを書きたい場合は、XML-RPC APIにフックすることをお勧めします。

于 2012-11-18T12:54:29.570 に答える