diff mbox series

[RFC,4/4] track oid_size to allow for checks that are hash agnostic

Message ID 20211011121757.627-5-carenas@gmail.com (mailing list archive)
State New, archived
Headers show
Series git-gui: support SHA-256 repositories | expand

Commit Message

Carlo Marcelo Arenas Belón Oct. 11, 2021, 12:17 p.m. UTC
This allows commit to work.

Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
---
 git-gui.sh     | 5 +++--
 lib/commit.tcl | 3 ++-
 2 files changed, 5 insertions(+), 3 deletions(-)

Comments

Pratyush Yadav Nov. 13, 2021, 8:04 a.m. UTC | #1
On 11/10/21 05:17AM, Carlo Marcelo Arenas Belón wrote:
> This allows commit to work.

Please explain _why_ it allows commit to work.

> 
> Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
> ---
>  git-gui.sh     | 5 +++--
>  lib/commit.tcl | 3 ++-
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/git-gui.sh b/git-gui.sh
> index c0dc8ce..1646124 100755
> --- a/git-gui.sh
> +++ b/git-gui.sh
> @@ -1821,10 +1821,11 @@ proc short_path {path} {
>  
>  set next_icon_id 0
>  if { [get_config extensions.objectformat] eq "sha256" } {
> -	set null_oid [string repeat 0 64]
> +	set oid_size 64
>  } else {
> -	set null_oid [string repeat 0 40]
> +	set oid_size 40
>  }
> +set null_oid [string repeat 0 $oid_size]
>  
>  proc merge_state {path new_state {head_info {}} {index_info {}}} {
>  	global file_states next_icon_id null_oid
> diff --git a/lib/commit.tcl b/lib/commit.tcl
> index 11379f8..1306e8d 100644
> --- a/lib/commit.tcl
> +++ b/lib/commit.tcl
> @@ -337,6 +337,7 @@ proc commit_committree {fd_wt curHEAD msg_p} {
>  	global file_states selected_paths rescan_active
>  	global repo_config
>  	global env
> +	global oid_size
>  
>  	gets $fd_wt tree_id
>  	if {[catch {close $fd_wt} err]} {
> @@ -356,7 +357,7 @@ proc commit_committree {fd_wt curHEAD msg_p} {
>  		close $fd_ot
>  
>  		if {[string equal -length 5 {tree } $old_tree]
> -			&& [string length $old_tree] == 45} {
> +			&& [string length $old_tree] == 5 + oid_size} {
                                           ^ missing '$'

I think you forgot to test this one ;-)

>  			set old_tree [string range $old_tree 5 end]
>  		} else {
>  			error [mc "Commit %s appears to be corrupt" $PARENT]
> -- 
> 2.33.0.1081.g099423f5b7
>
Pratyush Yadav Nov. 13, 2021, 8:10 a.m. UTC | #2
On 13/11/21 01:34PM, Pratyush Yadav wrote:
> On 11/10/21 05:17AM, Carlo Marcelo Arenas Belón wrote:
> > This allows commit to work.
> 
> Please explain _why_ it allows commit to work.
> 
> > 
> > Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
> > ---
> >  git-gui.sh     | 5 +++--
> >  lib/commit.tcl | 3 ++-
> >  2 files changed, 5 insertions(+), 3 deletions(-)
> > 
> > diff --git a/git-gui.sh b/git-gui.sh
> > index c0dc8ce..1646124 100755
> > --- a/git-gui.sh
> > +++ b/git-gui.sh
> > @@ -1821,10 +1821,11 @@ proc short_path {path} {
> >  
> >  set next_icon_id 0
> >  if { [get_config extensions.objectformat] eq "sha256" } {
> > -	set null_oid [string repeat 0 64]
> > +	set oid_size 64
> >  } else {
> > -	set null_oid [string repeat 0 40]
> > +	set oid_size 40
> >  }
> > +set null_oid [string repeat 0 $oid_size]
> >  
> >  proc merge_state {path new_state {head_info {}} {index_info {}}} {
> >  	global file_states next_icon_id null_oid
> > diff --git a/lib/commit.tcl b/lib/commit.tcl
> > index 11379f8..1306e8d 100644
> > --- a/lib/commit.tcl
> > +++ b/lib/commit.tcl
> > @@ -337,6 +337,7 @@ proc commit_committree {fd_wt curHEAD msg_p} {
> >  	global file_states selected_paths rescan_active
> >  	global repo_config
> >  	global env
> > +	global oid_size
> >  
> >  	gets $fd_wt tree_id
> >  	if {[catch {close $fd_wt} err]} {
> > @@ -356,7 +357,7 @@ proc commit_committree {fd_wt curHEAD msg_p} {
> >  		close $fd_ot
> >  
> >  		if {[string equal -length 5 {tree } $old_tree]
> > -			&& [string length $old_tree] == 45} {
> > +			&& [string length $old_tree] == 5 + oid_size} {
>                                            ^ missing '$'

I think different tab sizes might end up rendering the ^ in a differnt 
place. So to clarify: Missing '$' before oid_size.

> 
> I think you forgot to test this one ;-)
> 
> >  			set old_tree [string range $old_tree 5 end]
> >  		} else {
> >  			error [mc "Commit %s appears to be corrupt" $PARENT]
> > -- 
> > 2.33.0.1081.g099423f5b7
> > 
> 
> -- 
> Regards,
> Pratyush Yadav
diff mbox series

Patch

diff --git a/git-gui.sh b/git-gui.sh
index c0dc8ce..1646124 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -1821,10 +1821,11 @@  proc short_path {path} {
 
 set next_icon_id 0
 if { [get_config extensions.objectformat] eq "sha256" } {
-	set null_oid [string repeat 0 64]
+	set oid_size 64
 } else {
-	set null_oid [string repeat 0 40]
+	set oid_size 40
 }
+set null_oid [string repeat 0 $oid_size]
 
 proc merge_state {path new_state {head_info {}} {index_info {}}} {
 	global file_states next_icon_id null_oid
diff --git a/lib/commit.tcl b/lib/commit.tcl
index 11379f8..1306e8d 100644
--- a/lib/commit.tcl
+++ b/lib/commit.tcl
@@ -337,6 +337,7 @@  proc commit_committree {fd_wt curHEAD msg_p} {
 	global file_states selected_paths rescan_active
 	global repo_config
 	global env
+	global oid_size
 
 	gets $fd_wt tree_id
 	if {[catch {close $fd_wt} err]} {
@@ -356,7 +357,7 @@  proc commit_committree {fd_wt curHEAD msg_p} {
 		close $fd_ot
 
 		if {[string equal -length 5 {tree } $old_tree]
-			&& [string length $old_tree] == 45} {
+			&& [string length $old_tree] == 5 + oid_size} {
 			set old_tree [string range $old_tree 5 end]
 		} else {
 			error [mc "Commit %s appears to be corrupt" $PARENT]