Tags: bluekeyes/go-gitdiff
Tags
Fix parsing for file names with spaces (#24) Git does not quote file names containing spaces when generating header lines. However, I misread the Git implementation and thought it used spaces as a name terminator by default, implying that names with spaces would be quoted. Rewrite the the name parsing code to better match Git. Specifically, when both names in a header are not quoted, test all splits to see if any of them produce two equal names. Also account for spaces in file names when parsing file metadata. Finally, allow trailing spaces on file names, which seem to be allowed by Git (although this sounds like a terrible idea to me.)
Remove "appendix" information from commit message (#19) ...when parsing emails, similar to `git am`. Add a new field, `BodyAppendix` to PatchHeader. Modify `scanMessageBody` to accept a boolean argument saying whether to separate out the appendix or not. Do this by keeping two string builders, and having it switch to the appendix builder when it finds a `---` line. Handling the newlines at the end as expected requires moving things around a bit. First, we were trimming space from the line once to decide whether the line was empty, and then trimming space again if we determined it wasn't empty. This only needs to be done once. Then, do all the trimming (both of whitespace and the prefix) first, before deciding what to do about the line. Request BodyAppendix separately when parsing a mail, but not a commit message. Add some tests to verify that it works as expected. Signed-off-by: George Dunlap <george.dunlap@citrix.com> Co-authored-by: George Dunlap <george.dunlap@citrix.com>
Make patch date parsing simpler and stricter (#15) Removed the distinction between parsed and raw dates and simply return an error for unsupported date formats. Arbitrary date support was probably a premature optimization and would be better supported by a method to register custom date parsing functions. Simple time.Time fields make the structure easier to use and mean that a zero value always indicates the patch did not include a date.
PreviousNext