Nem megy az svn commit [megoldva]

 ( 4fonya | 2012. július 20., péntek - 22:18 )

Ma kaptam commit jogot egy projecthez, ami a sourceforge.net-en van. Böngészőn keresztül rendesen be tudok jelentkezni a felhasználónév - jelszó párossal. Ez https-en keresztül zajlik. Gond nélkül tudok beküldeni patch-eket. Az svn commit viszont az istenért sem működik. Előrebocsájtom hogy még soha nem volt alkalmam ilyesmit csinálni.

Ami megvan:
svn checkout- Hogy legyen min dolgozni.
~/.subversion alkönyvtár benne a config állomány a projecthez ajánlott tartalommal

Elvégzem a módosításokat és szeretném feltölteni őket a szerverre. Próbáltam a kdesvn, a rapidsvn és a subcommander programokat. Még a rapidsvn állna a legjobban kézre, de mindegyik kidob a felhasználónév és jelszó beírása/bemásolása után egy kis idővel. Most kipróbáltam hogy parancssorban mit tudok elérni. Ez az eredmény:

$ svn commit


Log message unchanged or not specified
(a)bort, (c)ontinue, (e)dit:
c
Authentication realm:  SourceForge Subversion area
Password for 'prog': 
Authentication realm:  SourceForge Subversion area
Username: VALAKI
Password for 'VALAKI': 
Authentication realm:  SourceForge Subversion area
Username: VALAKI
Password for 'VALAKI': 
svn: E170001: Commit failed (details follow):
svn: E170001: MKACTIVITY of '/svnroot/gputils/!svn/act/9a8cf543-5783-4e4e-8835-f2f237c38a37': authorization failed: Could not authenticate to server: rejected Basic challenge (https://gputils.svn.sourceforge.net)

Annyit változtattam csak a szövegen hogy a felhasználónév helyére a 'VALAKI'-t írtam.

Már az sem tiszta előttem hogy mi a fenének kéri a helyi jelszavamat, hiszen már be vagyok jelentkezve a saját gépemre. Különben nem tudnék semmit sem csinálni. A rapidsvn annyiban különbözik hogy ott a bejelentkező ablakban csak a távoli felhasználónév és a jelszó párosának van egy-egy beviteli sor. Itt aztán addig ismételhetem a próbálkozást amíg meg nem unom. A hibaüzenet ott is csaknem ugyanez. Ha jól emlékszem akkor csak ez nincs a két sor elején: "svn: E170001:" Teljesen hülye dolog hogy egy ilyen egyszerű művelet nem megy. Mit rontok el?

A rendszerem: uname -r : 3.4.5-2.fc17.x86_64
Ablakkezelő: XFCE

Nemrég szántam rá magam hogy egy jól működő Fedora 13-ról átlépjek a Fedora 17-re. Mondjuk van néhány furcsa dolog: Néha elszáll az USB-s billentyűzet. Egyszerűen megszűnik működni. Kihúzom, bedugom és lehet hogy aznap nem hülyül meg újra. F13-on nem volt semmi baja. Az nvidia meghajtó nem működik OpenGL-el. Még az nvidia-settings is elszáll ha az "OpenGL/GLX Information" sorra kattintok. F13-on (i686) semmi gondom nem volt vele. (Ezen a rendszeren a Firefox 13-ban működik a flash is. Csak annyi furcsaság van vele hogy ha a jelenlegi mellett belépek más felhasználónéven is és ott is elindítom a Firefox-ot akkor a Youtube videókban az emberi bőr színe kékeslila lesz. Az eredeti felhasználóval nézve ez rendben van.)

A rendszertelepítés után volt egy kis gondom: az svn checkout elindítása után a rendszernek mindig valamilyen hitelesítési problémája volt, de ennek ellenére a parancs hibátlanul lefutott és frissült a könyvtárfa. Akkor utánaástam és az segített hogy a ~/.bash_profile-be beírtam ezt:

/usr/bin/gnome-keyring-daemon -s -c secrets,gpg,pkcs11,ssh &>/dev/null

Aztán ugyanezt mégegyszer a ~/.bashrc-be hogy legyen egy kis idő a két indítás között. Mindez azért mert egy lefutás nem elég neki. Ha csak egyszer fut a parancs akkor a /run/user/prog/keyring-XXXXXX könyvtárban többnyire csak a control fájl van meg. Másodszorra indítva lesz meg a gpg, pkcs11 és az ssh. Dióhéjban ennyit. Hátha nem kell viszatérnem az i686-os telepítéshez. Előre is köszönöm a válaszokat.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Bár a bejelentkezéssel kapcsolatos problémát nem oldja meg, de ha tisztességesen van beállítva a repository, akkor üres log message-ű commitot úgyse fog engedélyezni. De még ha engedélyez is, akkor is nagyon ajánlott leírni, hogy miért és mit változtatsz.

Először írtam, de akkor sem ment. Most írt az aki a jogot adta. Kérte hogy lépjek be a böngészőn keresztül. Aztán írta hogy mit csináljak. Meg kellett néznem hogy át tudom-e állítani egy bug státuszát. Nem tudtam csinálni semmit sem. Lehet hogy mégsem sikerült jogokat adnia? Csodálkozott hogy nem látszik a nevem a fejlesztők között. Egyelőre nem tudom hogy mi van.

----------------- szerk. -------------------------

Megint írt a kolléga. Úgy néz ki hogy valóban nem kaptam jogokat. Ezért nem megy a commit, meg más sem. Ráadásul az SF-nél változások lesznek, lehet hogy még ez is bele fog kavarni. Holnap talán kiderül.

Legutóbbi betörés után sokat szigorítottak a bejelentés szerint. Ha tudsz bővebb infót hogy most mit csinálnak a hozzáférésekkel, akkor kérlek post-old ide.

Én ez év februárban regisztráltam magam és nem tapasztaltam semmi különöset. A betörésről csak rémlik valami és nem tudom hogy mikor volt. Itt a HUP-on egy 2011 januári esetről találtam említést. (Azelőtt 2006-ról.) Egyébként láttam egy értesítést arról hogy változások lesznek a szolgáltatásokban. Az svn-t is említették ennek kapcsán. Akkor még nem gondoltam hogy közöm lehet hozzá.

"Már az sem tiszta előttem hogy mi a fenének kéri a helyi jelszavamat, "

Szerintem a rendszer mukodese sem tiszta elotted.

Az a problema, hogy ugy checkoutoltal, hogy nem adtad meg a user/passodat a sourceforge SVN-hez (parameterben meg lehet adni). Ezert o default azt feltetelezi, hogy a sourceforge-s userneved megegyezik a helyi userneveddel. Tehat NEM a helyi passodat kerte el, hanem a sourceforge-st, de mivel probal okos lenni a rendszer (esetedben sikertelenul) ezert rogton betippelt egy usernevet (hibasan).

A gnome-keyring-es hibara: nem igy kellene. Vannak autostart-ba berakhato cuccok, amiket engedelyezni kell, mert az xfce alapbol nem inditja el oket. Ezt valahol a beallitasok kozt lehet az automatikusan indulo progik kozt engedelyezni kell az osszes Gnome Keyring-hez kapcsolodo cuccot, ezt a hakkolast meg ki kell venni a fenebe. Ja es nem art egy full restart a gepnek, mert akkor biztos hogy megszunnek letezni.
A mostani dolog hibalehetosege, hogy ha nyitsz 3 terminalt egymas mellett, akkor hulyesegeket fog csinalni a rendszer, pl. 3x indul el a gnome-keyring-daemon ami ellenjavallt. De akkor is ilyenek lesznek, ha kilepsz a terminalbol es kicsit kesobb elinditod.

De meg ez a howto is jobb a mostani megoldasnal, kevesebb a hibalehetoseg.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

"Szerintem a rendszer mukodese sem tiszta elotted."

Ez a commit jog teljesen váratlanul ért. Már jó ideje frissítgetem különféle programok svn-fáit. Az adott project honlapján a segítségek között az anonymous elérés leírása soha sehol nem említette a jelszót és nem is volt szükség rá. Rendesen ment anélkül is. Most kerültem szembe a problémával ráadásul egy új rendszer telepítés után.

"Ezt valahol a beallitasok kozt lehet az automatikusan indulo progik kozt engedelyezni kell az osszes Gnome Keyring-hez kapcsolodo cuccot, ezt a hakkolast meg ki kell venni a fenebe."

Munkamenet és indítás" -> "Speciális" -> "GNOME szolgáltatások indítása belépéskor".
Ez már megvolt amikor először kerestem a hibát. Semmi hatását sem tapasztaltam egy teljes rendszer újraindítás után. Azóta volt két vagy három csomagfrissítés de ezt a funkciót nem próbáltam meg újra bekapcsolni.

"De meg ez a howto is jobb a mostani megoldasnal, kevesebb a hibalehetoseg."
Ezeket nem találtam meg, pedig kutakodtam megoldások után.

Újból kipróbálom a GNOME szolgáltatások elindítását...

------------------ szerk. ---------------------

Úgy néz ki hogy működik ahogyan már az elejétől kellett volna. Tehát a gnome-keyring probléma megszűnt.

------------------ szerk. ---------------------

"Az a problema, hogy ugy checkoutoltal, hogy nem adtad meg a user/passodat a sourceforge SVN-hez (parameterben meg lehet adni)."

svn checkout https://(projectname).(domain)/svn/(projectname)/(DIR) (projectname) --username [type-user-name-here]

Kipróbáltam a project adataival. Nem kéri a jelszót.

Mert nem a checkout van vedve loginnal, hanem a commit.

Eleg egyszeru maga az svn protokoll, a checkout az GET, OPTIONS kereseket enged el, a commit meg PUT-ot (http eseteben). Namarmost, a szerver valszinu ugy van beallitva, hogy aszondja:

     <LimitExcept GET PROPFIND OPTIONS REPORT>
        Require valid-user
     </LimitExcept>

Ez annyit tesz, hogy gyerunk oregem, checkoutolj batran, majd commitnal viszont kellene a jelszavad.

Ha viszon igy checkoutolsz:

svn co --username {type-name-here} --password {type-password-here} https://{projectname}.{domain}/svn/{projectname}/{DIR} 

akkor - bar checkoutkor tovabbra sem erdekli ot a jelszo - commitnal mar tudni fogja, mi a jelszavad.

Meg mindig az a velemenyem, hogy at kellene olvasnod a subversion doksikat. En tapasztalatbol mondom, amit mondok, de csalodnek, ha ezek nem szerepelnenek a voros konyvben, ami amugy lila.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Köszönöm.

--------------- szerk. -------------------

"Mert nem a checkout van vedve loginnal, hanem a commit."

Ezzel tisztában voltam, csak a "keresztkapcsolatról" - (commitnal mar tudni fogja, mi a jelszavad) nem tudtam.

Úgy néz ki hogy a sourceforge.net admisztrátora szerint a jogaim rendben vannak. Ezért megint nekifogtam a küzdelemnek. (Biztosan lesz aki jót röhög a szerencsétlen marhán.)

Egy másik könyvtárban megcsináltam ezt:

svn co --username {type-name-here} --password {type-password-here} https://{projectname}.{domain}/svn/{projectname}/{DIR} 

Mindezt annak ellenére hogy checkout parancsnak nincs --username és --password paramétere. (Hátha hiányos a dokumentáció.) Mindenesetre az svn nem tiltakozott a plusz paraméterek ellen.

Tehát innentől kezdve - hrgy84 kolléga szerint - tudja az adott helyen szükséges felhasználó nevet és a jelszót. Elvégeztem a módosításaimat és dokumentáltam őket a commit.log-ban.
Megnéztem hogy mi az ábra:

$ svn status
A       scripts/tools/device-manager.pl
M       scripts/ChangeLog

Így jó, egyet hozzáadtam, egyet pedig módosítottam.

Ezután kiadtam ezt:

$ svn commit -F ../commit.log

"../commit.log": Ez azért van mert a commit.log-ot a project könyvtárán kívülre tettem.

Mindezek után tojik az egészre. Továbbra is követeli a felhasználó nevet és a jelszót. (A helyi jelszót most nem kéri.) A jelszó beírásakor semmi sem látszik és nem tudom hogy elütöttem-e vagy sem. (A jelszó több mint 20 db véletlenszerű karakter.) Az eredmény siralmas. Megint 'Username' aztán 'Password for'. Rohadjon meg...
Mivel az Xfce alatt már több grafikus svn programmal is próbálkoztam, arra gondoltam hogy talán nem tetszik nekik az Xfce. Egye meg a fene, legyen akkor Gnome. Itt megint előszedem a rapidsvn programot. Megcsinálom amit kell aztán kiválasztom a commit-ot. Jön az ablak: Fölhasználó név és jelszó. Legyen meg a kívánsága, bemásolom őket és enter. Kis idő múlva viszajön az ablak immár üres mezőkkel. Megint név, jelszó. Elég.........

KDE felület. Kinő a szakállam mire betöltődik. Ha KDE akkor legyen kdesvn. Itt is eljutok a jelszót kérő ablakig. Bemásolom hogy ne lehessen hiba.... Megint kéri újból. Szakadna le az ég.

Mi a büdös franc van? Mit nem tudok? Már a tűzfal szabályait is kiürítettem, hátha keresztbe tesz. Semmi eredmény.

"Mindezt annak ellenére hogy checkout parancsnak nincs --username és --password paramétere. (Hátha hiányos a dokumentáció.) Mindenesetre az svn nem tiltakozott a plusz paraméterek ellen."

A --username és --password globális opciók, minden svn parancs megérti őket, ezért a dokumentáció csak egyszer tárgyalja őket, mielőtt rátérne az egyes parancsok bemutatására (bár svn co --help azért kiírja).

Csináltam olyat is hogy egy burokprogrammal adtam meg az svn parancssorát. Ebben szerepelt az --username {...} és a --password {...} is. Mindezt azért hogy ne tudjam elrontani a jelszó begépelését. A magyarázat adja magát az alábbiak szerint:

--password PASSWD

    Specifies the password to use when authenticating against a Subversion server. If
    not provided, or if incorrect, Subversion will prompt you for this information
    as needed.

Akkor valami nagyon nem stimmel. Lehetséges olyan hogy ha a böngészővel jelentkezek be akkor a jelszóban elfogad olyan karaktereket is amit az svn program már nem? (Hozzáteszem hogy a jelszóban nincsenek ékezetes betűk, csak olyan karakterek amiket az angol ábécé ismer.) Esetleg az elfogadott hossz más mint a web-es felületen?

Szakadna rá az ég erre az egészre.
A böngészőn keresztül megváltoztattam a jelszavamat. Eddig 31 karakter hosszú volt és vegyes (kis és nagybetűk, számok, írásjelek) ahogy illik. Most rövidebb és egyszerűbb. A commit csont nélkül lement. Csak annyit változtattam a commit előtt hogy a ~/.subversion/config állományban beállítottam ezt:

store-passwords = yes

A régi jelszóval így sem ment, az újjal viszont működik. Csak arra figyelmeztetett hogy egészségtelen dolog plaintext formában tárolni a jelszót és mutatta hogy hol és mit kell átállítani hogy ez ne így legyen.

Szép kis kálvária volt. Az segített hogy felrémlett bennem, valaki panaszkodott nemrég (talán telefonnal kapcsolatban) hogy a böngészőben jó volt a jelszó de másképpen meg nem. Remélem hogy más már könnyebben boldogul ha ráfut egy ilyen helyzetre.

Ketlem.

A ~/.subversion/auth alatti mappakban vannak neked fajlok?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Fájlok nincsenek. Négy alkönyvtár van és kettőben van fájl:

svn.simple/
        /b78d ... 3002  <- Ennek a kozmetikázott tartalma:
K 15
svn:realmstring
V 69
<https://zzzzz.sourceforge.net:443> SourceForge Subversion area
K 8
username
V 12
yyyyyyyyyyyy
END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

svn.ssl.client-passphrase/ <- üres
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

svn.ssl.server/
        /7b35 ... 2cff  <- Ennek a kozmetikázott tartalma:
K 10
ascii_cert
V 1548
...GS...Ib3DQE...BBQUA...MEAxCzAJBgN...VBAY=
K 8
failures
V 1
4
K 15
svn:realmstring
V 28
https://svn.mediatomb.cc:443
END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

svn.username/              <- üres
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Mivel mar megoldodott, mire en azt beirtam, igy csak jotanacs: tessek eztet mentegetni, itt tarolodnak az svn loginok.

--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Köszönöm, már tegnap is csináltam mentést.