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.

pasar
sumber

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.

Michael Ratanapintha
sumber
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.

aminalid
sumber
1
Tidak berfungsi dengan nama pengguna seperti: [email protected]
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!]).

kebiru-biruan
sumber
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).

chethan
sumber
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
12

Jika Anda perlu menentukan nama pengguna selain dari pengguna yang masuk untuk digunakan dengan svn + ssh cukup tambahkan entri ke file .ssh / config Anda :

Tuan rumah example.com
Pengguna jdoe
Aaron Dancygier
sumber
man ssh_config akan memberi tahu Anda semua tentangnya. Saya belum menemukan cara untuk membuat ini dinamis (misalnya berdasarkan variabel lingkungan).
bbaassssiiee
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.

Beau Simensen
sumber
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
7

Sebagian besar jawaban tampaknya untuk svn + ssh, atau sepertinya tidak bekerja untuk kita.

Untuk akses http, cara termudah untuk keluar dari pengguna SVN dari baris perintah adalah:

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

Kiat topi: http://www.yolinux.com/TUTORIALS/Subversion.html

Danny Schoemann
sumber
6

Saya percaya jika Anda menggunakan file: // metode untuk mengakses repositori subversi Anda, perubahan Anda selalu dilakukan di bawah pengguna yang mengakses repositori. Anda perlu menggunakan metode yang mendukung otentikasi seperti http: // atau svn: //.

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

Kamil Kisiel
sumber
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) .

Don Wakefield
sumber
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

codeMonster
sumber
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.

Alan Dong
sumber
-1

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

rekursif
sumber
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.

Sophie Alpert
sumber
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