From owner-svn-ports-all@freebsd.org Mon Jan 22 16:42:45 2018 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B7143EC9ABA; Mon, 22 Jan 2018 16:42:45 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 938D983EEF; Mon, 22 Jan 2018 16:42:45 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DC44C1CCA3; Mon, 22 Jan 2018 16:42:44 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0MGgio9035993; Mon, 22 Jan 2018 16:42:44 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0MGgikW035992; Mon, 22 Jan 2018 16:42:44 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201801221642.w0MGgikW035992@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 22 Jan 2018 16:42:44 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r459675 - head/Mk/Scripts X-SVN-Group: ports-head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/Mk/Scripts X-SVN-Commit-Revision: 459675 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Jan 2018 16:42:45 -0000 Author: kevans (src committer) Date: Mon Jan 22 16:42:44 2018 New Revision: 459675 URL: https://svnweb.freebsd.org/changeset/ports/459675 Log: `make makepatch`: Don't replace patches with only metadata changes Rather than replacing patches that are effectively the same but with different timestamps, drop the new version and let the old version remain in place. This yields a `make makepatch` that doesn't try and produce unwanted churn. Approved by: portmgr (mat) Differential Revision: https://reviews.freebsd.org/D13960 Modified: head/Mk/Scripts/smart_makepatch.sh Modified: head/Mk/Scripts/smart_makepatch.sh ============================================================================== --- head/Mk/Scripts/smart_makepatch.sh Mon Jan 22 16:40:46 2018 (r459674) +++ head/Mk/Scripts/smart_makepatch.sh Mon Jan 22 16:42:44 2018 (r459675) @@ -230,6 +230,38 @@ stage_patches() { done } +compare_common_patches() { + [ -z "${old_patch_list}" ] && return + local archive_patch_list + local P + local ppatch + local ppatch_stripped + local cpatch + local cpatch_stripped + for P in ${old_patch_list}; do + if [ -e ${DESTDIR}/${P} ]; then + ppatch=${PATCHDIR}/${P} + cpatch=${DESTDIR}/${P} + ppatch_stripped=$(mktemp -t portpatch) + cpatch_stripped=$(mktemp -t portpatch) + egrep -v -- '--- .+ UTC$' ${ppatch} \ + > ${ppatch_stripped} + egrep -v -- '--- .+ UTC$' ${cpatch} \ + > ${cpatch_stripped} + # Don't replace patches with only metadata changes + if ! cmp -s ${ppatch_stripped} ${cpatch_stripped}; then + archive_patch_list="${archive_patch_list} ${P}" + else + echo "${P} only contains metadata changes; not replacing" + rm ${cpatch} + fi + rm ${ppatch_stripped} + rm ${cpatch_stripped} + fi + done + old_patch_list=${archive_patch_list} +} + conserve_old_patches() { mkdir -p ${SAVEDIR} rm -f ${SAVEDIR}/* @@ -257,5 +289,6 @@ map_existing_patches extract_comments regenerate_patches stage_patches +compare_common_patches conserve_old_patches install_regenerated_patches