ในการโค่นล้มฉันสามารถเป็นผู้ใช้อื่นนอกเหนือจากชื่อเข้าสู่ระบบของฉันได้อย่างไร


253

ฉันต้องการทราบวิธีSubversionเปลี่ยนชื่อที่การเปลี่ยนแปลงของฉันปรากฏ

Subversionฉันเพิ่งเริ่มใช้ ปัจจุบันฉันใช้มันเป็นรหัสควบคุมเวอร์ชันบนแล็ปท็อป XP ที่ฉันลงชื่อเข้าใช้เสมอภายใต้ชื่อภรรยาของฉัน ฉันต้องการให้ฐานโค่นล้มแสดงการเปลี่ยนแปลงภายใต้ชื่อของฉัน

ต่อมาฉันจะทำซ้ำฐานข้อมูลเพื่อให้เข้าถึงได้ทั้งบ้าน ภรรยาของฉันใช้คอมพิวเตอร์สำนักงานที่เธอลงชื่อเข้าใช้ด้วยชื่อของฉันเสมอ ฉันอาจจะตั้งค่าเพื่อตรวจสอบเอกสารที่แก้ไขโดยอัตโนมัติ ... ควรอยู่ภายใต้ชื่อของเธอ

ในที่สุดฉันอาจจะใช้มันจากเครื่อง linux ภายใต้ชื่อผู้ใช้อื่น

มีวิธีการแก้ไขสภาพแวดล้อมของผู้ใช้เพื่อเปลี่ยนชื่อผู้ใช้ที่การโค่นล้มเรียกคุณหรือไม่? ฉันคาดหวังบางสิ่งบางอย่างเช่นการตั้งค่าSVN_USERNAME='Mark'ที่จะแทนที่ แต่มักจะได้รับชื่อ

อัปเดต:ดูเหมือนว่าการ--usernameตั้งค่าสถานะที่ Michael เรียกว่าทำงานเพื่อเปลี่ยนชื่อที่รายงานโดย"svn stat"แม้จะเป็นไฟล์ภายในเครื่อง: ที่เก็บข้อมูล นอกจากนี้มันเหนียวดังนั้นคุณไม่จำเป็นต้องระบุมันสำหรับคำสั่งถัดไป ฉันรีบูตเครื่องและยังคงใช้"--username"ค่าจากการบู๊ตครั้งก่อน

คำตอบ:


280

คำสั่งการโค่นล้มส่วนใหญ่ใช้--usernameตัวเลือกเพื่อระบุชื่อผู้ใช้ที่คุณต้องการใช้กับที่เก็บ การโค่นล้มจะจดจำชื่อผู้ใช้และรหัสผ่านของที่เก็บข้อมูลล่าสุดที่ใช้ในสำเนาทำงานแต่ละอันซึ่งหมายความว่าหากคุณใช้svn checkout --username myuserคุณไม่จำเป็นต้องระบุชื่อผู้ใช้อีกครั้ง

Kamil Kisiel พูดว่าเมื่อ Subversion กำลังเข้าถึงที่เก็บโดยตรงนอกระบบไฟล์ (นั่นคือที่เก็บ URL นั้นอยู่ในรูปแบบfile:///path/to/repoหรือfile://file-server/path/to/repo) มันใช้สิทธิ์ระบบไฟล์ของคุณเพื่อเข้าถึงที่เก็บ และเมื่อคุณเชื่อมต่อผ่าน SSH tunneling ( svn+ssh://server/path/to/repo), SVN ใช้สิทธิ์ FS ของคุณบนเซิร์ฟเวอร์ตามที่กำหนดโดยการเข้าสู่ระบบ SSH ของคุณ ในกรณีเหล่านั้นsvn checkout --usernameอาจใช้ไม่ได้กับที่เก็บของคุณ


ขอบคุณสำหรับคำตอบที่รวดเร็ว ธง - ชื่อผู้ใช้ดูเหมือนจะเหนียวมากแม้จะเป็นจุดเริ่มต้น และใช้งานได้ดีกับไฟล์ของฉัน: ที่เก็บ
ตลาด

70

สำหรับ svn มากกว่า ssh ลอง:

svn list svn+ssh://[user_name]@server_name/path_to_repo  

svn จะขอให้คุณใส่user_nameรหัสผ่าน


1
ไม่ทำงานกับชื่อผู้ใช้ที่ต้องการ: johndoe@example.com
neoneye

4
https://user_name@.../pathไม่ได้ผลสำหรับฉัน (cygwin) แต่ใช้--usernameงานได้ดี
zelanix

44

คุณสามารถตั้งค่าชื่อผู้ใช้เริ่มต้นผ่าน ~ / .svversion / เซิร์ฟเวอร์:

[groups]
yourgroupname = svn.example.com

[yourgroupname]
username = yourusername

โปรดทราบว่า svn เวอร์ชันเก่าไม่รองรับ (เช่น 1.3.1 [sic!])


37
"svn co --username=yourUserName --password=yourpassword http://path-to-your-svn"

ทำงานให้ฉันเมื่อใช้บัญชีผู้ใช้อื่น คุณจะได้รับแจ้งให้ป้อนชื่อผู้ใช้ / รหัสผ่านอีกครั้ง คุณต้องเข้าสู่ระบบเหมือนด้านบนหนึ่งครั้งและคุณพร้อมสำหรับครั้งต่อไป (ยกเว้นคุณรีสตาร์ทเครื่อง)


4
ระวังเมื่อระบุรหัสผ่านในบรรทัดคำสั่ง ทุกคนที่สามารถดูรายการกระบวนการในเครื่องจะสามารถเห็นรหัสผ่านในรายการกระบวนการ ใช้ได้ดีกับระบบผู้ใช้คนเดียว แต่ไม่ค่อยดีนักในระบบผู้ใช้หลายคน
bleater

12

หากคุณต้องการระบุชื่อผู้ใช้อื่นที่ไม่ใช่ผู้ใช้ที่เข้าสู่ระบบของคุณเพื่อใช้กับ svn + ssh เพียงเพิ่มรายการลงในไฟล์. ssh / config ของคุณ :

โฮสต์ example.com
ผู้ใช้ jdoe

คน ssh_config จะบอกคุณเกี่ยวกับเรื่องนี้ ฉันยังไม่พบวิธีที่จะสร้างไดนามิกนี้ (เช่นตามตัวแปรสภาพแวดล้อม)
bbaassssiiee

11

การโค่นล้มมักจะถามฉันสำหรับ "ชื่อผู้โค่นล้ม" หากล้มเหลวโดยใช้ชื่อผู้ใช้ที่เข้าสู่ระบบของฉัน ดังนั้นเมื่อฉันขี้เกียจ (ปกติ) ฉันจะให้มันถามรหัสผ่านของฉันและฉันจะกด Enter และรอพร้อมท์ชื่อผู้ใช้และใช้ชื่อผู้ใช้การโค่นล้มของฉัน

มิฉะนั้นทางออกของ Michael เป็นวิธีที่ดีในการระบุชื่อผู้ใช้ในทันที


1
ฉันคิดว่านี่เป็นคำตอบที่ดีกว่าเพราะมันใช้ได้กับคำสั่ง SVN ทั้งหมด (เช็คเอาต์กระทำ ฯลฯ ) ซึ่งธง - ชื่อผู้ใช้ดูเหมือนจะไม่มีอยู่จริงหรือแตกต่างกันเล็กน้อยสำหรับคำสั่งต่าง ๆ ...
edwardsharp

7

คำตอบส่วนใหญ่ดูเหมือนจะเป็น svn + ssh หรือดูเหมือนจะไม่ทำงานให้เรา

สำหรับการเข้าถึง http วิธีที่ง่ายที่สุดในการออกจากระบบผู้ใช้ SVN จากบรรทัดคำสั่งคือ:

rm ~/.subversion/auth/svn.simple/*

เคล็ดลับหมวก: http://www.yolinux.com/TUTORIALS/Subversion.html


6

ฉันเชื่อว่าถ้าคุณใช้ไฟล์: // วิธีการในการเข้าถึงพื้นที่เก็บข้อมูลการโค่นล้มการเปลี่ยนแปลงของคุณจะดำเนินการภายใต้ผู้ใช้ที่เข้าถึงพื้นที่เก็บข้อมูลเสมอ คุณต้องใช้วิธีการที่รองรับการรับรองความถูกต้องเช่น http: // หรือ svn: //

ดูhttp://svnbook.red-bean.com/en/1.5/svn-book.html#svn.serverconfig.choosing


6

การใช้การโค่นล้มกับโมดูล Apache หรือ svnserve --usernameฉันได้รับสามารถที่จะดำเนินการตามที่ผู้ใช้หลายคนใช้

ทุกครั้งที่คุณเรียกใช้คำสั่งการโค่นล้มในฐานะผู้ใช้ 'ใหม่' $HOME/.subversion/auth/<authentication-method>/ไดเรกทอรีของคุณจะมีรายการใหม่เก็บไว้สำหรับผู้ใช้นั้น (สมมติว่าคุณสามารถรับรองความถูกต้องด้วยรหัสผ่านที่ถูกต้องหรือวิธีการรับรองความถูกต้องสำหรับเซิร์ฟเวอร์ที่คุณติดต่อด้วย .


2

หากคุณกำลังใช้ svn + ssh เพื่อเชื่อมต่อกับที่เก็บข้อมูลสิ่งเดียวที่รับรองว่าคุณและให้สิทธิ์คุณคือข้อมูลประจำตัวของ ssh ทุกอย่างจะถูกละเว้น ชื่อผู้ใช้ของคุณจะถูกบันทึกในการโค่นล้มตรงตามที่กำหนดไว้ในการเชื่อมต่อ ssh ของคุณ คำอธิบายที่ยอดเยี่ยมเกี่ยวกับเรื่องนี้คือที่jimmyg.org/blog/2007/subversion-over-svnssh-on-debian.html


2

ไปที่~/.subversion/auth/svn.simple/*แล้วคุณจะเห็นรายการไฟล์ที่มีข้อมูลเกี่ยวกับบัญชีผู้ใช้ svn ของคุณ เพียงลบคนอื่น ๆ ทั้งหมดที่คุณไม่ต้องการ

หลังจากนั้นเมื่อคุณทำสิ่งใดก็ตามที่เกี่ยวข้องกับการดำเนินการของ SVN เช่น commit, rm เป็นต้น คุณจะถูกถามอีกครั้งเพื่อป้อนชื่อผู้ใช้หรือรหัสผ่าน


-1

TortoiseSVN จะขอชื่อผู้ใช้เสมอ (ถ้าคุณไม่บอก)


ไม่มันไม่ ไม่ใช่ใน 1.9.5 สำหรับ Linux อย่างน้อยที่สุด
drkvogel

มันใช้ชื่อผู้ใช้ท้องถิ่นของคุณตามค่าเริ่มต้นซึ่งไม่ได้เป็นสิ่งที่คุณต้องการเสมอเมื่อเชื่อมต่อกับที่เก็บระยะไกล
drkvogel

-3

ฉันเชื่อว่าคุณสามารถตั้งค่าSVN_USERตัวแปรสภาพแวดล้อมเพื่อเปลี่ยนชื่อผู้ใช้ SVN ของคุณ


3
คุณสามารถให้การอ้างอิงสำหรับสิ่งนั้นได้หรือไม่? ฉันค้นหาและพบเฉพาะ svn_username ซึ่งเป็นแพทช์ที่บางคนทำและฉันไม่สามารถบอกได้ว่ามันทำให้การฉีดยาหรือไม่ ... ฉันคิดว่าฉันจะพบเพลงฮิตอื่น ๆ ถ้าเป็นเช่นนั้น
ตลาด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.