Søren Straarup brought this up today. FreshSource does not link to the right place in CVSWEB for commits to CVSROOT. For example, look at this commit. If you click on the diff link, it goes to the wrong place. It goes to
http://www.freebsd.org/cgi/cvsweb.cgi/CVSROOT/modules.diff?r1=1.18319&r2=1.18318
instead of
http://www.freebsd.org/cgi/cvsweb.cgi/CVSROOT-ports/modules.diff?r1=1.18319&r2=1.18318
After discussions with Simon Nielsen and is Søren Straarup, we found a few fine examples:
- port commit – XML
- src commit – XML
- doc commit – XML
The main issue, as I see it now, is to associate the given commit with a particular repository. In the beginning, FreshPorts processed only commits from the ports repository. Then, it started to process all commits, but did not differentiate between the various repository.
The problem is compounted by the cvs-all emails which do not differentiate between the various CVSROOT files. The full path is one most file names, but not on CVSROOT.
What we may be able to do is process the line “FreeBSD .* repository” and use that. It would require a change to the XML template, and some significant processing changes within FreshPorts to grab that value.
This is where the real thinking starts. :) This seems like an AWFUL lot of work just to get the path to the CVSROOT file correct. Perhaps I should just amend the path of such files as they go into the XML and not mess around with the XML otherwise.
What do you suggest?
I’m thinking that this code can grab the repo name from the cvs-all email. Any suggested changes?