It seems like a bug in SvnScmProviderRepository.parseURL()

On windows the url passed in is a file url file://X:/path/to/directory
The protocol is set to file:// and then url gets translated into
protocol + urlpath which results in the original
file://X:/path/to/directory which the svn command line does not like.

[INFO] Executing: cmd.exe /X /C "svn --non-interactive info
file://X:/path/to/directory/pom.xml"
WARNING] SCM Info failed:[output] svn: Unable to open an ra_local
session to URL
svn: Unable to open repository...

I think if the path protocol is file:// then the provider should not
re-add it onto the url?

What do you think - if it did this I think we should be able to work
from local paths?

(svn, version 1.4.4 (r25188) CollabNet.)

/James

> -----Original Message-----
> From: Dan Tran [mailto:dant...@gmail.com] 
> Sent: 09 January 2009 11:31
> To: Maven Developers List
> Subject: Re: Maven SCM - SVN provider
> 
> You are right, and i am not really understand the rational 
> behind why the command works directory with remote url rather 
> local file.
> 
> so you may need to go ehead with your own implemtation.
> 
> I also filed SCM-433 to allow me at least run "svn info" on a 
> local directory, so that i can get rid of buildnumber 
> plugin's SvnInfoCommand implementation
> 
> -Dan
> 
> On Fri, Jan 9, 2009 at 3:17 AM, Nord, James <jn...@nds.com> wrote:
> > The SVN provider does support the info command - it just 
> seems to only 
> > work on remote repository URLs as the maven scm rejects the 
> local path 
> > as a repo even though the code inside the svn provider can 
> deal with it.
> >
> > The Build-number still sufferes the same issues as it needs an 
> > ScmRepository which scm thinks is invalid.
> >
> > Although the code to parse the scm output doen't look to bad - it 
> > would appear I need to use this and forget about using the 
> scm /svn provider?
> >
> > /James
> >
> >> -----Original Message-----
> >> From: Dan Tran [mailto:dant...@gmail.com]
> >> Sent: 08 January 2009 19:16
> >> To: Maven Developers List
> >> Subject: Re: Maven SCM - SVN provider
> >>
> >> sorry, it should be buildnumber-maven-plugin
> >>
> >> On Thu, Jan 8, 2009 at 10:51 AM, Dan Tran 
> <dant...@gmail.com> wrote:
> >> > take a look at buildhelper-maven-plugin, it has code
> >> dealing with svn
> >> > info output
> >> >
> >> > BTW, perhaps we should ask svn provider to support svn 
> info command.
> >> > file a JIRA is a good start
> >> >
> >> > -D
> >> >
> >> > On Thu, Jan 8, 2009 at 10:42 AM, Nord, James 
> <jn...@nds.com> wrote:
> >> >> Hi all,
> >> >>
> >> >> I've been trying to write an enforcer plugin that will
> >> validate the
> >> >> SCM information contained in a POM actually reflects the actual 
> >> >> repository location.  I'm only concerned with SVN.
> >> >>
> >> >> Basically I am trying to do is a "svn info
> >> project.getBaseDir()" and
> >> >> compare the repository url that comes back with the one 
> defined in 
> >> >> the SCM tag.
> >> >>
> >> >> I've been failing misserably as using I can not construct a 
> >> >> SCMProviderRepository with the File argument. even 
> though the svn 
> >> >> provider supports getting the url from a file 
> location[1] it just 
> >> >> ends up throwing a null pointer exception[2].
> >> >>
> >> >> I have managed to get the following code to work - but 
> it doesn't 
> >> >> work out where the repo is from the .svn files.  How can I
> >> adapt it
> >> >> to do so it will work with the local file location not 
> the remote
> >> >> location- I'm tearing my hair out!
> >> >>
> >> >>
> >> >>        String devSCM = 
> project.getScm().getDeveloperConnection();
> >> >>        String devSVN = devSCM.replaceFirst("scm:svn:", "");
> >> >>        ScmRepository scmRepo = 
> scmManger.makeScmRepository(devSCM);
> >> >>        log.warn("Using " + base + " as the base directory");
> >> >>        ScmProvider provider = 
> scmManger.getProviderByUrl(devSCM);
> >> >>        if (provider instanceof AbstractSvnScmProvider) {
> >> >>             AbstractSvnScmProvider svnProvider = 
> >> >> (AbstractSvnScmProvider)provider;
> >> >>            // following returns null and a n.p.e is 
> later thrown 
> >> >> by
> >> >> AbstractCommand.execute(AbstractCommand.java:49)
> >> >>            //ScmProviderRepository providerRepo = 
> >> >> svnProvider.makeProviderScmRepository(project.getBaseDir());
> >> >>             ScmProviderRepository providerRepo = 
> >> >> svnProvider.makeProviderScmRepository(devSVN, '\u0000');
> >> >>             ScmFileSet fileSet = new
> >> ScmFileSet(project.getBasedir(),
> >> >> "pom.xml");
> >> >>            SvnInfoScmResult infoResult = 
> >> >> svnProvider.info(providerRepo, fileSet, null);
> >> >>            if (infoResult.isSuccess()) {
> >> >>                ....
> >> >>            }
> >> >>        }
> >> >>
> >> >>
> >> >>
> >> >> [1]
> >> >>
> >> 
> http://maven.apache.org/scm/xref/org/apache/maven/scm/provider/svn/Ab
> >> >> str
> >> >> actSvnScmProvider.html#110
> >> >>
> >> >> Regards,
> >> >>
> >> >>    /James
> >> >>
> >> >>
> >> >
> >>
> >> 
> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For 
> >> additional commands, e-mail: dev-h...@maven.apache.org
> >>
> >>
> >
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For 
> > additional commands, e-mail: dev-h...@maven.apache.org
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For 
> additional commands, e-mail: dev-h...@maven.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to