Hi, i see that there is a problem when i try to use may layman tree, name "Ge@@ru" with layman-1.2.3. Probably, problem is not on layman but on subversion python module. Hereinafter, error message: layman -s Ge@@ru * Running command "/usr/bin/svn up "/usr/portage/local/layman/Ge@@ru""... Skipped '/usr/portage/local/layman/Ge@' * * Success: * ------ * * Successfully synchronized overlay "Ge@@ru". Seems that string with "@@" isn't managed correctly with layman-1.2.3 and subversion-1.6.6. While, if i try to use layman-1.2.3 with subversion-1.6.4 all works fine: layman -s Ge@@ru * Running command "/usr/bin/svn up "/usr/portage/local/layman/Ge@@ru""... At revision 125. * * Success: * ------ * * Successfully synchronized overlay "Ge@@ru". I don't know if problem is relative to a bug with subversion module or a wrong use of subversion python module version 1.6.6 on layman module. However, i try to recompile layman-1.2.3 to see if problem it's only for a mismatch of library. Reproducible: Always
Still after recompile layman package problem is visible.
Does the svn command work when you run it manually with subversion 1.6.6?
Yes it's works. svn co https://overlay.geaaru.homelinux.net:8080/svn/geaaru_overlay you can try... Name "Ge@@ru" is only relative to layman repos. Ge@@ru
Ok since svn command line works ok on working dirs with '@@' (I just verified that as well), it does seem like a problem with layman interfacing to subversion-1.6.6. Assigning to layman maintainer.
To be sure: the command /usr/bin/svn up "/usr/portage/local/layman/Ge@@ru" works well for you on a shell?
Doesn't work yet with version 1.2.4. #$ layman -s Ge@@ru * Running command "/usr/bin/svn up "/usr/portage/local/layman/Ge@@ru""... Skipped '/usr/portage/local/layman/Ge@' * * Success: * ------ * * Successfully synchronized overlay "Ge@@ru". # layman --version 1.2.4 Problem is relative to python module... svn command works fine.
Hi, if you try to call $# layman -d Ge@@ru && layman -a Ge@@ru checkout is done correctly... problem is only on update.
The last '@' is peg revision operator for Subversion. For safety, URLs and paths should be suffixed with '@'. Examples: /usr/bin/svn up "/usr/portage/local/layman/name@" /usr/bin/svn up "/usr/portage/local/layman/Ge@@ru@" http://svnbook.red-bean.com/nightly/en/svn.advanced.pegrevs.html contains: "The perceptive reader is probably wondering at this point whether the peg revision syntax causes problems for working copy paths or URLs that actually have at signs in them. After all, how does svn know whether news@11 is the name of a directory in my tree or just a syntax for “revision 11 of news”? Thankfully, while svn will always assume the latter, there is a trivial workaround. You need only append an at sign to the end of the path, such as news@11@. svn cares only about the last at sign in the argument, and it is not considered illegal to omit a literal peg revision specifier after that at sign. This workaround even applies to paths that end in an at sign—you would use filename@@ to talk about a file named filename@."
Thanks, Arfrever - very helpful. With that I've been able to reproduce the problem on a shell now: ================================================ # svnadmin create foo\@\@store # svn co file://$PWD/foo\@\@store foo\@\@work svn: Try 'svn help' for more info svn: Syntax error parsing revision 'store' # svn co file://$PWD/foo\@\@store\@ foo\@\@work Checked out revision 0. # svn up foo\@\@work Skipped 'foo@' # svn up foo\@\@work\@ At revision 0. ================================================
app-portage/layman-1.2.4-r1 now comes with a patch for it. Please give it a try and re-open this bug if needed. Thanks for reporting!
Ok, with layman-1.2.4-r1 works fine. Thank you very much for support. Ge@@ru