2009-06-03 9 views
42

मैं तेज भंडार करने के लिए जोर दे रहा साथ समस्या हो रही हूँ:मर्क्युरियल धक्का, गर्भपात: प्राधिकरण विफल

$ hg push 
pushing to https://user:***@hg.domain.com/X_repo 
searching for changes 
abort: authorization failed 

उसी यूआरएल (समान पहचान के साथ) वेब ब्राउज़र के माध्यम से सुलभ है। इसके अलावा, मैं यह usr embedding + यूआरएल में पारित बिना की कोशिश की।

HTTPS सही ढंग से कॉन्फ़िगर किया गया है, मैंने बेसिक और डाइजेस्ट ऑथ दोनों की कोशिश की - बिना किस्मत के।

(HTTP के माध्यम से) पुलिंग ठीक काम करता है।

मैं अपने रेपो की सेवा के लिए hgwebdir का उपयोग कर रहा हूं।

मैं और क्या जाँच करनी चाहिए?

मुझे यह मिला: http://code.google.com/p/support/issues/detail?id=2580 मेरे मामले में यह यादृच्छिक नहीं है, यह हर बार होता है।

मेरी vhost conf की

प्रासंगिक हिस्सा:

WSGIScriptAlias//home/(...)/hgwebdir.wsgi 

    <Directory /home/(...)> 
    AuthType Basic 
    AuthUserFile /(...)/basic-password 
    AuthName (...) 
    Require valid-user 

    Order deny,allow 
    Allow from all 
    </Directory> 

$ hg -v 
Mercurial Distributed SCM (version 1.0.2) 

अजीब पर्याप्त एचजी बाहर जाने वाले काम करता है ठीक:

$ hg outgoing 
comparing with https://hg.domain.com/X_repo 
http authorization required 
realm: ... 
user: ... 
password: 
searching for changes 
changeset: 64:... 
tag:   tip 
user:  ... 
date:  ... 
summary:  ... 

उत्तर

18

समस्या रेपो डीआईआर अनुमतियों के रूप में सामने आई है। chown www-data इसे हल किया गया ...

+13

यह मत भूलना कि आपको अपने .hg/hgrc –

+6

$ sudo chown -R wwwrun के www [web] अनुभाग में allow_push की भी आवश्यकता है: www/srv/www/htdocs/hg/reposfrom https: //www.mercurial-scm .org/wiki/HgWebDirStepByStep सेक्शन 7, उन लोगों के लिए जो लिनक्स के साथ इतना अच्छा नहीं है। – bulltorious

+1

उबंटू का उपयोग करने वालों के लिए: सुडो चोउन -आर www-data: www-data/var/hg/repos – Houman

3

यह अजीब है कि आप hg outgoing नहीं बल्कि hg push चला सकते हैं, क्योंकि यह मेरी समझ है वे दोनों एक ही तरह से प्रमाणित है कि।

दुर्भाग्य से मैं एक hgweb विशेषज्ञ नहीं हूं। कृपया Mercurial list ([email protected]) पर मेल करें और/या irc.freenode.net पर आईआरसी (#mercurial) पर ऑनलाइन आएं। वहाँ कई और अधिक लोगों को तुम वहाँ मदद करने के लिए किया जाएगा। आईआरसी विशेष रूप से अच्छा के बाद से इन बातों को ज्यादा सहभागी डिबग करने के लिए आसान कर रहे हैं।

+1

सुझावों के लिए धन्यवाद। मैं वास्तव में पहले से ही आईआरसी की कोशिश की - बिना किस्मत के:/मैं मेलिंग सूची के साथ प्रयास करूंगा। –

1

बस अगर यह किसी की मदद कर सकता है - मुझे अज्ञात कारणों से इस त्रुटि का सामना करना पड़ा, सभी अनुमतियां ठीक थीं, और बस इसे हल करने के लिए अपाचे को पुनरारंभ करना था।

48

किसी को भी यह स्थानीय मशीन पर चलने तो सर्वर REPO/.hg/hgrc को यह जोड़ने काम करेंगे बनाना चाहता है, तो: this site पर वर्णन किए गए

[web] 
allow_push = * 
push_ssl = false 

+1

मैंने test_push = * या परीक्षण किया है, दोनों अभी भी मुझे प्रमाणीकरण दे रहे हैं असफलता –

3

एक वेब सर्वर करने के लिए जोर दे रहा TortoiseHg के साथ उन लोगों (एक और पीसी पर एक और अनधिकृत उपयोगकर्ता) के लिए:

TortoiseHg में: File - Settings - (Either globally or just for the current repository - tabs) तो Server सेटिंग्स। वेब सर्वर

Push Requires SSL - No 
Allow Push - * 

यह (संपादन hgrc फ़ाइल) ऊपर lukmdo के जवाब के रूप में यूआई के माध्यम से एक ही बात करता है।

0

यह है, तो मेरी bitbucket पासवर्ड बदलने के बाद मुझे क्या हुआ है, हालांकि मैं अपना पासवर्ड का प्रबंधन करने के SourceTree का इस्तेमाल किया और मैं बदल गया यह globaly, एक रेपो तथापि था मेरे पुराने पासवर्ड हार्ड-कोडेड REPO/.hg/hgrc लाइन बदल में और सब फिर से काम करता है

0

मेरी समस्या थोड़ा अलग थी। पासवर्ड परिवर्तन ने इसे ट्रिगर किया ... और मेरे पास repo/.hgrc और repo/.hg/hgrc था। यकीन नहीं क्यों, लेकिन ये विरोधाभासी थे। (प्रोफाइल, plugins/एक्सटेंशन, रेपोस, आदि)

रिकॉर्ड के लिए, स्पष्ट तरीका मैंने पाया एक वैश्विक विन्यास फाइल (विंडोज़ C:\Users\<user>\mercurial.ini या लिनक्स /home/<user>/.hgrc पर) सभी खजाने पर लागू होने वाला सभी विन्यास के साथ रखने के लिए है - अब सब कुछ साफ और अच्छी तरह से काम कर रहा है

[paths] 
default = https://path/to/remote/repo 

# any other repo-specific config 

मैं एक और रेपो विशिष्ट तेज कॉन्फ़िग फ़ाइल क्यों किया था, मैं नहीं जानता कि: है, और फिर रेपो प्रति, बस की तरह कुछ का उपयोग करें।