[ https://issues.apache.org/jira/browse/IVY-814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12594054#action_12594054 ]
Ivan "Rambius" Ivanov commented on IVY-814: ------------------------------------------- How to reproduce the bug and test the patch 1) Download and uncompress IVY-814.zip. You should end with two directories - ivycommon and hwlib. 2) Go to hwlib and invoke $ ant all The build should finish with a message that the publish has beed committed to a directory without branch br-1 in it. It uses a filesystem repository at ~/.ivyrepo 3) Download and apply FileSystemResolver.diff to the trunk and rebuild ivy: # Just to prove I am in the trunk $ svn info Path: . URL: https://svn.apache.org/repos/asf/ant/ivy/core/trunk Repository Root: https://svn.apache.org/repos/asf $ patch -p0 < FileSystemResolver.diff patching file src/java/org/apache/ivy/plugins/resolver/FileSystemResolver.java # Rebuild ivy $ ant jar 4) Copy the newly-built build/artifact/jars/ivy.jar to ivycommon/lib, see 1) 5) Clean the cache and the filesystem repository $ rm -rf ~/.ivy2 ~/.ivyrepo 6) Rebuilds hwlib $ ant all Now the publish should be committed to a directory with the branch. > Filesystem resolver does not work with branches > ----------------------------------------------- > > Key: IVY-814 > URL: https://issues.apache.org/jira/browse/IVY-814 > Project: Ivy > Issue Type: Bug > Components: Core > Affects Versions: 2.0.0-beta-1, 2.0.0-beta-2, 2.0-RC1 > Environment: Found on Mac OS X, but should be reproduced everywhere > Reporter: Ivan "Rambius" Ivanov > Attachments: FileSystemResolver.diff, IVY-814.zip > > > I have the following settings file > {noformat} > <ivysettings> > <property name="repository.dir" value="${user.home}/.ivyrepo"/> > <settings defaultResolver="local"/> > <resolvers> > <filesystem name="local"> > <ivy > pattern="${repository.dir}/[organisation]/[module]/[branch]/[revision]/ivy.xml"/> > <artifact > pattern="${repository.dir}/[organisation]/[module]/[branch]/[revision]/[artifact].[ext]"/> > </filesystem> > </resolvers> > <modules> > <module branch="br-1" organisation="claudia.homeunix.net" name="*"/> > </modules> > </ivysettings> > {noformat} > For all project in my organisation I want to use branch br-1. However, after > I configure, download the dependencies, build my project and I attempt to > publish it, I receive the following output: > {noformat} > :: publishing :: claudia.homeunix.net#hwlib > published hwlib to > /Users/rambus/.ivyrepo/claudia.homeunix.net/hwlib/br-1/1.0.part/hwlib.jar > published ivy to > /Users/rambus/.ivyrepo/claudia.homeunix.net/hwlib/br-1/1.0.part/ivy.xml > publish commited: moved > /Users/rambus/.ivyrepo/claudia.homeunix.net/hwlib/1.0.part > to /Users/rambus/.ivyrepo/claudia.homeunix.net/hwlib/1.0 > {noformat} > I use the latest from trunk updated today. > As it can be seen the artifacts are published to the repository, but when > they are committed the branch is skipped from the URL - the directory > /Users/rambus/.ivyrepo/claudia.homeunix.net/hwlib/1.0 does not exist at all. > I traced the reason of this behaviour down to > FileSystemResolver.initTransaction(ModuleRevisionId module). There it > initializes from the artifact pattern defined in the settings file the > transaction's temporary directory and the transaction's destination > directory, respectively the String variables transactionTempDir and > transactionDestDir. The patterns are substituted using > IvyPatternHelper.substitute(String pattern, ModuleRevisionId moduleRevision) > and the problem lies in this method - it does not use the branch. > I am submitting a patch of FileSystemResolver that uses > IvyPatternHelper.substitute(String pattern, String org, String module, String > branch, String revision, String artifact, String type, String ext, String > conf, ArtifactOrigin origin, Map extraAttributes) > as this is the only method that uses the branch. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.