Skip to content

Filenames not added to indexes #82

Closed
@piranna

Description

@piranna

When using applyPatches() with https://raw.githubusercontent.com/GregorR/musl-cross/master/patches/gcc-4.7.3-musl.diff I get the next result on loadFile callback:

{ hunks: 
   [ { oldStart: 264,
       oldLines: 6,
       newStart: 264,
       newLines: 13,
       lines: [Object] },
     { oldStart: 272,
       oldLines: 6,
       newStart: 279,
       newLines: 9,
       lines: [Object] },
     { oldStart: 522,
       oldLines: 7,
       newStart: 522,
       newLines: 7,
       lines: [Object] },
     { oldStart: 625,
       oldLines: 6,
       newStart: 625,
       newLines: 9,
       lines: [Object] },
     { oldStart: 33,
       oldLines: 10,
       newStart: 33,
       newLines: 12,
       lines: [Object] },
     { oldStart: 54,
       oldLines: 18,
       newStart: 56,
       newLines: 21,
       lines: [Object] },
     { oldStart: 85,
       oldLines: 21,
       newStart: 90,
       newLines: 21,
       lines: [Object] },
     { oldStart: 108,
       oldLines: 3,
       newStart: 113,
       newLines: 74,
       lines: [Object] },
     { oldStart: 30,
       oldLines: 3,
       newStart: 30,
       newLines: 7,
       lines: [Object] },
     { oldStart: 184,
       oldLines: 6,
       newStart: 184,
       newLines: 7,
       lines: [Object] },
     { oldStart: 200,
       oldLines: 6,
       newStart: 201,
       newLines: 7,
       lines: [Object] },
     { oldStart: 215,
       oldLines: 6,
       newStart: 217,
       newLines: 7,
       lines: [Object] },
     { oldStart: 28,
       oldLines: 6,
       newStart: 28,
       newLines: 8,
       lines: [Object] },
     { oldStart: 47,
       oldLines: 28,
       newStart: 47,
       newLines: 13,
       lines: [Object] },
     { oldStart: 26736,
       oldLines: 6,
       newStart: 26736,
       newLines: 9,
       lines: [Object] },
     { oldStart: 26769,
       oldLines: 6,
       newStart: 26772,
       newLines: 7,
       lines: [Object] },
     { oldStart: 26851,
       oldLines: 6,
       newStart: 26855,
       newLines: 9,
       lines: [Object] },
     { oldStart: 4719,
       oldLines: 6,
       newStart: 4719,
       newLines: 9,
       lines: [Object] },
     { oldStart: 4752,
       oldLines: 6,
       newStart: 4755,
       newLines: 7,
       lines: [Object] },
     { oldStart: 4817,
       oldLines: 6,
       newStart: 4821,
       newLines: 9,
       lines: [Object] },
     { oldStart: 19,
       oldLines: 7,
       newStart: 19,
       newLines: 8,
       lines: [Object] },
     { oldStart: 4,
       oldLines: 7,
       newStart: 4,
       newLines: 7,
       lines: [Object] },
     { oldStart: 125,
       oldLines: 6,
       newStart: 125,
       newLines: 7,
       lines: [Object] },
     { oldStart: 251,
       oldLines: 17,
       newStart: 252,
       newLines: 13,
       lines: [Object] },
     { oldStart: 295,
       oldLines: 7,
       newStart: 292,
       newLines: 7,
       lines: [Object] },
     { oldStart: 304,
       oldLines: 7,
       newStart: 301,
       newLines: 7,
       lines: [Object] },
     { oldStart: 361,
       oldLines: 7,
       newStart: 358,
       newLines: 6,
       lines: [Object] },
     { oldStart: 370,
       oldLines: 10,
       newStart: 366,
       newLines: 8,
       lines: [Object] },
     { oldStart: 407,
       oldLines: 7,
       newStart: 401,
       newLines: 7,
       lines: [Object] },
     { oldStart: 415,
       oldLines: 11,
       newStart: 409,
       newLines: 10,
       lines: [Object] },
     { oldStart: 820,
       oldLines: 10,
       newStart: 813,
       newLines: 6,
       lines: [Object] },
     { oldStart: 1132,
       oldLines: 8,
       newStart: 1121,
       newLines: 13,
       lines: [Object] },
     { oldStart: 1346,
       oldLines: 6,
       newStart: 1340,
       newLines: 7,
       lines: [Object] },
     { oldStart: 21,
       oldLines: 3,
       newStart: 21,
       newLines: 4,
       lines: [Object] },
     { oldStart: 30,
       oldLines: 3,
       newStart: 30,
       newLines: 7,
       lines: [Object] },
     { oldStart: 25,
       oldLines: 16,
       newStart: 25,
       newLines: 19,
       lines: [Object] },
     { oldStart: 101,
       oldLines: 5,
       newStart: 104,
       newLines: 6,
       lines: [Object] },
     { oldStart: 64,
       oldLines: 6,
       newStart: 64,
       newLines: 23,
       lines: [Object] },
     { oldStart: 40,
       oldLines: 7,
       newStart: 40,
       newLines: 11,
       lines: [Object] },
     { oldStart: 18,
       oldLines: 3,
       newStart: 18,
       newLines: 10,
       lines: [Object] },
     { oldStart: 2112,
       oldLines: 6,
       newStart: 2112,
       newLines: 10,
       lines: [Object] },
     { oldStart: 364,
       oldLines: 17,
       newStart: 364,
       newLines: 21,
       lines: [Object] },
     { oldStart: 18,
       oldLines: 3,
       newStart: 18,
       newLines: 4,
       lines: [Object] },
     { oldStart: 551,
       oldLines: 6,
       newStart: 551,
       newLines: 9,
       lines: [Object] },
     { oldStart: 611,
       oldLines: 7,
       newStart: 614,
       newLines: 8,
       lines: [Object] },
     { oldStart: 789,
       oldLines: 15,
       newStart: 793,
       newLines: 18,
       lines: [Object] },
     { oldStart: 923,
       oldLines: 6,
       newStart: 930,
       newLines: 7,
       lines: [Object] } ] }

As you can see, the file names on the patch are not added anywhere, and in fact the whole patch is considered to be for only one (anonimous) index. I think the problem is related to be using Index: as identifier of each one of the files, while each file is being separated with a diff line:

# HG changeset patch
# Parent f50bb54f331f73405131a30b4f353cfda1c70304
Use the generic implementation of libstdc++ primitives when we're on musl, not the glibc one.

diff -r f50bb54f331f libstdc++-v3/configure.host
--- a/libstdc++-v3/configure.host   Fri Mar 29 16:38:52 2013 -0400
+++ b/libstdc++-v3/configure.host   Fri Mar 29 16:41:10 2013 -0400
@@ -264,6 +264,13 @@
     os_include_dir="os/bsd/freebsd"
     ;;
   gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
+    # check for musl by target
+    case "${host_os}" in
+      *-musl*)
+        os_include_dir="os/generic"
+        ;;
+      *)
+
     if [ "$uclibc" = "yes" ]; then
       os_include_dir="os/uclibc"
     elif [ "$bionic" = "yes" ]; then
@@ -272,6 +279,9 @@
       os_include_dir="os/gnu-linux"
     fi
     ;;
+
+    esac
+    ;;
   hpux*)
     os_include_dir="os/hpux"
     ;;

I believe it would be as simple as allowing to use not only Index: as identifier but also diff too.

Also, I think that instead of ignoring the headers when no index is found, it would be good to add them although they are partial, or if it's done this way to consume the patch lines, maybe the var i would be increased directly without calling parseFileHeader() with an empty object...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions