Opened 10 years ago
Closed 7 months ago
#45353 closed defect (duplicate)
git and mercurial fetching target directory
Reported by: | anddam (Andrea D'Amore) | Owned by: | macports-dev@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | base | Version: | 2.3.1 |
Keywords: | Cc: | ||
Port: |
Description
Portfetch supports five types of VCS: bazaar, CVS, subversion, mercurial and git. Fetch procedures portfetch::gitfetch and portfetch::hgfetch clone the remote repository into a directory whose name depends on $worksrcpath
This means that if a portfile author sets worksrcdir to ${distname}/src/ because the repository contains its source files in a subdirectory called src/, then the repository itself gets cloned as ${distname}/src and the actual source files will be stored at ${distname}/src/src.
This isn't the expected behavior.
I'm patching portfetch::gitfetch and portfetch::hgfetch so they'll clone the repository to what would have been the default worksrcdir. This way setting worksrcdir to ${distname}/src correctly execute the phases in ${worksrcpath}.
This can potentially break ports with augmented phases that are already coping with the previous wrong behavior, I'll do a check in dports tree to see if there are any of those before committing. Meanwhile any comment is appreciated.
Attachments (1)
Change History (3)
Changed 10 years ago by anddam (Andrea D'Amore)
Attachment: | patch-src-port1_0-portfetch_tcl.diff added |
---|
comment:1 Changed 10 years ago by larryv (Lawrence Velázquez)
comment:2 Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | base removed |
---|---|
Resolution: | → duplicate |
Status: | new → closed |
Summary: | base - git and mercurial fetching target directory → git and mercurial fetching target directory |
Duplicate of #29093.
Just a heads up that my implementation of #16373 will soon render this particular issue moot.