HG Push ล้มเหลว; การอนุญาตถูกปฏิเสธ .hg/store/lock

ฉันพยายามตั้งค่าพื้นที่เก็บข้อมูล Mercurial บนเซิร์ฟเวอร์ของฉัน เพื่อให้ทีมของฉันสามารถทำงานได้จากที่ของพวกเขา ฉันใช้เซิร์ฟเวอร์ Ubuntu 10.4 และฉันได้ติดตั้ง Mercurial โดยใช้ apt-get ตอนนี้ทุกอย่างดำเนินไปอย่างราบรื่น

ฉันเริ่มต้น dir ด้วย hg ก็ได้ ฉันตั้งค่า hgrc ดังนี้:

[web]
push_ssl = False
allow_push = *

[trusted]
users = *
groups=

จากนั้นฉันก็วิ่ง hg serve เซิร์ฟเวอร์เริ่มฟัง ฉันสามารถโคลนพื้นที่เก็บข้อมูลนี้ไปยังคอมพิวเตอร์เครื่องอื่นได้ แต่เมื่อฉันพยายามพุชการเปลี่ยนแปลง ฉันได้รับข้อผิดพลาด:

C:\Users\UserName\Project1>hg push http://MyInternalIP:8000
pushing to http://MyInternalIP:8000
searching for changes
abort: HTTP Error 500: Internal Server Error

ที่ฝั่งเซิร์ฟเวอร์ฉันได้รับข้อผิดพลาดต่อไปนี้:

LockUnavailable: [Errno 13] Permission denied: '/home/UserName/projects/Project1/.hg/store/lock'

หากใครมีวิธีแก้ไขปัญหานี้จะน่าทึ่งมาก ฉันค้นหาใน Google และพบคนที่มีปัญหาคล้ายกัน และพวกเขาบอกว่าอาจมีบางอย่างเกี่ยวข้องกับผู้ใช้เว็บที่ไม่มีสิทธิ์ แต่ฉันยังใหม่กับทั้งหมดนี้และไม่มีผู้ใดสามารถแก้ไขปัญหานี้ได้ ขอบคุณที่สละเวลา.


person Chase    schedule 15.11.2010    source แหล่งที่มา


คำตอบ (2)


คุณต้องอนุญาตให้ผู้ใช้ที่รันกระบวนการเซิร์ฟเวอร์ Mercurial มีสิทธิ์เขียนในไดเร็กทอรีพื้นที่เก็บข้อมูล นั่นคือบัญชีผู้ใช้ที่ทำงาน hg serve จะต้องสามารถเขียนถึง /home/UserName/projects/Project1/ ได้

BTW คุณสามารถให้รายละเอียดเพิ่มเติมเกี่ยวกับบรรทัดคำสั่งที่คุณใช้ในการโคลนพื้นที่เก็บข้อมูลได้หรือไม่

person Carles Barrobés    schedule 15.11.2010
comment
ทำไมไม่เพียงแค่ chown ให้กับผู้ใช้ที่ใช้งาน hg เสิร์ฟและ chmod -R 644 Project1? - person Carles Barrobés; 16.11.2010
comment
หากคุณใช้งานบน apache2 ผู้ใช้เริ่มต้น: กลุ่มคือ www-data:www-data - person Fabio Ceconello; 18.09.2012

ในกรณีของฉันที่มีพื้นที่เก็บข้อมูล Mercurial บน Redmine

ข้อผิดพลาด HTTP: 500 (การอนุญาตถูกปฏิเสธ)

วิ่ง

chown -R www-data /path/to/repos

บนเซิร์ฟเวอร์ มันใช้งานได้สำหรับฉัน

(ฟูเอนเต)

person Maske    schedule 10.03.2015