2008-08-29 13 views
45

जब मैं कोई svn कमांड करने की कोशिश करता हूं और --username और/या --password विकल्प प्रदान करता हूं, तो यह मुझे मेरे पासवर्ड के लिए संकेत देता है, और हमेशा मेरा उपयोग करने का प्रयास करेगा --username द्वारा निर्दिष्ट एक के बजाय वर्तमान उपयोगकर्ता। न तो --no-auth-cache और न ही --non-interactive इस पर कोई प्रभाव पड़ता है। यह एक समस्या है क्योंकि मैं स्क्रिप्ट से svn कमांड को कॉल करने का प्रयास कर रहा हूं, और मैं इसे प्रॉम्प्ट नहीं दिखा सकता।सबवर्सन "--password" और "--username" विकल्पों को अनदेखा कर रहा है

उदाहरण के लिए, user1 रूप में लॉग इन:

# $ svn update --username 'user2' --password 'password' 
# [email protected]'s password: 

अन्य विकल्प सही ढंग से काम:

# $ svn --version --quiet 
# 1.3.2 

यह मुझे क्यों संकेत करता है?
और यह उपयोगकर्ता 2 के बजाय उपयोगकर्ता 1 के पासवर्ड के लिए क्यों पूछ रहा है?
मुझे 99% यकीन है कि मेरी सभी अनुमतियां सही तरीके से सेट की गई हैं। क्या svn के लिए कुछ कॉन्फ़िगरेशन विकल्प है जो कमांड लाइन पासवर्ड बंद करता है?
या यह पूरी तरह से कुछ और है?

मैं फेडोरा कोर 5 (बोर्डो) पर svn 1.3.2 (r19776) चला रहा हूं।


यहां मेरे पर्यावरण चर (संवेदनशील जानकारी X'ed आउट के साथ) की एक सूची है। उनमें से कोई भी एसवीएन पर लागू नहीं होता है:

# HOSTNAME=XXXXXX 
# TERM=xterm 
# SHELL=/bin/sh 
# HISTSIZE=1000 
# KDE_NO_IPV6=1 
# SSH_CLIENT=XXX.XXX.XXX.XXX XXXXX XX 
# QTDIR=/usr/lib/qt-3.3 
# QTINC=/usr/lib/qt-3.3/include 
# SSH_TTY=/dev/pts/2 
# USER=XXXXXX 
# LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35: 
# KDEDIR=/usr 
# MAIL=/var/spool/mail/XXXXXX 
# PATH=/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin 
# INPUTRC=/etc/inputrc 
# PWD=/home/users/XXXXXX/my_repository 
# KDE_IS_PRELINKED=1 
# LANG=en_US.UTF-8 
# SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass 
# SHLVL=1 
# HOME=/home/users/XXXXXX 
# LOGNAME=XXXXXX 
# QTLIB=/usr/lib/qt-3.3/lib 
# CVS_RSH=ssh 
# SSH_CONNECTION=69.202.73.122 60998 216.7.19.47 22 
# LESSOPEN=|/usr/bin/lesspipe.sh %s 
# G_BROKEN_FILENAMES=1 
# _=/bin/env 
# OLDPWD=/home/users/XXXXXX 
+0

मुझे नहीं पता * निक्स गोले - लेकिन क्या आप वास्तव में वहां एकल उद्धरण का उपयोग कर रहे हैं? क्या वे डबल कोट्स नहीं होना चाहिए? –

+0

शायद आपके $ HOME/.subversion के अंदर कोई कस्टम कॉन्फ़िगरेशन? – Joril

उत्तर

29

आपको जो संकेत मिल रहा है वह आपको पासवर्ड के लिए पूछने वाले सबवर्जन की तरह नहीं दिखता है, ऐसा लगता है कि एसएसएच पासवर्ड मांग रहा है। तो मेरा अनुमान है कि आपने एक svn + ssh: // चेकआउट, एक svn: // या http: // या https: // चेकआउट नहीं देखा है।

आईआईआरसी सभी विकल्प जो आप कोशिश कर रहे हैं केवल svn/http/https चेकआउट के लिए काम करते हैं। क्या आप यह पुष्टि करने के लिए एसवीएन जानकारी चला सकते हैं कि आप किस प्रकार की रिपोजिटरी का उपयोग कर रहे हैं?

यदि आप एसएसएच का उपयोग कर रहे हैं, तो आपको कुंजी-आधारित प्रमाणीकरण सेट अप करना चाहिए ताकि आपकी स्क्रिप्ट पासवर्ड के संकेत दिए बिना काम करेगी।

0

सर्वश्रेष्ठ मैं आपको एसवीएन 1.5 पर "मेरे लिए काम करता है" दे सकता हूं। आप को अपने svn update पर जोड़ने का प्रयास कर सकते हैं ताकि यह देखने के लिए कि क्या आपको अधिक आसानी से ओवरराइड करने देता है।

यदि आप स्थायी रूप से उपयोगकर्ता 2 से उपयोगकर्ता 1 पर स्विच करना चाहते हैं, तो ~/.subversion/auth/on * nix में जाएं और डोमेन.com के लिए ऑथ कैश फ़ाइल हटाएं (सबसे अधिक संभावना ~/.subversion/auth/svn में। सरल/- बस उनके माध्यम से पढ़ें और आपको वह ड्रॉप मिलेगा जिसे आप छोड़ना चाहते हैं)। हालांकि वर्तमान ऑथ कैश को अपडेट करना संभव है, आपको लंबाई टोकन को अपडेट करना भी सुनिश्चित करना होगा। अगली बार जब आप अपडेट करते हैं तो फिर से संकेत प्राप्त करने के लिए सरल।

41

क्या आपके पास वास्तव में आपके आदेश में एकल उद्धरण है? मुझे नहीं लगता कि वे जरूरी हैं। इसके अलावा, मैं तुम्हें भी --no-auth-cache और --non-interactive

यहाँ मैं क्या उपयोग (कोई एकल उद्धरण) है की जरूरत है

 
--non-interactive --no-auth-cache --username XXXX --password YYYY 

अधिक जानकारी के लिए Client Credentials Caching documentation in the svnbook देखें।

+3

यह मेरे लिए काम करता है .. बहुत सारे – Anuragh27crony

+1

यह svn + ssh के लिए काम नहीं करता है। –

0

समस्या यह थी कि कार्यशील प्रति svn + ssh (धन्यवाद, थॉमस) के माध्यम से चेक आउट की गई थी।//domain.com/path/to/repo बजाय SVN + ssh: //domain.com/path/to/repo इसके बजाय SSH कुंजियों को स्थापित करने के रूप में सुझाव दिया गया था की, मैं सिर्फ एक नया काम करने की प्रतिलिपि SVN का उपयोग कर बाहर की जाँच की। क्योंकि यह काम कर प्रतिलिपि भंडार खुद के रूप में एक ही मशीन पर है, मैं वास्तव में कुछ भी नहीं ले पा नहीं कर रहा हूँ, और अब मैं अनावश्यक रूप से --password और --username विकल्पों का उपयोग कर सकते हैं। अब स्पष्ट लगता है कि मैं इसके बारे में सोचता हूं।

17

मैं इस एक ही मुद्दा था और स्पष्ट रूप से सही उपयोगकर्ता नाम (अर्थात एक सर्वर, नहीं अपने स्थानीय मशीन के लिए लॉग इन करने के लिए उपयोग) का उपयोग करने के लिए अपने ~/.ssh/कॉन्फ़िग फ़ाइल की स्थापना करके इसे हल। तो, उदाहरण के लिए:

 
Host server.hostname 
    User username 

मैं इस ब्लॉग पोस्ट उपयोगी पाया: http://www.highlevelbits.com/2007/04/svn-over-ssh-prompts-for-wrong-username.html

+2

हां - पोस्ट लिंक इस समस्या को हल का बहुत आसान तरीका है। धन्यवाद! – jsh

0

अपने स्थानीय SVN रेपो के लिए देखो और निर्देशिका .svn पर गौर। फ़ाइल है: प्रविष्टियों उन्हें में देखो और आप रेखाएं दिखाई देंगी साथ शुरू होता है: SVN + ssh: //

यह आपका पहला विन्यास SVN चेकआउट 'repo_source' या SVN द्वारा चिह्नित है सह 'repo_source'

यदि आप इसे बदलना चाहते हैं, तो सबसे अच्छा तरीका इस भंडार को पूरी तरह रीफ्रेश कर रहा है। अपडेट को बचाने/प्रतिबद्ध करने के लिए आपको क्या करना चाहिए। तो पूरी तरह से निर्देशिका हटाने और अंतिम चरण के द्वारा SVN सह/चेकआउट 'URI के लिए मुख्य-रेपो' [स्टोर के लिए वैकल्पिक रूप से स्थानीय निर्देशिका]

आप कनेक्शन पद्धति का चयन करना चाहिए फ़ाइल रेपो को यह पैदा करते हैं: // SVN + ssh: // http: // https: // या अन्य दस्तावेज़ीकरण में वर्णित है।

कि तुम्हारे जाने के बाद SVN अद्यतन का उपयोग करें/हमेशा की तरह करते हैं।

इस विषय विषय से बाहर की तरह दिखता है। बेहतर आप सुपरसियर पृष्ठों पर जाते हैं।

0

मैं एक ऐसी ही समस्या थी, मैं एक SVN + ssh भंडार के लिए एक अलग उपयोगकर्ता नाम का उपयोग करना चाहता था। अंत में, मैं svn relocate इस्तेमाल किया (in this answer में वर्णित के रूप में मेरे मामले में, मैं SVN 1.6.11 का उपयोग कर रहा है और निम्नलिखित किया:।

svn switch --relocate \ 
    svn+ssh://[email protected]/path/to/repo \ 
    svn+ssh://[email protected]/path/to/repo 

जहां svn+ssh://[email protected]/path/to/reposvn info कमान की URL: लाइन उत्पादन में पाया जा सकता । यह आदेश मुझे newuser के पासवर्ड के लिए पूछा।

ध्यान दें कि यह परिवर्तन लगातार है, यानी अगर आप केवल अस्थायी रूप से इस विधि के साथ नए उपयोगकर्ता नाम के लिए स्विच चाहते हैं, आप svn update आदि के बाद एक ऐसी ही आदेश को फिर से जारी करने के लिए होगा

संबंधित मुद्दे