SVN kullanıcı adını değiştir


86

Belirli revizyonlar için kullanıcı adının nasıl değiştirileceğine dair birçok örnek buldum.

Ancak ihtiyacım olan şey şudur: Bir iş arkadaşımın kimlik doğrulama bilgileriyle bir ödeme yaptım ve gelecekteki taahhütler için bunu kimlik bilgilerime değiştirmem gerekiyor.

Zaten yapılan birçok değişiklik nedeniyle kimlik bilgilerimle ödeme yapamıyorum ...

Buna aşina olan var mı?



@Pekka: Güzel cevap. Yine de soru TortoiseSVN'ye özgü değildi.
Raphael Schweikert

Yanıtlar:


73

Kullanıcıyı şununla değiştirebilirsiniz:

  • Subversion 1.6 ve öncesi:

    svn switch --relocate protocol://currentUser@server/path protocol://newUser@server/path
    
  • Subversion 1.7 ve üzeri:

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

Ne protocol://currentUser@server/patholduğunu bulmak için koş

svn info

çalışma kopyanızda.


4
"Svn: E155024: Geçersiz kaynak URL öneki: 'protocol: // currentUser @ server / path' (hedefin URL'si 'protocol: // newUser @ server / path' ile örtüşmüyor)" [gerçek URL'lerimle, tabii ki]
James Roth

3
Bu, düz http-kimlik doğrulama şemaları için çalışmaz. Bu kullanım örneği için kayıtlı kullanıcı kimlik bilgilerinin nasıl silineceğini öğrenmek için bu yanıta bakın . @James bu muhtemelen senin sorunun.
Caleb

Brilliant stuff .. Thnaks :)
Karma

64

Bunu yapmanın en kolay yolu, bir sonraki ödeyişinizde veya işleminizde --username seçeneğini kullanmaktır. Örneğin:

svn commit --username newUser

veya

svn co --username newUser

Daha sonra önbelleğe alınacak ve gelecekteki komutlar için varsayılan kullanıcı adı olarak kullanılacaktır.

Ayrıca bakınız: Subversion'da oturum açma adımdan başka bir kullanıcı olabilir miyim?


Bunu yaptım ve sonra çizgide bir svn infodeğişiklik görmüyorum Author.
vsync

2
Yukarıdaki bağlantıdan: "Subversion, havuza doğrudan dosya sistemi üzerinden erişirken, depoya erişmek için dosya sistemi izinlerinizi kullanır. (SSH tüneli aracılığıyla bağlandığınızda, SVN, sunucunuzdaki FS izinlerinizi sizin tarafınızdan belirlendiği şekilde kullanır. SSH oturumu açın.) Dolayısıyla, svn checkout - kullanıcı adı deponuz için çalışmayabilir. "
Matt Browne

1
@MattBrowne doğru. "svn + ssh: //svn.server.com" gibi bir yol - kullanıcı adı değişikliğini kabul etmez. Yer değiştirmeyi kullanan kabul edilen cevap, onu değiştirebilmemin tek yoluydu.
FlipMcF

51

Tam olarak aynı sorunu yaşadım ve çözümü SVN istemcisi kullanıcı kimlik doğrulama verilerini nerede saklıyor? :

  1. cdiçin ~/.subversion/auth/.
  2. Yapın fgrep -l <yourworkmatesusernameORtheserverurl> */*.
  3. Bulunan dosyayı silin.
  4. Depodaki bir sonraki işlem sizden tekrar kullanıcı adı / parola bilgilerini isteyecektir.

(Windows için adımlar benzerdir; authdizin içindedir %APPDATA%\Subversion\).

Bunun yalnızca kullanıcı adının sunucu oturum açma işleminin bir parçası olduğu SVN erişim şemaları için çalışacağını ve bu nedenle erişilen havuzlar için kullanılmayacağını unutmayın file://.


1
IntelliJ
IDEA'yı

1
fgrepkomutu bir olmalıdır -lkomut size dosya yolu söyler, böylece. Düzenleyecektim ama yeterince uzun değil.
vguzmanp

16

Yürütülebilecek komut:

svn up --username newUsername

Mükemmel çalışıyor ;)

Not: Sadece bir ipucu: "--username" seçeneği sadece güncelleme değil, herhangi bir "svn" komutunda çalıştırılabilir.


5

Protokolünüz http ise ve Subversion 1.7 kullanıyorsanız, herhangi bir komutta global --username seçeneğini kullanarak istediğiniz zaman kullanıcıyı değiştirebilirsiniz.

Ingo'nun yöntemi benim için işe yaramadığında, işe yaradığını bulduğum şey buydu.


3

Adresine gidin Tortoise SVN --> Settings --> Saved Data.

Kimlik Doğrulama Verilerini temizleme seçeneği vardır, temizle düğmesine tıklayın ve kullanıcı kimliği / pwd'yi temizlemek istediğiniz bağlantıyı seçmenize izin verecektir.

Bunu yaptıktan sonra, herhangi bir satın alma veya güncelleme etkinliği, kullanıcı kimliği ve şifre için yeniden istenir.


2

Win10 için bu klasörü kaldırmalı ve IDE'nizi kapatmalı / açmalısınız

C: \ Kullanıcılar \ Kullanıcı \ AppData \ Roaming \ Subversion \ auth

, ayrıca projelerimde ".subversion" klasörü yok, yalnızca ".svn"


1

Ayrıca, çok geç anlayanlar için yanlış kimlik bilgileriyle işlediklerini anlayanlar için çözüm (gerçeğin ardından) bu revizyonun svn yazarını değiştirmektir: bu soruya bakın

Temel olarak sözdizimi şöyledir:

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

1

Ingo Kegel'in çözümüne dayanarak, tüm alt klasörlerdeki kullanıcı adını değiştirmek için "küçük" bir bash betiği oluşturdum. Hatırla:

  1. Değişim <NEW_USERNAME>yeni kullanıcı adına.
  2. <OLD_USERNAME>Mevcut kullanıcı adını değiştirin (şu anda ayarlı bir kullanıcı adınız yoksa, kaldırın <OLD_USERNAME>@).

Aşağıdaki kodda svn komutu yalnızca yazdırılır (yürütülmez). Svn komutunun çalıştırılması için echoönündeki ve boşluklarını kaldırın (hemen yukarıda 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

Umarım yararlı bulursunuz!


0

İş arkadaşınızın şubesi ile aynı ana hattan kendi şubenizi (kendi kimlik bilgilerinizi kullanarak) oluşturabileceğinize inanıyorum, iş arkadaşınızın şubesinden çalışma kopyanıza ve ardından şubenizden birleştirebilirsiniz. Gelecekteki tüm taahhütler sizden geliyor olarak işaretlenmelidir.


0

İş arkadaşınızdan, yaptığınız tüm değişiklikleri kendi ödünç alma işleminize uygulayabileceğiniz tek bir dosyada daraltacak bir yama oluşturmasını isteyebilirsiniz. Bu, tüm dosyalarınızı uygun şekilde güncelleyecektir ve daha sonra, onun tarafındaki değişiklikleri geri alabilir ve kendi tarafınızı iade edebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.