Add an option for customizing git working tree
authorDanny Lin <danny0838@gmail.com>
Sat, 19 Oct 2013 05:27:57 +0000 (13:27 +0800)
committerDanny Lin <danny0838@gmail.com>
Sun, 20 Oct 2013 15:45:20 +0000 (23:45 +0800)
action/editcommit.php
conf/default.php
conf/metadata.php
lang/en/settings.php

index e158192..1b7b45a 100644 (file)
@@ -62,7 +62,11 @@ class action_plugin_gitbacked_editcommit extends DokuWiki_Action_Plugin {
         //get path to the repo root (by default DokuWiki's savedir)
         $repoPath = DOKU_INC.$this->getConf('repoPath');
         //init the repo and create a new one if it is not present
+        io_mkdir_p($repoPath);
         $repo = new GitRepo($repoPath, true, true);
+        //set git working directory (by default DokuWiki's savedir)
+        $repoWorkDir = DOKU_INC.$this->getConf('repoWorkDir');
+        $repo->git_path .= ' --work-tree '.escapeshellarg($repoWorkDir);
 
         $params = $this->getConf('addParams');
         if ($params) {
index cdd18b8..9890ef1 100644 (file)
@@ -13,4 +13,5 @@ $conf['commitPageMsgDel']     = 'Wiki page %page% deleted with reason [%summary%] by
 $conf['commitMediaMsg']        = 'Wiki media %media% uploaded by %user%';
 $conf['commitMediaMsgDel']     = 'Wiki media %media% deleted by %user%';
 $conf['repoPath']      = $GLOBALS['conf']['savedir'];
+$conf['repoWorkDir']   = $GLOBALS['conf']['savedir'];
 $conf['addParams'] = '';
index 867ee61..d3bce74 100644 (file)
@@ -13,5 +13,6 @@ $meta['commitPageMsgDel'] = array('string');
 $meta['commitMediaMsg'] = array('string');
 $meta['commitMediaMsgDel'] = array('string');
 $meta['repoPath'] = array('string');
+$meta['repoWorkDir'] = array('string');
 $meta['addParams'] = array('string');
 
index adf067c..76a2383 100644 (file)
@@ -14,4 +14,5 @@ $lang['commitPageMsgDel']     = 'Commit message for deleted pages (%user%,%summary%,
 $lang['commitMediaMsg']        = 'Commit message for media files (%user%,%media% are replaced by the corresponding values)';
 $lang['commitMediaMsgDel']     = 'Commit message for deleted media files (%user%,%media% are replaced by the corresponding values)';
 $lang['repoPath']      = 'Path of the git repo (e.g. the savedir '.$GLOBALS['conf']['savedir'].')';
+$lang['repoWorkDir']   = 'Path of the git working tree, must contain "pages" and "media" directories (e.g. the savedir '.$GLOBALS['conf']['savedir'].')';
 $lang['addParams'] = 'Additional git parameters (added to the git execution command)';
\ No newline at end of file