Open SevHub opened 2 years ago
I have the same problem - the reason seems to be that the encoded filenames are not harmonized in anyway. Both where they are added to the zip file and to the JSON data. I am looking into maybe adding a function for harmonizing the filenames for all platforms. I think it makes sense that the path's are all using UNIX style /
.
I poke at it a bit and try to get it to work.
I have just been bitten by this issue too, cf https://github.com/Ericsson/codechecker/issues/3814 If any of you have an idea of something I could try, I'd be happy to !
It seems spot-rewriting all the paths to be POSIX-y when assembling the ZIP (and also changing the contents of the plists) might be a viable solution. It is bound to get ugly in presentation, however: c:/foo/bar
If we want to get extra pedantic here, we could do what Wine and Lutris are doing and rewrite C:\
as drive_c
, and only then normalise the paths replacing \
with /
. Extra care needs to be taken for path components that contain spaces or special characters as they need to be escaped on the POSIX side of things.
~/Games $ ls -alh ./dosdevices
c: -> ../drive_c
d: -> ../drive_d
z: -> /
The only big problem site I can envision with this is the "diff a server's contents against a local report directory"...
that would be great. note that you need to replace the c:
part of the path with something like drive_c
, because otherwise ZipFile
just removes the drive prefix.
We have encountered this issue as our last main blocker to have CodeChecker running on Windows. Is there a suggested fix for this at this stage?
Hello, I am trying to use CodeChecker store to send the Reports to an server but that does not work as expected:
I do the analysis on a Windows 10 PC with clang-tidy. The clang tidy report is converted with the converter tool (
report-converter
) of this project intoplist
files. The plist files contain references to the source files with the whole path, e.g.:Then I upload the reports to a Ubuntu machine running a CodeChecker server, by using the command
CodeChecker store
. The process looks good on the client side, no errors are reported. On the server a run is created, but it is basically empty, containing no information. In the server log I find a lot of these Errors:and later many of these errors appear:
I suspect there is something wrong with the file path prefixes, because the full path of the file from the Windows system appears in the logs of the linux systems. I tried using the
--trim-path-prefix
option for the store command with different variants of the path prefixes. However, it seems that this changes nothing on the server side, the same errors appear every time.Is the
--trim-path-prefix
even working? Am I doing something wrong?Version infos: CodeChecker Version on Client: Git tag information | 6.19.1 CodeChecker Version on Server: Git tag information | 6.19.1