[英]Deploy Website using Git with multiple committers
我想在我的服務器上運行dokuwiki.org 。 我正在使用基於文件的設置,因此不涉及外部數據庫。
我想設置一個包含dokuwiki data
目錄的git存儲庫,這樣多個提交者就可以脫機工作並在完成后推送更改。 git存儲庫中的data
目錄沒什么大不了的,你可以使用dokuwiki的config-files設置data
目錄的位置。
我使用本指南來設置所有內容,並且它按預期工作。
tl;指南博士:
bare
倉庫 post-receive
hook導航到htdocs
目錄並檢查來自bare
倉庫的更改。 htdocs
目錄自動檢查repo的變化。 因此,只有在將靜態站點或基於數據庫的內容用於指南時,該指南才有用。
我的問題是,每當有人通過基於Web的維基而不是本地存儲庫中的文件編輯某些東西時, www
目錄就會被更改 - >這些更改不會被推回到bare
存儲庫,因為沒有掛鈎/方式/ .. 。要做到這一點。
有沒有我在這里缺少或更好的方法來處理這個用例?
我想到的唯一一件事就是讓網站本身就是一個存儲庫(稱之為www
repo),人們在開發人員推動之前就將其從中拉出來。 您可以使用git插件提交網站上發生的更改。
這有缺點,因為您必須更改設置掛鈎的方式。 基本上當有人推送到裸存儲庫時,你必須檢查你的鈎子,通過web界面進行的最后修改已經提交到www
repo(這意味着它的工作樹是干凈的),並且提交被推送包含他們(即他們從網站回購)。 如果是,那么裸存儲庫的鈎子將新提交推送到www
repo。
但是我不知道這是否可行,以及git插件的質量。 但我沒有看到任何其他東西讓Git使用非提交的外部修改。
有一個相當新的插件可以完全滿足您的需求: gitbackend 。 它還支持拉入現場回購。
從您的描述中不明顯,但如果您計划“僅”更改data/pages
和data/media
,您將錯過對元數據的更改。 這意味着幾個提交只會在頁面的舊版本上顯示為單個修訂,而其他數據(如提交消息/更改摘要)將丟失。
上述插件也未實現元數據更改,但可以在內部執行。 如果您更喜歡編寫一個在外部執行某些操作的腳本,您可能希望掛鈎到XML-RPC API 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.