[ 
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.

Reply via email to