[ 
https://jira.codehaus.org/browse/SCM-772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary Peskin updated SCM-772:
----------------------------

    Attachment: maven-scm.patch

I've attached a proposed patch file.  In getting further into this issue, I 
decided against using the "{{-z}}" option because it does not have each file on 
a separate line and switching to using it would cause too big of a change in 
the flow that drives the {{GitStatusConsumer.consumeLine}} method which is 
oriented towards a _line_ of output. 

Instead, I detect when the "{{--porcelain}}" output is surrounded by quotation 
marks and I dequote it in a manner consistent with the way that Git quoted it.

The other main change was to get away from treating the file name as a URI 
since it is not a URI.  A filename can contain characters that are not allowed 
in a URI and trying to treat a filename as a relative URI is not a good fit.

Please review this and let me know what you think and if additional revisions 
are required.

Thanks.

> GitStatusConsumer does not properly handle quoted paths output from 
> GitStatusCommand
> ------------------------------------------------------------------------------------
>
>                 Key: SCM-772
>                 URL: https://jira.codehaus.org/browse/SCM-772
>             Project: Maven SCM
>          Issue Type: Bug
>          Components: maven-scm-provider-git
>    Affects Versions: 1.9, 1.9.1
>         Environment: All
>            Reporter: Gary Peskin
>         Attachments: maven-scm.patch
>
>
> We have several files in our repository with spaces in the file name.  Even 
> with --porcelain specified, the filename appears with quotes around it.  Here 
> is an example:
> {noformat}
>  M src/main/webapp/admin-index.html
>  M src/main/webapp/adminhelp/en_US/css/AboutThisBook.css
>  M "src/main/webapp/adminhelp/en_US/css/Appendix A Role Manager Defs.css"
> {noformat}
> This messes up the regular expression parsing in GitStatusConsumer.
> A better approach would be to modify GitStatusCommand to specify the 
> {{"\-z"}} option instead of the {{"--porcelain"}} option.  This option is 
> specifically designed to generate machine parseable output from the git 
> status command.  This would necessitate changes to GitStatusConsumer but 
> would allow the elimination of all of the regex parsing in GitStatusConsumer 
> making for a more reliable solution.
> If you'd like, please let me know and I can work up a patch for the changes 
> to these two classes and send it on.



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)

Reply via email to