2013-03-12 1 views
1

У меня есть одна проблема с моим репозиторием git. Я создал git-пользователя для доступа к git-shell.слияние git-shell с другим путем

Когда кто-то присоединяется к раковине, домашний путь /home/git/, и это нормально. Проблема в том, что мой путь к репозиторию: /var/www/, и я хочу дать возможность пользователю git объединиться внутри этого каталога, но без использования оболочки bash (поэтому я не даю возможность использовать cd для перемещаться по серверу).

Git-shell имеет возможности выполнить команду merge команда? И это последнее имеет возможность указать и путь?

Я не нахожу ничего, что могло бы слить слияние для git-shell.

Я думал создать сценарий .sh, исполняемый по сети. Но дать функцию непосредственно оболочкой git можно решить некоторые проблемы безопасности уже с базы.

Заранее спасибо, Mauro.

+0

Что вы пытаетесь достичь здесь? Если вы хотите открыть репо на веб-сервере, есть более эффективные способы сделать это; например настройте веб-сервер Apache и настройте его с помощью git, что-то вроде того, что объяснено здесь: http://kasunh.wordpress.com/2011/01/15/git-over-https/ – Steinar

+0

Это может быть хорошей идеей, спасибо. Но в любом случае я чувствую себя более уверенно за открытым ключом, поэтому я пытаюсь получить решение в стороне оболочки. – Ideabile

+0

Если вы хотите получить доступ к репо через ssh, почему вы пытаетесь «объединить» его в репо в/var/www? – Steinar

ответ

0

Я пытаюсь сделать Work-around для этого и временно работает для меня. Но я не предлагаю вам разоблачить скрипт так же, как я, и попытаться отобразить другие альтернативы.

Базовый внутри моего репозитория git Я создаю этот скрипт bash.

#!/bin/sh 
GIT_MERGE_AUTOEDIT=no 
export GIT_MERGE_AUTOEDIT 
git merge [name_of_branch_one] 
git merge [name_of_branch_two] 

После этого я создаю простую функцию PHP, где для вызова сценария ш, и выглядит следующим образом:

$exec = exec("sh /Your_Git_Repository_dir/merge.sh"); 
if($exec){ 
    print_r($exec); 
} 

Я надеюсь, что это поможет.