--
You received this message because you are subscribed to the Google Groups "gradle-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gradle-dev+unsubscribe@googlegroups.com.
To post to this group, send email to gradl...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gradle-dev/b384ac43-a776-4f76-97e4-93c7af70afbc%40googlegroups.com.
> > email to gradle-dev+unsubscribe@googlegroups.com.
> > To post to this group, send email to gradl...@googlegroups.com.
> > To view this discussion on the web visit https://groups.google.com/d/
> > msgid/gradle-dev/b384ac43-a776-4f76-97e4-93c7af70afbc%40googlegroups.com
> >
> > .
> >
> > For more options, visit https://groups.google.com/d/optout.
> >
>
> --
> You received this message because you are subscribed to the Google Groups "gradle-dev"
> group.
> To unsubscribe from this group and stop receiving emails from it, send an email to gradle-dev+unsubscribe@googlegroups.com.
> To post to this group, send email to gradl...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/gradle-dev/CAO3EQkyuefuVEfoo7nKzcs5wRa6c%2Bq%3DTjQEZqudp9x2%2BieFXfA%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups "gradle-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gradle-dev+unsubscribe@googlegroups.com.
To post to this group, send email to gradl...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gradle-dev/etPan.58498db6.5763899b.797%40googlemail.com.
Best regards,
Krzysztof
--
You received this message because you are subscribed to the Google Groups "gradle-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gradle-dev+unsubscribe@googlegroups.com.
To post to this group, send email to gradl...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gradle-dev/91da1e8e-549d-4b22-aacb-1c2793f803d7%40googlegroups.com.
Best regards,
Krzysztof
Best regards,
Krzysztof
--
You received this message because you are subscribed to the Google Groups "gradle-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gradle-dev+unsubscribe@googlegroups.com.
To post to this group, send email to gradl...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gradle-dev/f7880f9c-b330-4d8c-a547-3ef6ce6c6c78%40googlegroups.com.
Hello,after giving the scenario some thought, I'm unsure how to proceed. One idea is to add a FOLLOW_OR_PRESERVE symbolic link traversal strategy, that tries to follow symbolic links but preserves them if not possible. The CompositeFileTree class can then be changed to collect preserved symbolic links (when the strategy is FOLLOW) and attempt to resolve them using each child FileTree.Some problems might arise though. I can think of two:1. What if a symbolic link can be resolved by two FileTrees? Possible solution: duplicate the entry, letting DuplicateStrategy apply. Would work for regular files, but would merge directories.2. What if a symbolic link is not relative, but an absolute path? Should an attempt always be made to resolve the link using the file system?Any ideas if this is a valid path?Regards,Janito
On 5 January 2017 at 09:21, Janito Vaqueiro Ferreira Filho <janit...@gmail.com> wrote:
Hello,I think a divergence point I just realized we had is in the following sentence:"Following symlinks or not would rather apply to the Copy task not to extracting archive itself"I was missing the forest for the trees, and was actually only thinking about how the archive should handle it.This is an important insight, and it also leads to different scenarios. For example: consider two archives. If they are extracted to the same directory, then a symlink in the first archive successfully references a file from the second archive. If they are visited separately, the symlink is handled as invalid.Thanks for shining a light on this. I'll take a look from a higher abstraction level to rethink the implementation to support more generic scenarios.Regards,Janito
On Jan 5, 2017 08:22, "Krzysztof Malinowski" <ras...@gmail.com> wrote:
I'm not sure which case you have in mind, but my case was to use Copy task to get files extracted from a TarTree. From what I got from the code (I may be wrong though) when a file from archive is visited it is actually extracted into temporary directory and accessed from there. Current behavior is that an empty file is created instead of symbolic link (in this temporary directory) and I would prefer to have the symbolic link created as is. Following symlinks or not would rather apply to the Copy task not to extracting archive itself; the strategy could be made configurable on a copy spec.
Best regards,
Krzysztof
--
You received this message because you are subscribed to the Google Groups "gradle-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gradle-dev+...@googlegroups.com.