SVN उपयोगकर्ता नाम बदलें


86

मुझे कई उदाहरण मिले कि विशिष्ट संशोधनों और इतने पर उपयोगकर्ता नाम कैसे बदलें।

लेकिन मुझे इसकी आवश्यकता है: मैंने एक वर्कमेट के प्रमाणीकरण क्रेडेंशियल्स के साथ एक चेकआउट किया और इसे भविष्य के कमिट के लिए अपनी साख में बदलने की आवश्यकता है।

मैं पहले से ही किए गए कई परिवर्तनों के कारण सिर्फ अपनी साख के साथ जांच नहीं कर सकता ...

इससे कोई परिचित है?


दिलचस्प सवाल! सभी संग्रहीत डेटा
पेका

@Pekka: अच्छा जवाब। हालांकि यह प्रश्न कछुआ एसवीएन के लिए विशिष्ट नहीं था।
राफेल श्विकर्ट

जवाबों:


73

आप उपयोगकर्ता को बदल सकते हैं

  • तोड़फोड़ 1.6 और पहले:

    svn switch --relocate protocol://currentUser@server/path protocol://newUser@server/path
    
  • तोड़फोड़ 1.7 और बाद में:

    svn relocate protocol://currentUser@server/path protocol://newUser@server/path
    

यह जानने के लिए कि क्या protocol://currentUser@server/pathहै, दौड़ें

svn info

अपने काम की नकल में।


4
मुझे एक त्रुटि मिलती है "svn: E155024: अमान्य स्रोत URL उपसर्ग: 'प्रोटोकॉल: // currentUser @ सर्वर / पथ' (लक्ष्य URL के प्रोटोकॉल को ओवरलैप नहीं करता है: // newUser @ सर्वर / पथ ')" [मेरे वास्तविक URL के लिए, बेशक]
जेम्स रॉथ

3
यह सादा http-SSL प्रामाणिक प्रमाणीकरण योजनाओं के लिए काम नहीं करता है। उस उपयोग मामले के लिए सहेजे गए उपयोगकर्ता क्रेडेंशियल्स को हटाने के लिए यह उत्तर देखें । @ जेम्स शायद यही आपका मुद्दा है।
कालेब

शानदार सामान .. थंक्स :)
कर्म

64

ऐसा करने का सबसे आसान तरीका यह है कि आप अपने अगले चेकआउट या कमिट पर --username विकल्प का उपयोग करें। उदाहरण के लिए:

svn commit --username newUser

या

svn co --username newUser

फिर इसे कैश किया जाएगा और भविष्य के कमांड के लिए डिफ़ॉल्ट उपयोगकर्ता नाम के रूप में उपयोग किया जाएगा।

यह भी देखें: क्या मैं तोड़फोड़ में अपने लॉगिन नाम के अलावा एक उपयोगकर्ता हो सकता हूं?


मैंने ऐसा किया है, और तब svn infoऔर मुझे Authorलाइन में कोई बदलाव नहीं दिख रहा है ।
vsync

2
ऊपर दिए गए लिंक से: "जब सबवर्सन फाइल सिस्टम से सीधे रिपॉजिटरी तक पहुंच रहा है, तो यह रिपॉजिटरी तक पहुंचने के लिए आपकी फाइल सिस्टम अनुमतियों का उपयोग करता है। जब आप एसएसएच टनलिंग के माध्यम से कनेक्ट करते हैं, तो SVN सर्वर द्वारा आपके FS अनुमतियों का उपयोग करता है, जैसा कि आपके द्वारा निर्धारित किया गया है। SSH लॉगिन।) तो svn चेकआउट --username आपके रिपॉजिटरी के लिए काम नहीं कर सकता है। "
मैट ब्राउन ने

1
@MattBrowne सही है। "svn + ssh: //svn.server.com" जैसे एक मार्ग - theusername परिवर्तन का सम्मान नहीं करेगा। स्वीकृत उत्तर जो स्थानांतरित करता है वह एकमात्र तरीका था जिससे मैं इसे बदल सकता था।
FlipMcF

51

मेरे पास ठीक यही समस्या है और एसवीएन क्लाइंट उपयोगकर्ता प्रमाणीकरण डेटा को कहां स्टोर करता है इसका समाधान मिला है ? :

  1. cdको ~/.subversion/auth/
  2. करते हैं fgrep -l <yourworkmatesusernameORtheserverurl> */*
  3. मिली फ़ाइल को हटाएं।
  4. रिपॉजिटरी पर अगला ऑपरेशन आपको उपयोगकर्ता नाम / पासवर्ड जानकारी के लिए फिर से पूछेगा।

(विंडोज के लिए, चरण अनुरूप हैं; authनिर्देशिका में है %APPDATA%\Subversion\)।

ध्यान दें कि यह केवल SVN एक्सेस योजनाओं के लिए काम करेगा, जहां उपयोगकर्ता नाम सर्वर लॉगिन का हिस्सा है, इसलिए इसका उपयोग करके उपयोग किए गए रिपॉजिटरी के लिए कोई उपयोग नहीं है file://


1
ध्यान देने योग्य बात यह है कि अगर आप IntelliJ IDEA चलाते हैं तो आपको भी बदलाव के लिए IntelliJ को फिर से शुरू करना होगा
AndersG

1
fgrepआदेश एक होना चाहिए -lताकि आदेश आप फ़ाइल पथ बताता है,। मैं इसे संपादित करने जा रहा था, लेकिन यह बहुत लंबा नहीं है।
vguzmanp

16

आदेश, जिसे निष्पादित किया जा सकता है:

svn up --username newUsername

अच्छी तरह से काम ;)

PS बस एक संकेत: "--username" विकल्प को किसी भी "svn" कमांड पर निष्पादित किया जा सकता है, न कि केवल अपडेट के लिए।


5

यदि आपका प्रोटोकॉल http है और आप Subversion 1.7 का उपयोग कर रहे हैं, तो आप किसी भी कमांड पर केवल वैश्विक --username विकल्प का उपयोग करके उपयोगकर्ता को कभी भी स्विच कर सकते हैं।

जब इंगो का तरीका मेरे लिए काम नहीं करता था, तो मैंने यही काम किया।


3

के पास जाओ Tortoise SVN --> Settings --> Saved Data

प्रमाणीकरण डेटा साफ़ करने के लिए एक विकल्प है, स्पष्ट बटन पर क्लिक करें, और यह आपको चयन करने की अनुमति देगा कि आप किस कनेक्शन के लिए उपयोगकर्ता को स्पष्ट करना चाहते हैं / pwd।

आपके द्वारा ऐसा किए जाने के बाद, कोई भी चेकआउट या अपडेट गतिविधि, यह उपयोगकर्ता के पासवर्ड और पासवर्ड के लिए फिर से प्रिंट करेगा।


2

Win10 के लिए आपको यह फ़ोल्डर निकालना चाहिए और अपनी IDE को बंद / खोलना चाहिए

C: \ Users \ उपयोगकर्ता \ AppData \ रोमिंग \ सबवर्सन \ प्रमाणन

, मेरी परियोजनाओं में भी नहीं ".subversion" फ़ोल्डर, केवल ".svn"


1

इसके अलावा, जो लोग बहुत देर से महसूस करते हैं, कि वे गलत प्रमाण के साथ प्रतिबद्ध हैं, समाधान (तथ्य के बाद) उस संशोधन के svn लेखक को बदलना है: इस प्रश्न को देखें

मूल रूप से वाक्य रचना है:

svn propset --revprop -r (revision_number) svn:author (new username)

1

इंगो केगेल के समाधान के आधार पर मैंने सभी सबफ़ोल्डर्स में उपयोगकर्ता नाम बदलने के लिए एक "छोटी" बैश स्क्रिप्ट बनाई। स्मरण में रखना:

  1. <NEW_USERNAME>नए उपयोगकर्ता नाम में बदलें ।
  2. <OLD_USERNAME>वर्तमान उपयोगकर्ता नाम में परिवर्तन करें (यदि आपके पास वर्तमान में कोई उपयोगकर्ता नाम सेट नहीं है, तो बस हटा दें <OLD_USERNAME>@)।

नीचे दिए गए कोड में svn कमांड केवल प्रिंट आउट (निष्पादित नहीं) है। Svn कमांड को निष्पादित करने के लिए, echoइसके सामने (और ऊपर popd) व्हॉट्सएप को हटा दें ।

for d in */ ; \
do echo $d ; pushd $d ; \
url=$(svn info | grep "URL: svn") ; \
url=$(echo ${url#"URL: "}) ; \
newurl=$(echo $url | sed "s/svn+ssh:\/\/<OLD_USERNAME>@/svn+ssh:\/\/<NEW_USERNAME>@/") ; \
echo "Old url: "$url ; echo "New url: "$newurl ; \
echo svn relocate $url $newurl ; \
popd ; \
done

उम्मीद है यह आपको उपयोगी होगा!


0

मेरा मानना ​​है कि आप अपने कार्यस्थल की शाखा के रूप में उसी ट्रंक से अपनी खुद की शाखा (अपनी खुद की क्रेडेंशियल का उपयोग करके) बना सकते हैं, अपने वर्कमेट की शाखा से अपनी कार्यशील प्रति में विलय कर सकते हैं और फिर अपनी शाखा से विलय कर सकते हैं। भविष्य की सभी प्रतिबद्धताओं को आप से आने के रूप में चिह्नित किया जाना चाहिए।


0

आप अपने सहकर्मी से एक पैच बनाने के लिए कह सकते हैं, जो एक फ़ाइल में किए गए सभी परिवर्तनों को ध्वस्त कर देगा जिसे आप अपने स्वयं के चेक आउट पर लागू कर सकते हैं। यह आपकी सभी फाइलों को उचित रूप से अपडेट करेगा और फिर आप उसकी तरफ से बदलावों को वापस कर सकते हैं और आपकी जांच कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.