FreshPorts status update 2020.07.21
Dan Langille
dan at langille.org
Wed Jul 22 21:05:24 UTC 2020
On Wed, Jul 22, 2020, at 1:17 PM, Ulrich Spörlein wrote:
> On Tue, 2020-07-21 at 20:02:48 -0400, Dan Langille wrote:
> > Hello,
> >
> > At present, devgit.FreshPorts.org is keeping up with all port commits.
> >
> > Processing is initiated manually. I run a script to set some flags. This could be run by a commit-hook pulling a URL. FreshPorts can do the rest. I welcome discussion on how to do this.
> >
> > I'd rather keep the URL private, for less abuse-potential. We could add in some auth or ACL. Invoking the URL will get FreshPorts to query the FreeBSD repo.
> >
> >
> > I've posted the following issue at https://github.com/FreshPorts/git_proc_commit/issues/23
> >
> > ###
> > I am having trouble detecting a port delete or copy. Under subversion, as seen at https://svnweb.freebsd.org/ports?view=revision&revision=542761, you get a deleted notice.
> >
> > In the email (https://docs.freebsd.org/cgi/getmsg.cgi?fetch=1326960+0+current/svn-ports-head) this turns up as: head/net/kdav/ under Deleted.
> >
> > In git, it does not, from what I can tell. I can find:
> >
> > $ grep net/kda 2020.07.21.17.15.38.000000.d016c9140a6e4b7627d26485926a659f2686185d.xml
> > - net/kdav became a framework and was therefore moved to net/kf5-kdav.
> > <FILE Action="Delete" Path="net/kdav/distinfo"/>
> > <FILE Action="Rename" Path="net/kdav/Makefile" Destination="net/kf5-kdav/Makefile"/>
> > <FILE Action="Rename" Path="net/kdav/pkg-plist" Destination="net/kf5-kdav/pkg-plist"/>
> >
> > (Sorry, the above is the XML generated by https://github.com/FreshPorts/git_proc_commit/blob/master/git-to-freshports/git-to-freshports-xml.py)
> >
> > Knowing that a file has been deleted within a commit is vital. Detecting it from within the commit log is the optimal approach. Does anything have a suggestion here?
> >
> > I can see that the Makefile & pkg-plist have been renamed, and distinfo has been deleted. Perhaps it's just a matter of changing my approach. However, this does not yet sound like a solid plan.
> >
> > I welcome suggestions for something I have missed in the git interface please.
>
> I don't know how stable these interfaces and outputs are in git over
> time, but you can get the full diff with git log -p or git show -p and
> could feed that through, say diffstat.
>
> A better approach might be to use --compact-summary (see the git log
> manpage for some possible outputs and variants of it).
>
> (I'm using --format here to suppress printing of the commit message,
> which might mess up parsing the output we're actually interested in)
>
> $ git show --compact-summary --format=%h
> 44b2876caf1f56d6e940a329a2f8e06724fd621f
> 44b2876caf1f
>
> MOVED | 1 +
> devel/Makefile | 1 -
> devel/py-trio/Makefile (gone) | 38 --------------------------------------
> devel/py-trio/distinfo (gone) | 3 ---
> devel/py-trio/pkg-descr (gone) | 13 -------------
> 5 files changed, 1 insertion(+), 55 deletions(-)
>
> Probably even better is this:
> $ git show --summary --format=%h 44b2876caf1f56d6e940a329a2f8e06724fd621f
> 44b2876caf1f
>
> delete mode 100644 devel/py-trio/Makefile
> delete mode 100644 devel/py-trio/distinfo
> delete mode 100644 devel/py-trio/pkg-descr
>
> (why does this drop the changes to MOVED and devel/Makefile though? The
> manpage entry is cryptic enough:
> Output a condensed summary of extended header information such as
> creations, renames and mode changes.
> )
I think the rule so far is:
* if cat/port/Makefile is deleted or renamed, that port has been deleted
I could reproduce what you did here, with the beta repo:
[dan at pro02:~/src/freebsd-ports-beta] $ git show --summary --format=%h 44b2876caf1f56d6e940a329a2f8e06724fd621f
44b2876caf1f
delete mode 100644 devel/py-trio/Makefile
delete mode 100644 devel/py-trio/distinfo
delete mode 100644 devel/py-trio/pkg-descr
[dan at pro02:~/src/freebsd-ports-beta] $
Now, moving over to Github repo with the comment I mentioned above:
[dan at pro02:~/src/freebsd-ports] $ git show --summary --format=%h d016c9140a6e4b7627d26485926a659f2686185d
d016c9140a6e
delete mode 100644 devel/kf5-kcrash/files/patch-src_kcrash.cpp
delete mode 100644 devel/kf5-solid/files/patch-CMakeLists.txt
delete mode 100644 net/kdav/distinfo
rename net/{kdav => kf5-kdav}/Makefile (82%)
create mode 100644 net/kf5-kdav/distinfo
rename net/{kdav => kf5-kdav}/pkg-plist (92%)
[dan at pro02:~/src/freebsd-ports] $
That is very similar to what Adriaan de Groot showed me via https://docs.freebsd.org/cgi/getmsg.cgi?fetch=2171670+0+current/svn-ports-head
###
git tells me:
delete mode 100644 net/kdav/distinfo
rename net/{kdav => kf5-kdav}/Makefile (82%)
create mode 100644 net/kf5-kdav/distinfo
rename net/{kdav => kf5-kdav}/pkg-plist (92%)
###
That output 'rename net/{kdav => kf5-kdav}/Makefile' may proof non-trivial to parse.
I think so far the above rule is the best option.
Thank you.
--
Dan Langille
dan at langille.org
More information about the freebsd-git
mailing list