mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH 0/3] git-ptx-patches: A fix and two minor improvements
@ 2023-11-29  9:37 Uwe Kleine-König
  2023-11-29  9:37 ` [ptxdist] [PATCH 1/3] git-ptx-patches: Fix a race condition Uwe Kleine-König
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Uwe Kleine-König @ 2023-11-29  9:37 UTC (permalink / raw)
  To: ptxdist; +Cc: Thorsten Scherer

Hello,

occasionally I hit the problem that git-ptx-patches removes the From:
line from patches. I cannot reproduce that at will, but I think the
issue is fixed in the first patch. I hit that sometimes in the past with
no good idea how it could happen. Today Thorsten also hit it, which made
me look into the problem again and then I spotted the issue.

The other two patches are just minor improvements that I noticed while
researching for the race.

Best regards
Uwe

Uwe Kleine-König (3):
  git-ptx-patches: Fix a race condition
  git-ptx-patches: Open .ptxdist/series less often for writing
  git-ptx-patches: Simplify nested if construct

 scripts/git-ptx-patches | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

base-commit: 8d8f9a47d135920da7b70a5d71b763c457f4bcaf
-- 
2.42.0



^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ptxdist] [PATCH 1/3] git-ptx-patches: Fix a race condition
  2023-11-29  9:37 [ptxdist] [PATCH 0/3] git-ptx-patches: A fix and two minor improvements Uwe Kleine-König
@ 2023-11-29  9:37 ` Uwe Kleine-König
  2023-11-30  6:09   ` Thorsten Scherer
  2023-12-07 11:09   ` [ptxdist] [APPLIED] " Michael Olbrich
  2023-11-29  9:37 ` [ptxdist] [PATCH 2/3] git-ptx-patches: Open .ptxdist/series less often for writing Uwe Kleine-König
  2023-11-29  9:37 ` [ptxdist] [PATCH 3/3] git-ptx-patches: Simplify nested if construct Uwe Kleine-König
  2 siblings, 2 replies; 8+ messages in thread
From: Uwe Kleine-König @ 2023-11-29  9:37 UTC (permalink / raw)
  To: ptxdist; +Cc: Thorsten Scherer

As the loop over the output of find moves files around, it can happen
that find lists files more than once. In that case not only the "From "
line is removed, but also the next one (usually the "From:" line).

To process each patch in series.auto exactly once, iterate over that
file to remove the "From " line instead. Still be a bit conservative and
make sure that only the intended line is dropped.

Reported-by: Thorsten Scherer <t.scherer@eckelmann.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 scripts/git-ptx-patches | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/scripts/git-ptx-patches b/scripts/git-ptx-patches
index a063cb73a875..df004fb8a8a5 100755
--- a/scripts/git-ptx-patches
+++ b/scripts/git-ptx-patches
@@ -221,6 +221,13 @@ cat .ptxdist/series | _md5sum >> .ptxdist/series
 
 # The first line of the patch is 'From <some-git-hash> ...'
 # remove it to avoid unnecessary changes in the patch files.
+while read patch para; do
+	# There are no comments or empty lines in series.auto, so no need to
+	# handle these. Also be a bit cautious to only remove lines matching
+	# "^From ".
+	sed -i '1{/^From /d}' ".ptxdist/patches/$patch"
+done < .ptxdist/series.auto
+
 find .ptxdist/patches/ ! -type d | sed -e 's,^.ptxdist/patches/,,' | \
 while read patch para; do
 	case "$patch" in
@@ -228,9 +235,8 @@ while read patch para; do
 		*) ;;
 	esac
 	if grep -q "$patch" .ptxdist/series.auto; then
-		p=".ptxdist/patches/$patch"
-		tail -n+2 "$p" > ".$patch.ptx-patches"
-		mv ".$patch.ptx-patches" "$p"
+		# ok, this is one of the patches we just touched
+		:
 	else
 		if grep -q "$patch" .ptxdist/series.{0,1}; then
 			echo "Base patch \"$patch\"!"
-- 
2.42.0




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ptxdist] [PATCH 2/3] git-ptx-patches: Open .ptxdist/series less often for writing
  2023-11-29  9:37 [ptxdist] [PATCH 0/3] git-ptx-patches: A fix and two minor improvements Uwe Kleine-König
  2023-11-29  9:37 ` [ptxdist] [PATCH 1/3] git-ptx-patches: Fix a race condition Uwe Kleine-König
@ 2023-11-29  9:37 ` Uwe Kleine-König
  2023-12-07 11:09   ` [ptxdist] [APPLIED] " Michael Olbrich
  2023-11-29  9:37 ` [ptxdist] [PATCH 3/3] git-ptx-patches: Simplify nested if construct Uwe Kleine-König
  2 siblings, 1 reply; 8+ messages in thread
From: Uwe Kleine-König @ 2023-11-29  9:37 UTC (permalink / raw)
  To: ptxdist; +Cc: Thorsten Scherer

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 scripts/git-ptx-patches | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/scripts/git-ptx-patches b/scripts/git-ptx-patches
index df004fb8a8a5..56e82eb2ee56 100755
--- a/scripts/git-ptx-patches
+++ b/scripts/git-ptx-patches
@@ -204,7 +204,6 @@ fi
 
 GIT_EXTRA_ARGS="$GIT_EXTRA_ARGS --summary --stat=80"
 
-cat .ptxdist/series.0 > .ptxdist/series
 ${GIT} format-patch -N $GIT_EXTRA_ARGS ${tagopt} -o .ptxdist/patches/ ${range} | while read patch; do
 	if "$numbered_patches"; then
 		patchname="${patch#.ptxdist/patches/}"
@@ -215,8 +214,7 @@ ${GIT} format-patch -N $GIT_EXTRA_ARGS ${tagopt} -o .ptxdist/patches/ ${range} |
 	echo "$patchname"
 done > .ptxdist/series.auto
 
-cat .ptxdist/series.auto >> .ptxdist/series
-cat .ptxdist/series.1 >> .ptxdist/series
+cat .ptxdist/series.0 .ptxdist/series.auto .ptxdist/series.1 > .ptxdist/series
 cat .ptxdist/series | _md5sum >> .ptxdist/series
 
 # The first line of the patch is 'From <some-git-hash> ...'
-- 
2.42.0




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ptxdist] [PATCH 3/3] git-ptx-patches: Simplify nested if construct
  2023-11-29  9:37 [ptxdist] [PATCH 0/3] git-ptx-patches: A fix and two minor improvements Uwe Kleine-König
  2023-11-29  9:37 ` [ptxdist] [PATCH 1/3] git-ptx-patches: Fix a race condition Uwe Kleine-König
  2023-11-29  9:37 ` [ptxdist] [PATCH 2/3] git-ptx-patches: Open .ptxdist/series less often for writing Uwe Kleine-König
@ 2023-11-29  9:37 ` Uwe Kleine-König
  2023-12-07 11:09   ` [ptxdist] [APPLIED] " Michael Olbrich
  2 siblings, 1 reply; 8+ messages in thread
From: Uwe Kleine-König @ 2023-11-29  9:37 UTC (permalink / raw)
  To: ptxdist; +Cc: Thorsten Scherer

Instead of

	if A; then
		...
	else
		if B; then
			...
		else
			...
		fi
	fi

use the more compact

	if A; then
		...
	elif B; then
		...
	else
		...
	fi

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 scripts/git-ptx-patches | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/scripts/git-ptx-patches b/scripts/git-ptx-patches
index 56e82eb2ee56..b27dbe7905d9 100755
--- a/scripts/git-ptx-patches
+++ b/scripts/git-ptx-patches
@@ -235,11 +235,9 @@ while read patch para; do
 	if grep -q "$patch" .ptxdist/series.auto; then
 		# ok, this is one of the patches we just touched
 		:
+	elif grep -q "$patch" .ptxdist/series.{0,1}; then
+		echo "Base patch \"$patch\"!"
 	else
-		if grep -q "$patch" .ptxdist/series.{0,1}; then
-			echo "Base patch \"$patch\"!"
-		else
-			echo "Old patch \"$patch\"!"
-		fi
+		echo "Old patch \"$patch\"!"
 	fi
 done | sort
-- 
2.42.0




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [PATCH 1/3] git-ptx-patches: Fix a race condition
  2023-11-29  9:37 ` [ptxdist] [PATCH 1/3] git-ptx-patches: Fix a race condition Uwe Kleine-König
@ 2023-11-30  6:09   ` Thorsten Scherer
  2023-12-07 11:09   ` [ptxdist] [APPLIED] " Michael Olbrich
  1 sibling, 0 replies; 8+ messages in thread
From: Thorsten Scherer @ 2023-11-30  6:09 UTC (permalink / raw)
  To: Uwe Kleine-König; +Cc: ptxdist

On Wed, Nov 29, 2023 at 10:37:45AM +0100, Uwe Kleine-König wrote:
> As the loop over the output of find moves files around, it can happen
> that find lists files more than once. In that case not only the "From "
> line is removed, but also the next one (usually the "From:" line).
> 
> To process each patch in series.auto exactly once, iterate over that
> file to remove the "From " line instead. Still be a bit conservative and
> make sure that only the intended line is dropped.
> 
> Reported-by: Thorsten Scherer <t.scherer@eckelmann.de>

Tested-by: Thorsten Scherer <t.scherer@eckelmann.de>

> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
>  scripts/git-ptx-patches | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/git-ptx-patches b/scripts/git-ptx-patches
> index a063cb73a875..df004fb8a8a5 100755
> --- a/scripts/git-ptx-patches
> +++ b/scripts/git-ptx-patches
> @@ -221,6 +221,13 @@ cat .ptxdist/series | _md5sum >> .ptxdist/series
>  
>  # The first line of the patch is 'From <some-git-hash> ...'
>  # remove it to avoid unnecessary changes in the patch files.
> +while read patch para; do
> +	# There are no comments or empty lines in series.auto, so no need to
> +	# handle these. Also be a bit cautious to only remove lines matching
> +	# "^From ".
> +	sed -i '1{/^From /d}' ".ptxdist/patches/$patch"
> +done < .ptxdist/series.auto
> +
>  find .ptxdist/patches/ ! -type d | sed -e 's,^.ptxdist/patches/,,' | \
>  while read patch para; do
>  	case "$patch" in
> @@ -228,9 +235,8 @@ while read patch para; do
>  		*) ;;
>  	esac
>  	if grep -q "$patch" .ptxdist/series.auto; then
> -		p=".ptxdist/patches/$patch"
> -		tail -n+2 "$p" > ".$patch.ptx-patches"
> -		mv ".$patch.ptx-patches" "$p"
> +		# ok, this is one of the patches we just touched
> +		:
>  	else
>  		if grep -q "$patch" .ptxdist/series.{0,1}; then
>  			echo "Base patch \"$patch\"!"
> -- 
> 2.42.0
> 



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [APPLIED] git-ptx-patches: Fix a race condition
  2023-11-29  9:37 ` [ptxdist] [PATCH 1/3] git-ptx-patches: Fix a race condition Uwe Kleine-König
  2023-11-30  6:09   ` Thorsten Scherer
@ 2023-12-07 11:09   ` Michael Olbrich
  1 sibling, 0 replies; 8+ messages in thread
From: Michael Olbrich @ 2023-12-07 11:09 UTC (permalink / raw)
  To: ptxdist; +Cc: Uwe Kleine-König

Thanks, applied as 53de5f3e2e53582238bbd594aaa4749549672fb6.

Michael

[sent from post-receive hook]

On Thu, 07 Dec 2023 12:09:52 +0100, Uwe Kleine-König <u.kleine-koenig@pengutronix.de> wrote:
> As the loop over the output of find moves files around, it can happen
> that find lists files more than once. In that case not only the "From "
> line is removed, but also the next one (usually the "From:" line).
> 
> To process each patch in series.auto exactly once, iterate over that
> file to remove the "From " line instead. Still be a bit conservative and
> make sure that only the intended line is dropped.
> 
> Reported-by: Thorsten Scherer <t.scherer@eckelmann.de>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> Tested-by: Thorsten Scherer <t.scherer@eckelmann.de>
> Message-Id: <20231129093743.906378-2-u.kleine-koenig@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/scripts/git-ptx-patches b/scripts/git-ptx-patches
> index a063cb73a875..df004fb8a8a5 100755
> --- a/scripts/git-ptx-patches
> +++ b/scripts/git-ptx-patches
> @@ -221,6 +221,13 @@ cat .ptxdist/series | _md5sum >> .ptxdist/series
>  
>  # The first line of the patch is 'From <some-git-hash> ...'
>  # remove it to avoid unnecessary changes in the patch files.
> +while read patch para; do
> +	# There are no comments or empty lines in series.auto, so no need to
> +	# handle these. Also be a bit cautious to only remove lines matching
> +	# "^From ".
> +	sed -i '1{/^From /d}' ".ptxdist/patches/$patch"
> +done < .ptxdist/series.auto
> +
>  find .ptxdist/patches/ ! -type d | sed -e 's,^.ptxdist/patches/,,' | \
>  while read patch para; do
>  	case "$patch" in
> @@ -228,9 +235,8 @@ while read patch para; do
>  		*) ;;
>  	esac
>  	if grep -q "$patch" .ptxdist/series.auto; then
> -		p=".ptxdist/patches/$patch"
> -		tail -n+2 "$p" > ".$patch.ptx-patches"
> -		mv ".$patch.ptx-patches" "$p"
> +		# ok, this is one of the patches we just touched
> +		:
>  	else
>  		if grep -q "$patch" .ptxdist/series.{0,1}; then
>  			echo "Base patch \"$patch\"!"



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [APPLIED] git-ptx-patches: Open .ptxdist/series less often for writing
  2023-11-29  9:37 ` [ptxdist] [PATCH 2/3] git-ptx-patches: Open .ptxdist/series less often for writing Uwe Kleine-König
@ 2023-12-07 11:09   ` Michael Olbrich
  0 siblings, 0 replies; 8+ messages in thread
From: Michael Olbrich @ 2023-12-07 11:09 UTC (permalink / raw)
  To: ptxdist; +Cc: Uwe Kleine-König

Thanks, applied as cda14c096bdf91154b3fb2485bd7d5d373fb6c8d.

Michael

[sent from post-receive hook]

On Thu, 07 Dec 2023 12:09:52 +0100, Uwe Kleine-König <u.kleine-koenig@pengutronix.de> wrote:
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> Message-Id: <20231129093743.906378-3-u.kleine-koenig@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/scripts/git-ptx-patches b/scripts/git-ptx-patches
> index df004fb8a8a5..56e82eb2ee56 100755
> --- a/scripts/git-ptx-patches
> +++ b/scripts/git-ptx-patches
> @@ -204,7 +204,6 @@ fi
>  
>  GIT_EXTRA_ARGS="$GIT_EXTRA_ARGS --summary --stat=80"
>  
> -cat .ptxdist/series.0 > .ptxdist/series
>  ${GIT} format-patch -N $GIT_EXTRA_ARGS ${tagopt} -o .ptxdist/patches/ ${range} | while read patch; do
>  	if "$numbered_patches"; then
>  		patchname="${patch#.ptxdist/patches/}"
> @@ -215,8 +214,7 @@ ${GIT} format-patch -N $GIT_EXTRA_ARGS ${tagopt} -o .ptxdist/patches/ ${range} |
>  	echo "$patchname"
>  done > .ptxdist/series.auto
>  
> -cat .ptxdist/series.auto >> .ptxdist/series
> -cat .ptxdist/series.1 >> .ptxdist/series
> +cat .ptxdist/series.0 .ptxdist/series.auto .ptxdist/series.1 > .ptxdist/series
>  cat .ptxdist/series | _md5sum >> .ptxdist/series
>  
>  # The first line of the patch is 'From <some-git-hash> ...'



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [APPLIED] git-ptx-patches: Simplify nested if construct
  2023-11-29  9:37 ` [ptxdist] [PATCH 3/3] git-ptx-patches: Simplify nested if construct Uwe Kleine-König
@ 2023-12-07 11:09   ` Michael Olbrich
  0 siblings, 0 replies; 8+ messages in thread
From: Michael Olbrich @ 2023-12-07 11:09 UTC (permalink / raw)
  To: ptxdist; +Cc: Uwe Kleine-König

Thanks, applied as 5b1b2174fcad766c495d8bbbd5b2216cafe4fa64.

Michael

[sent from post-receive hook]

On Thu, 07 Dec 2023 12:09:53 +0100, Uwe Kleine-König <u.kleine-koenig@pengutronix.de> wrote:
> Instead of
> 
> 	if A; then
> 		...
> 	else
> 		if B; then
> 			...
> 		else
> 			...
> 		fi
> 	fi
> 
> use the more compact
> 
> 	if A; then
> 		...
> 	elif B; then
> 		...
> 	else
> 		...
> 	fi
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> Message-Id: <20231129093743.906378-4-u.kleine-koenig@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/scripts/git-ptx-patches b/scripts/git-ptx-patches
> index 56e82eb2ee56..b27dbe7905d9 100755
> --- a/scripts/git-ptx-patches
> +++ b/scripts/git-ptx-patches
> @@ -235,11 +235,9 @@ while read patch para; do
>  	if grep -q "$patch" .ptxdist/series.auto; then
>  		# ok, this is one of the patches we just touched
>  		:
> +	elif grep -q "$patch" .ptxdist/series.{0,1}; then
> +		echo "Base patch \"$patch\"!"
>  	else
> -		if grep -q "$patch" .ptxdist/series.{0,1}; then
> -			echo "Base patch \"$patch\"!"
> -		else
> -			echo "Old patch \"$patch\"!"
> -		fi
> +		echo "Old patch \"$patch\"!"
>  	fi
>  done | sort



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-12-07 11:10 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-29  9:37 [ptxdist] [PATCH 0/3] git-ptx-patches: A fix and two minor improvements Uwe Kleine-König
2023-11-29  9:37 ` [ptxdist] [PATCH 1/3] git-ptx-patches: Fix a race condition Uwe Kleine-König
2023-11-30  6:09   ` Thorsten Scherer
2023-12-07 11:09   ` [ptxdist] [APPLIED] " Michael Olbrich
2023-11-29  9:37 ` [ptxdist] [PATCH 2/3] git-ptx-patches: Open .ptxdist/series less often for writing Uwe Kleine-König
2023-12-07 11:09   ` [ptxdist] [APPLIED] " Michael Olbrich
2023-11-29  9:37 ` [ptxdist] [PATCH 3/3] git-ptx-patches: Simplify nested if construct Uwe Kleine-König
2023-12-07 11:09   ` [ptxdist] [APPLIED] " Michael Olbrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox