Subversion negeert “–password” en “–username” opties

Als ik een svn-opdracht probeer uit te voeren en de opties --usernameen/of --passwordopgeef, wordt ik sowieso om mijn wachtwoord gevraagd, en dat zal altijd zo blijven probeer mijn huidige gebruiker te gebruiken in plaats van degene die is opgegeven door --username. Noch --no-auth-cachenoch --non-interactivehebben hier enig effect op. Dit is een probleem omdat ik svn-commando’s probeer aan te roepen vanuit een script, en ik kan het de prompt niet laten weergeven.

Bijvoorbeeld ingelogd als gebruiker1:

# $ svn update --username 'user2' --password 'password'
# [email protected]'s password: 

Andere opties werken correct:

# $ svn --version --quiet
# 1.3.2

Waarom vraagt ​​het mij?
En waarom vraagt ​​het om het wachtwoord van gebruiker1 in plaats van dat van gebruiker2?
Ik ben 99% zeker dat al mijn rechten correct zijn ingesteld. Is er een configuratieoptie voor svn die opdrachtregelwachtwoorden uitschakelt?
Of is het iets heel anders?

Ik draai svn 1.3.2 (r19776) op Fedora Core 5 (Bordeaux).


Hier is een lijst met mijn omgevingsvariabelen (waarbij gevoelige informatie is weggegooid). Geen van deze lijkt van toepassing te zijn op SVN:

# HOSTNAME=XXXXXX
# TERM=xterm
# SHELL=/bin/sh
# HISTSIZE=1000
# KDE_NO_IPV6=1
# SSH_CLIENT=XXX.XXX.XXX.XXX XXXXX XX
# QTDIR=/usr/lib/qt-3.3
# QTINC=/usr/lib/qt-3.3/include
# SSH_TTY=/dev/pts/2
# USER=XXXXXX
# LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:
# KDEDIR=/usr
# MAIL=/var/spool/mail/XXXXXX
# PATH=/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin
# INPUTRC=/etc/inputrc
# PWD=/home/users/XXXXXX/my_repository
# KDE_IS_PRELINKED=1
# LANG=en_US.UTF-8
# SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
# SHLVL=1
# HOME=/home/users/XXXXXX
# LOGNAME=XXXXXX
# QTLIB=/usr/lib/qt-3.3/lib
# CVS_RSH=ssh
# SSH_CONNECTION=69.202.73.122 60998 216.7.19.47 22
# LESSOPEN=|/usr/bin/lesspipe.sh %s
# G_BROKEN_FILENAMES=1
# _=/bin/env
# OLDPWD=/home/users/XXXXXX

Antwoord 1, autoriteit 100%

Heb je eigenlijk de enkele aanhalingstekens in je commando? Ik denk niet dat ze nodig zijn. Bovendien denk ik dat je ook --no-auth-cacheen --non-interactive

nodig hebt

Dit is wat ik gebruik (geen enkele aanhalingstekens)

--niet-interactief --no-auth-cache --username XXXX --password YYYY

Zie de Client Credentials Cachingdocumentatie in het svnbookvoor meer informatie.


Antwoord 2, autoriteit 60%

De prompt die je krijgt lijkt er niet op dat Subversion je om een ​​wachtwoord vraagt, het lijkt erop dat ssh om een ​​wachtwoord vraagt. Dus mijn gok is dat je een svn+ssh:// checkout hebt uitgecheckt, niet een svn:// of http:// of https:// checkout.

IIRC alle opties die je probeert werken alleen voor de svn/http/https kassa’s. Kun je svn info uitvoeren om te bevestigen wat voor soort repository je gebruikt?

Als u ssh gebruikt, moet u op sleutels gebaseerde authenticatie instellen, zodat uw scripts werken zonder dat u om een ​​wachtwoord hoeft te vragen.


Antwoord 3, autoriteit 31%

Ik had hetzelfde probleem en loste het op door mijn ~/.ssh/config-bestand zo in te stellen dat het expliciet de juiste gebruikersnaam gebruikt (d.w.z. degene die je gebruikt om in te loggen op de server, niet je lokale computer). Dus bijvoorbeeld:

Hostserver.hostnaam
 Gebruikersnaam:

Ik vond deze blogpost nuttig: http://www.highlevelbits.com/2007/04/svn-over-ssh-prompts-for-wrong-username.html


Antwoord 4

Best ik kan geven is een “werkt voor mij” op SVN 1.5. U kunt proberen het toevoegen van --no-auth-cacheom uw svn updateom te zien of waarmee je gemakkelijker overschrijven

Als u wilt permanent over te schakelen van user2 naar gebruiker1, hoofd in ~ / .subversion / auth / op * nix en de authenticatie cache-bestand voor domain.com te schrappen (waarschijnlijk in ~ / .subversion / auth / svn.simple / – lees net door hen en je degene die je wilt laten vallen) te vinden. Hoewel het mogelijk is om de huidige auth cache bij te werken, moet u ervoor zorgen om de lengte tokens te werken ook. Eenvoudiger net weer even gevraagd de volgende keer dat u op de hoogte.


5

Het probleem was dat de werkende exemplaar werd gecontroleerd via svn + ssh (bedankt, Thomas). In plaats van het opzetten van SSH-sleutels zoals gesuggereerd, ik heb net uitgecheckt een nieuwe manier van werken kopiëren met svn: //domain.com/path/to/repo in plaats van svn + ssh: //domain.com/path/to/repo. Omdat deze manier van werken exemplaar is op dezelfde machine als de repository zelf, ik ben niet echt iets gemist op iets, en ik kan nu gebruik maken van de –password en –username opties om niet. Lijkt nu duidelijk dat ik erover nadenken.


6

Kijk naar uw lokale svn repo en blik in directory .svn.
Er is bestand: data kijken naar hen en je zult lijnen begint met te zien:
svn + ssh: //

Dit is uw eerste configuratie gemarkeerd door svn checkout ‘repo_source’ of svn co ‘repo_source’

Als u wilt om dit te veranderen, te beste manier is compleet vernieuwen deze repository.
bijwerken / commit Wat u moet voor Save werk. verwijder vervolgens compleet directory
en laatste stap is het creëren van deze door
svn co / checkout ‘URI-for-main-repotransactie [desgewenst lokale directory voor opslag]

U moet verbinding te selecteren om repo file: // svn + ssh: // http: // https: // of andere
beschreven in de documentatie.

na dat je svn verversen uitvoert / plegen zoals gewoonlijk.

dit onderwerp lijkt erop dat uit onderwerp. beter ga je naar superuser pagina’s.

Other episodes