Di Subversion, bisakah saya menjadi pengguna selain nama login saya?


253

Saya ingin tahu cara Subversionmengubah nama tempat perubahan saya muncul.

Saya baru mulai menggunakan Subversion. Saat ini saya menggunakannya untuk kode kontrol versi pada laptop XP di mana saya selalu masuk dengan nama istri saya. Saya ingin DB subversi menunjukkan perubahan dengan nama saya.

Kemudian saya akan mereplikasi DB sehingga dapat diakses oleh seluruh rumah. Istri saya menggunakan komputer kantor di mana ia selalu masuk dengan nama saya. Saya mungkin akan mengaturnya sehingga secara otomatis memeriksa dokumen yang dimodifikasi ... lebih disukai dengan namanya.

Akhirnya saya mungkin akan menggunakannya dari mesin linux di bawah nama pengguna lain.

Apakah ada cara untuk mengubah lingkungan pengguna untuk mengubah nama pengguna yang dipanggil Subversion kepada Anda? Saya mengharapkan sesuatu seperti pengaturan SVN_USERNAME='Mark'yang akan menimpa namun biasanya mendapatkan namanya.

Pembaruan: Sepertinya --usernamebendera yang dimaksud Michael berfungsi untuk mengubah nama yang dilaporkan "svn stat", bahkan untuk file lokal: repositori. Selain itu, ini lengket sehingga Anda tidak perlu menentukannya untuk perintah berikutnya. Saya bahkan reboot dan masih menggunakan "--username"nilai dari boot saya sebelumnya.

Jawaban:


280

Sebagian besar perintah Subversion mengambil --usernameopsi untuk menentukan nama pengguna yang ingin Anda gunakan ke repositori. Subversion mengingat nama pengguna dan kata sandi repositori terakhir yang digunakan dalam setiap copy pekerjaan, yang berarti, di antara hal-hal lain, bahwa jika Anda menggunakan svn checkout --username myuserAnda tidak perlu menentukan nama pengguna lagi.

Seperti yang dikatakan Kamil Kisiel , ketika Subversion mengakses repositori langsung dari sistem file (yaitu, URL repositori dalam bentuk file:///path/to/repoatau file://file-server/path/to/repo), ia menggunakan izin sistem file Anda untuk mengakses repositori. Dan ketika Anda terhubung melalui tunneling SSH ( svn+ssh://server/path/to/repo), SVN menggunakan izin FS Anda di server , seperti yang ditentukan oleh login SSH Anda. Dalam kasus itu, svn checkout --usernamemungkin tidak berfungsi untuk repositori Anda.


Terima kasih atas jawaban cepatnya. Bendera --username tampaknya sangat lengket, bahkan di seluruh reboot. Dan itu berfungsi dengan baik pada file saya: repositori.
Memasarkan

70

Untuk svn di atas coba ssh:

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

svn akan meminta user_namekata sandi Anda.


1
Tidak berfungsi dengan nama pengguna seperti: johndoe@example.com
neoneye

4
https://user_name@.../pathtidak bekerja untuk saya (cygwin) tetapi --usernameberfungsi dengan baik.
zelanix

44

Anda dapat mengatur nama pengguna default melalui ~ / .subversion / server:

[groups]
yourgroupname = svn.example.com

[yourgroupname]
username = yourusername

Perlu diketahui bahwa svn versi lama tidak mendukungnya (mis. 1.3.1 [sic!]).


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

Bekerja untuk saya ketika di akun pengguna lain. Anda akan diminta untuk memasukkan nama pengguna / kata sandi lagi. Anda harus login seperti di atas sekali dan Anda siap untuk waktu berikutnya (Kecuali jika Anda me-restart mesin Anda).


4
Hati-hati saat memberikan kata sandi pada baris perintah. Siapa pun yang dapat melihat daftar proses pada mesin akan dapat melihat kata sandi dalam daftar proses. Baik pada sistem pengguna tunggal, tetapi tidak begitu baik pada sistem multi-pengguna.
pemutih


11

Subversion biasanya menanyakan "username Subversion" saya jika gagal menggunakan nama pengguna login saya. Jadi, ketika saya malas (biasanya) saya akan membiarkannya menanyakan kata sandi saya dan saya akan menekan enter, dan menunggu prompt nama pengguna dan menggunakan nama pengguna Subversion saya.

Kalau tidak, solusi Michael adalah cara yang baik untuk menentukan nama pengguna langsung.


1
Saya menganggap ini jawaban yang lebih baik karena berfungsi untuk semua perintah SVN (checkout, commit, dll) di mana flag --username tampaknya tidak ada atau sedikit berbeda untuk berbagai perintah ...
edwardsharp



6

Menggunakan Subversion dengan modul Apache atau svnserve. Saya sudah bisa melakukan operasi karena banyak pengguna menggunakan --username.

Setiap kali Anda menjalankan perintah Subversion sebagai pengguna 'baru', $HOME/.subversion/auth/<authentication-method>/direktori Anda akan memiliki entri baru di-cache untuk pengguna itu (dengan asumsi Anda dapat mengotentikasi dengan kata sandi yang benar atau metode otentikasi untuk server yang Anda hubungi sebagai pengguna tertentu) .


2

Jika Anda menggunakan svn + ssh untuk terhubung ke repositori maka satu-satunya hal yang mengotentikasi Anda dan mengotorisasi Anda adalah kredensial ssh Anda. SEGALA SESUATU lainnya diabaikan. Nama pengguna Anda akan masuk subversi persis seperti yang dibuat dalam koneksi ssh Anda. Penjelasan yang bagus tentang hal ini adalah di jimmyg.org/blog/2007/subversion-over-svnssh-on-debian.html


2

Pergi ke ~/.subversion/auth/svn.simple/*, dan Anda akan melihat daftar file yang berisi informasi tentang akun pengguna svn Anda. Hapus saja semua yang tidak Anda butuhkan.

Setelah itu, ketika Anda melakukan apa pun yang berkaitan dengan operasi SVN, seperti komit, rm, dll. Anda akan diminta lagi untuk memasukkan nama pengguna atau kata sandi.


-1

TortoiseSVN selalu meminta nama pengguna. (kecuali Anda mengatakannya untuk tidak)


Tidak, tidak. Paling tidak pada Linux 1.9.5.
drkvogel

Ini menggunakan nama pengguna lokal Anda secara default, yang tidak selalu seperti yang Anda inginkan saat menghubungkan ke repositori jarak jauh.
drkvogel

-3

Saya percaya Anda dapat mengatur SVN_USERvariabel lingkungan untuk mengubah nama pengguna SVN Anda.


3
Bisakah Anda memberikan referensi untuk itu? Saya melakukan pencarian dan hanya menemukan svn_username, yang merupakan tambalan yang dibuat seseorang dan saya tidak tahu apakah itu berhasil atau tidak ... Saya akan berpikir saya akan menemukan hit lain jika demikian.
Memasarkan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.