[PATCH 2/3] qf: fix wrong grep to remove unused patches

Rodrigo Vivi rodrigo.vivi at intel.com
Wed Feb 21 21:57:12 UTC 2018


On Tue, Feb 20, 2018 at 05:02:57PM -0800, Lucas De Marchi wrote:
> We would leave a trailing slash which causes patches on the git-root
> directory to be removed since they don't have that slash in the series
> file.
> 
> Considering we have a patches/0001-bla.patch this would lead to:
> 
> + ...
> + for patch in patches/{*/,/}*.patch
> + grep '^/0001-bla.patch$' patches/series
> + echo No reference to patches//0001-bla.patch, deleting it.
> + rm patches//0001-bla.patch
> 
> The fix is to change the work directory to patches and stop fixing up
> the path. It's also safer to just use git-ls-files so we don't
> potentially remove patches still not added.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>

could be 2 separated patches, but they make sense

Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>

> ---
>  qf | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/qf b/qf
> index a7b8b919d178..c9ade42225e7 100755
> --- a/qf
> +++ b/qf
> @@ -303,9 +303,10 @@ function qf_refresh
>  function qf_clean_patches
>  {
>  	cd_toplevel
> +	cd patches
>  
> -	for patch in patches/{*/,/}*.patch ; do
> -		if grep "^${patch##patches/}$" patches/series &> /dev/null ; then
> +	for patch in $(git ls-files '*.patch') ; do
> +		if grep "^${patch}$" series &> /dev/null ; then
>  			continue
>  		fi
>  		echo No reference to $patch, deleting it.
> @@ -479,9 +480,10 @@ function qf_patch_amend
>  function qf_list_unused_patches
>  {
>  	cd_toplevel
> +	cd patches
>  
> -	for patch in patches/{*/,/}*.patch ; do
> -		if ! grep "^${patch#patches/}$" patches/series > /dev/null ; then
> +	for patch in $(git ls-files '*.patch'); do
> +		if ! grep "^${patch}$" series > /dev/null ; then
>  			if [[ "$1" != --purge ]] ; then
>  				echo $patch
>  			else
> -- 
> 2.14.3
> 


More information about the dim-tools mailing list