Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 295018

Summary: app-portage/layman doesn't use @ suffix for paths of Subversion working copies
Product: Gentoo Linux Reporter: Geaaru <geaaru>
Component: [OLD] DevelopmentAssignee: Sebastian Pipping <sping>
Status: RESOLVED FIXED    
Severity: normal CC: arfrever
Priority: High    
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
Package list:
Runtime testing required: ---

Description Geaaru 2009-11-29 08:32:56 UTC
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
Comment 1 Geaaru 2009-11-29 08:46:34 UTC
Still after recompile layman package problem is visible.
Comment 2 Wormo (RETIRED) gentoo-dev 2009-11-30 01:19:00 UTC
Does the svn command work when you run it manually with subversion 1.6.6?
Comment 3 Geaaru 2009-11-30 07:58:45 UTC
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
Comment 4 Wormo (RETIRED) gentoo-dev 2009-12-02 07:31:32 UTC
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.
Comment 5 Sebastian Pipping gentoo-dev 2009-12-29 16:21:58 UTC
To be sure: the command

/usr/bin/svn up "/usr/portage/local/layman/Ge@@ru"

works well for you on a shell?
Comment 6 Geaaru 2009-12-29 18:19:09 UTC
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.
Comment 7 Geaaru 2009-12-30 09:59:18 UTC
Hi, if you try to call 

$# layman -d Ge@@ru && layman -a Ge@@ru

checkout is done correctly... problem is only on update.
Comment 8 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2009-12-31 23:31:41 UTC
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@."
Comment 9 Sebastian Pipping gentoo-dev 2010-01-01 00:24:59 UTC
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.
================================================
Comment 10 Sebastian Pipping gentoo-dev 2010-01-01 01:03:00 UTC
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!
Comment 11 Geaaru 2010-01-02 10:15:10 UTC
Ok, with layman-1.2.4-r1 works fine.
Thank you very much for support.

Ge@@ru