2013-03-13 4 views
0

ртутный-сервер работает на Ubuntu 12.04 LTSртутный-сервер крюк не работает

[email protected]:/etc$ hg --version 
    Mercurial Distributed SCM (version 2.0.2) 
[email protected]:/etc$ dpkg -s mercurial-server 
    Package: mercurial-server 
    Version: 1.2-1 
    .... 

[email protected]:/etc/mercurial-server/remote-hgrc.d$ ls -ltr 
    total 12 
    -rw-r--r-- 1 root root 180 Oct 10 2011 logging.rc 
    -rw-r--r-- 1 root root 139 Oct 10 2011 access.rc 
    -rw-r--r-- 1 root root 74 Mar 13 22:14 check.rc 
[email protected]:/etc/mercurial-server/remote-hgrc.d$ cat check.rc 
    [hooks] 
    pretxncommit.author_check = /SOURCE/mercurial-server/validate.sh 

#manually added here too  
[email protected]:/etc/mercurial-server/remote-hgrc.d$ cat ~hg/repos/hgadmin/.hg/hgrc 
    # WARNING: when these hooks run they will entirely destroy and rewrite 
    # ~/.ssh/authorized_keys 

    [extensions] 
    hgext.purge = 

    [hooks] 
    changegroup.aaaab_update = hg update -C default > /dev/null 
    changegroup.aaaac_purge = hg purge --all > /dev/null 
    changegroup.refreshauth = python:mercurialserver.refreshauth.hook 
    pretxncommit.author_check = /SOURCE/mercurial-server/validate.sh 

[email protected]:/etc/mercurial-server/remote-hgrc.d$ cat /SOURCE/mercurial-server/validate.sh 
    #!/bin/bash 
    echo "REMUSR:$REMOTE_USER" 
    echo "ATHR:`hg tip --template "{author}\n"`b" 
    exit 1 

[email protected]:~$ sudo -u hg cat ~hg/.ssh/authorized_keys 
    no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,command="/usr/share/mercurial-server/hg-ssh root/user1/user1.pub" ssh-rsa AAAAB3xOMN8ZiF [email protected] 
    no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,command="/usr/share/mercurial-server/hg-ssh users/user2/user2.pub" ssh-rsa AAAAB3N..0HchQQw== [email protected] 

После этого с локального компьютера (ОС Windows) я клонировал TestProject, измененными поручены, толчок и это был преуспевающим без ошибок или message.I пытался это как с начальным пользователем/ключом и пользователем/ключом добавляется через hgadmin толчок

D:\hg\testproj>hg push 
    pushing to ssh://[email protected]/testproj 
    searching for changes 
    remote: adding changesets 
    remote: adding manifests 
    remote: adding file changes 
    remote: added 1 changesets with 1 changes to 1 files 
+0

Какую версию Mercurial-сервера вы используете? Вам не нужно добавлять его в ~ hg/repos/hgadmin/.hg/hgrc, если вы не хотите действовать конкретно в репозитории hgadmin. Захваты серверов Mercurial вступают в силу только тогда, когда к репозиториям обращаются через ssh, и когда файл ~ hg/.ssh/authorized_keys был создан с помощью refresh-auth, был запущен как пользователь «hg». Вы получаете доступ через SSH? Что находится в authorized_keys? –

+0

@PaulCrowley Я обновил свой вопрос – yodhevauhe

+0

@PaulCrowley обновлен ~ hg/.ssh/authorized_keys content – yodhevauhe

ответ

0

Работает с

$ cat check.rc 
[hooks] 
pretxnchangegroup.author_check = /SOURCE/mercurial-server/validate.sh 

Не работает с pretxncommit

Смежные вопросы