2011-10-06 16 views
75

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

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

मैं सिर्फ कई परिवर्तन है कि पहले से ही किया गया है की वजह से मेरी पहचान के साथ चेकआउट नहीं कर सकते हैं ...

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

+0

दिलचस्प सवाल! सभी संग्रहीत लेख डेटा को साफ़ करने के अलावा एक तरीका प्रतीत नहीं होता है।] (http://blog.ansuz.nl/index.php/2008/10/13/tortoise- svn-change-repository-credentials /) –

+0

@Pekka: अच्छा जवाब। प्रश्न TortoiseSVN के लिए विशिष्ट नहीं था, हालांकि –

उत्तर

65

आप के साथ

  • सबवर्सन 1.6 उपयोगकर्ता को बदल सकते हैं और पूर्ववर्ती संस्करण:

    svn switch --relocate protocol://[email protected]/path protocol://[email protected]/path 
    
  • सबवर्सन 1.7 और बाद में:

    svn relocate protocol://[email protected]/path protocol://[email protected]/path 
    

पता लगाने के लिए protocol://[email protected]/path है, आर un

svn info 

आपकी कार्यशील प्रति में।

+3

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

+2

यह सादे http-auth प्रमाणीकरण योजनाओं के लिए काम नहीं करता है। [यह जवाब] देखें (http://stackoverflow.com/a/9391129/313192) उस उपयोग के लिए सहेजे गए उपयोगकर्ता क्रेडेंशियल को कैसे हटाएं। @ जेम्स जो शायद आपकी समस्या है। – Caleb

+0

शानदार सामान .. Thnaks :) – Karma

0

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

0

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

48

मैं ठीक उसी समस्या थी और Where does SVN client store user authentication data? में समाधान मिल गया है:। के

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

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

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

+1

ध्यान देने योग्य है, अगर आप दौड़ते हैं IntelliJ आईडीईए आप – AndersG

+1

को प्रभावी होने के लिए IntelliJ को पुनरारंभ करना होगा 'fgrep' कमांड में' -l' होना चाहिए, ताकि कमांड आपको फ़ाइल पथ बता सके। मैं इसे संपादित करने जा रहा था, लेकिन यह काफी लंबा नहीं है। – vguzmanp

+0

एक आकर्षण के रूप में काम किया, धन्यवाद! – pubsy

50

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

svn commit --username newUser

या

svn co --username newUser

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

यह भी देखें: आपकी प्रोटोकॉल http है और आप सबवर्सन 1.7 का उपयोग कर रहे In Subversion can I be a user other than my login name?

+1

+1 एक साधारण समाधान –

+0

के लिए +1 मैंने ऐसा किया, और फिर 'svn info' और मुझे' लेखक 'पंक्ति में कोई बदलाव नहीं दिख रहा है। – vsync

+1

उपर्युक्त लिंक से: "जब सबवर्जन फ़ाइल सिस्टम से सीधे भंडार तक पहुंच रहा है, तो यह भंडार तक पहुंचने के लिए आपकी फाइल सिस्टम अनुमतियों का उपयोग करता है। (जब आप एसएसएच सुरंग के माध्यम से कनेक्ट होते हैं, तो एसवीएन सर्वर पर आपके एफएस अनुमतियों का उपयोग करता है, जैसा कि निर्धारित करता है आपका एसएसएच लॉगिन।) तो एसवीएन चेकआउट - उपयोगकर्ता नाम आपके भंडार के लिए काम नहीं कर सकता है। " –

4

, तो आप बस किसी भी आदेश पर वैश्विक --username विकल्प का उपयोग करके किसी भी समय उपयोगकर्ता बदल सकते हैं।

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

+0

कृपया एक उदाहरण कोड प्रदान करें – vsync

1

इसके अलावा, जो लोग बहुत देर हो चुकी साकार करने के लिए, कि वे गलत पहचान के साथ प्रतिबद्ध हुआ उसके लिए, समाधान (इस तथ्य के बाद) है कि संशोधन के SVN लेखक बदलने के लिए है: देखने this question

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

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

पर Ingo Kegel's solution मैं एक "छोटे" बैश स्क्रिप्ट बनाने के सभी सब-फ़ोल्डर के उपयोगकर्ता नाम बदलने के आधार पर। याद रखें:

  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 

आशा है कि आपको यह उपयोगी लगेगा!

2

Tortoise SVN --> Settings --> Saved Data पर जाएं।

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

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

3

यह बहुत आसान है। आपको बस

svn up --username newUserName 

निष्पादित करना चाहिए।

1

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

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

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

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